aws-cdk-lib 2.91.0__py3-none-any.whl → 2.92.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 (32) hide show
  1. aws_cdk/_jsii/__init__.py +2 -2
  2. aws_cdk/_jsii/{aws-cdk-lib@2.91.0.jsii.tgz → aws-cdk-lib@2.92.0.jsii.tgz} +0 -0
  3. aws_cdk/aws_appstream/__init__.py +29 -21
  4. aws_cdk/aws_batch/__init__.py +22 -10
  5. aws_cdk/aws_billingconductor/__init__.py +14 -11
  6. aws_cdk/aws_cloudwatch/__init__.py +3 -3
  7. aws_cdk/aws_dms/__init__.py +117 -58
  8. aws_cdk/aws_ec2/__init__.py +12 -14
  9. aws_cdk/aws_ecs/__init__.py +24 -12
  10. aws_cdk/aws_evidently/__init__.py +3 -3
  11. aws_cdk/aws_fsx/__init__.py +6 -5
  12. aws_cdk/aws_guardduty/__init__.py +60 -17
  13. aws_cdk/aws_iam/__init__.py +6 -8
  14. aws_cdk/aws_internetmonitor/__init__.py +43 -20
  15. aws_cdk/aws_kms/__init__.py +95 -47
  16. aws_cdk/aws_mwaa/__init__.py +13 -8
  17. aws_cdk/aws_neptune/__init__.py +5 -2
  18. aws_cdk/aws_omics/__init__.py +5 -3
  19. aws_cdk/aws_opensearchservice/__init__.py +247 -14
  20. aws_cdk/aws_organizations/__init__.py +17 -17
  21. aws_cdk/aws_route53/__init__.py +3 -1
  22. aws_cdk/aws_sns/__init__.py +8 -8
  23. aws_cdk/aws_sqs/__init__.py +13 -9
  24. aws_cdk/aws_transfer/__init__.py +40 -12
  25. aws_cdk/aws_vpclattice/__init__.py +10 -6
  26. aws_cdk/aws_wafv2/__init__.py +118 -84
  27. {aws_cdk_lib-2.91.0.dist-info → aws_cdk_lib-2.92.0.dist-info}/METADATA +3 -3
  28. {aws_cdk_lib-2.91.0.dist-info → aws_cdk_lib-2.92.0.dist-info}/RECORD +32 -32
  29. {aws_cdk_lib-2.91.0.dist-info → aws_cdk_lib-2.92.0.dist-info}/LICENSE +0 -0
  30. {aws_cdk_lib-2.91.0.dist-info → aws_cdk_lib-2.92.0.dist-info}/NOTICE +0 -0
  31. {aws_cdk_lib-2.91.0.dist-info → aws_cdk_lib-2.92.0.dist-info}/WHEEL +0 -0
  32. {aws_cdk_lib-2.91.0.dist-info → aws_cdk_lib-2.92.0.dist-info}/top_level.txt +0 -0
@@ -160,7 +160,7 @@ class CfnEnvironment(
160
160
  :param id: Construct identifier for this resource (unique in its scope).
161
161
  :param name: The name of your Amazon MWAA environment.
162
162
  :param airflow_configuration_options: A list of key-value pairs containing the Airflow configuration options for your environment. For example, ``core.default_timezone: utc`` . To learn more, see `Apache Airflow configuration options <https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html>`_ .
163
- :param airflow_version: The version of Apache Airflow to use for the environment. If no value is specified, defaults to the latest version. *Allowed Values* : ``2.0.2`` | ``1.10.12`` | ``2.2.2`` | ``2.4.3`` | ``2.5.1`` (latest)
163
+ :param airflow_version: The version of Apache Airflow to use for the environment. If no value is specified, defaults to the latest version. If you specify a newer version number for an existing environment, the version update requires some service interruption before taking effect. *Allowed Values* : ``2.0.2`` | ``1.10.12`` | ``2.2.2`` | ``2.4.3`` | ``2.5.1`` | ``2.6.3`` (latest)
164
164
  :param dag_s3_path: The relative path to the DAGs folder on your Amazon S3 bucket. For example, ``dags`` . To learn more, see `Adding or updating DAGs <https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html>`_ .
165
165
  :param environment_class: The environment class type. Valid values: ``mw1.small`` , ``mw1.medium`` , ``mw1.large`` . To learn more, see `Amazon MWAA environment class <https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html>`_ .
166
166
  :param execution_role_arn: The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access AWS resources in your environment. For example, ``arn:aws:iam::123456789:role/my-execution-role`` . To learn more, see `Amazon MWAA Execution role <https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html>`_ .
@@ -177,7 +177,7 @@ class CfnEnvironment(
177
177
  :param source_bucket_arn: The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, ``arn:aws:s3:::my-airflow-bucket-unique-name`` . To learn more, see `Create an Amazon S3 bucket for Amazon MWAA <https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html>`_ .
178
178
  :param startup_script_s3_object_version: The version of the startup shell script in your Amazon S3 bucket. You must specify the `version ID <https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html>`_ that Amazon S3 assigns to the file every time you update the script. Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example: ``3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo`` For more information, see `Using a startup script <https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html>`_ .
179
179
  :param startup_script_s3_path: The relative path to the startup shell script in your Amazon S3 bucket. For example, ``s3://mwaa-environment/startup.sh`` . Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see `Using a startup script <https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html>`_ .
180
- :param tags: The key-value tag pairs associated to your environment. For example, ``"Environment": "Staging"`` . To learn more, see `Tagging <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ .
180
+ :param tags: The key-value tag pairs associated to your environment. For example, ``"Environment": "Staging"`` . To learn more, see `Tagging <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ . If you specify new tags for an existing environment, the update requires service interruption before taking effect.
181
181
  :param webserver_access_mode: The Apache Airflow *Web server* access mode. To learn more, see `Apache Airflow access modes <https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html>`_ . Valid values: ``PRIVATE_ONLY`` or ``PUBLIC_ONLY`` .
182
182
  :param weekly_maintenance_window_start: The day and time of the week to start weekly maintenance updates of your environment in the following format: ``DAY:HH:MM`` . For example: ``TUE:03:30`` . You can specify a start time in 30 minute increments only. Supported input includes the following: - MON|TUE|WED|THU|FRI|SAT|SUN:([01]\\d|2[0-3]):(00|30)
183
183
  '''
@@ -598,7 +598,10 @@ class CfnEnvironment(
598
598
  @builtins.property
599
599
  @jsii.member(jsii_name="tagsRaw")
600
600
  def tags_raw(self) -> typing.Any:
601
- '''The key-value tag pairs associated to your environment.'''
601
+ '''The key-value tag pairs associated to your environment.
602
+
603
+ For example, ``"Environment": "Staging"`` . To learn more, see `Tagging <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ .
604
+ '''
602
605
  return typing.cast(typing.Any, jsii.get(self, "tagsRaw"))
603
606
 
604
607
  @tags_raw.setter
@@ -1022,7 +1025,7 @@ class CfnEnvironmentProps:
1022
1025
 
1023
1026
  :param name: The name of your Amazon MWAA environment.
1024
1027
  :param airflow_configuration_options: A list of key-value pairs containing the Airflow configuration options for your environment. For example, ``core.default_timezone: utc`` . To learn more, see `Apache Airflow configuration options <https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html>`_ .
1025
- :param airflow_version: The version of Apache Airflow to use for the environment. If no value is specified, defaults to the latest version. *Allowed Values* : ``2.0.2`` | ``1.10.12`` | ``2.2.2`` | ``2.4.3`` | ``2.5.1`` (latest)
1028
+ :param airflow_version: The version of Apache Airflow to use for the environment. If no value is specified, defaults to the latest version. If you specify a newer version number for an existing environment, the version update requires some service interruption before taking effect. *Allowed Values* : ``2.0.2`` | ``1.10.12`` | ``2.2.2`` | ``2.4.3`` | ``2.5.1`` | ``2.6.3`` (latest)
1026
1029
  :param dag_s3_path: The relative path to the DAGs folder on your Amazon S3 bucket. For example, ``dags`` . To learn more, see `Adding or updating DAGs <https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html>`_ .
1027
1030
  :param environment_class: The environment class type. Valid values: ``mw1.small`` , ``mw1.medium`` , ``mw1.large`` . To learn more, see `Amazon MWAA environment class <https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html>`_ .
1028
1031
  :param execution_role_arn: The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access AWS resources in your environment. For example, ``arn:aws:iam::123456789:role/my-execution-role`` . To learn more, see `Amazon MWAA Execution role <https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html>`_ .
@@ -1039,7 +1042,7 @@ class CfnEnvironmentProps:
1039
1042
  :param source_bucket_arn: The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, ``arn:aws:s3:::my-airflow-bucket-unique-name`` . To learn more, see `Create an Amazon S3 bucket for Amazon MWAA <https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html>`_ .
1040
1043
  :param startup_script_s3_object_version: The version of the startup shell script in your Amazon S3 bucket. You must specify the `version ID <https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html>`_ that Amazon S3 assigns to the file every time you update the script. Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example: ``3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo`` For more information, see `Using a startup script <https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html>`_ .
1041
1044
  :param startup_script_s3_path: The relative path to the startup shell script in your Amazon S3 bucket. For example, ``s3://mwaa-environment/startup.sh`` . Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see `Using a startup script <https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html>`_ .
1042
- :param tags: The key-value tag pairs associated to your environment. For example, ``"Environment": "Staging"`` . To learn more, see `Tagging <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ .
1045
+ :param tags: The key-value tag pairs associated to your environment. For example, ``"Environment": "Staging"`` . To learn more, see `Tagging <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ . If you specify new tags for an existing environment, the update requires service interruption before taking effect.
1043
1046
  :param webserver_access_mode: The Apache Airflow *Web server* access mode. To learn more, see `Apache Airflow access modes <https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html>`_ . Valid values: ``PRIVATE_ONLY`` or ``PUBLIC_ONLY`` .
1044
1047
  :param weekly_maintenance_window_start: The day and time of the week to start weekly maintenance updates of your environment in the following format: ``DAY:HH:MM`` . For example: ``TUE:03:30`` . You can specify a start time in 30 minute increments only. Supported input includes the following: - MON|TUE|WED|THU|FRI|SAT|SUN:([01]\\d|2[0-3]):(00|30)
1045
1048
 
@@ -1208,7 +1211,9 @@ class CfnEnvironmentProps:
1208
1211
 
1209
1212
  If no value is specified, defaults to the latest version.
1210
1213
 
1211
- *Allowed Values* : ``2.0.2`` | ``1.10.12`` | ``2.2.2`` | ``2.4.3`` | ``2.5.1`` (latest)
1214
+ If you specify a newer version number for an existing environment, the version update requires some service interruption before taking effect.
1215
+
1216
+ *Allowed Values* : ``2.0.2`` | ``1.10.12`` | ``2.2.2`` | ``2.4.3`` | ``2.5.1`` | ``2.6.3`` (latest)
1212
1217
 
1213
1218
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#cfn-mwaa-environment-airflowversion
1214
1219
  '''
@@ -1394,9 +1399,9 @@ class CfnEnvironmentProps:
1394
1399
 
1395
1400
  @builtins.property
1396
1401
  def tags(self) -> typing.Any:
1397
- '''The key-value tag pairs associated to your environment.
1402
+ '''The key-value tag pairs associated to your environment. For example, ``"Environment": "Staging"`` . To learn more, see `Tagging <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ .
1398
1403
 
1399
- For example, ``"Environment": "Staging"`` . To learn more, see `Tagging <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ .
1404
+ If you specify new tags for an existing environment, the update requires service interruption before taking effect.
1400
1405
 
1401
1406
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#cfn-mwaa-environment-tags
1402
1407
  '''
@@ -270,9 +270,12 @@ class CfnDBCluster(
270
270
  @builtins.property
271
271
  @jsii.member(jsii_name="attrPort")
272
272
  def attr_port(self) -> builtins.str:
273
- '''The port number on which the DB cluster accepts connections.
273
+ '''The port number on which the DB instances in the DB cluster accept connections.
274
274
 
275
- For example: ``8182`` .
275
+ If not specified, the default port used is ``8182`` .
276
+ .. epigraph::
277
+
278
+ This property will soon be deprecated. Please update existing templates to use the new ``DBPort`` property that has the same functionality.
276
279
 
277
280
  :cloudformationAttribute: Port
278
281
  '''
@@ -1249,7 +1249,7 @@ class CfnRunGroup(
1249
1249
  :param id: Construct identifier for this resource (unique in its scope).
1250
1250
  :param max_cpus: The group's maximum CPU count setting.
1251
1251
  :param max_duration: The group's maximum duration setting in minutes.
1252
- :param max_gpus:
1252
+ :param max_gpus: The maximum GPUs that can be used by a run group.
1253
1253
  :param max_runs: The group's maximum concurrent run setting.
1254
1254
  :param name: The group's name.
1255
1255
  :param tags: Tags for the group.
@@ -1366,6 +1366,7 @@ class CfnRunGroup(
1366
1366
  @builtins.property
1367
1367
  @jsii.member(jsii_name="maxGpus")
1368
1368
  def max_gpus(self) -> typing.Optional[jsii.Number]:
1369
+ '''The maximum GPUs that can be used by a run group.'''
1369
1370
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "maxGpus"))
1370
1371
 
1371
1372
  @max_gpus.setter
@@ -1445,7 +1446,7 @@ class CfnRunGroupProps:
1445
1446
 
1446
1447
  :param max_cpus: The group's maximum CPU count setting.
1447
1448
  :param max_duration: The group's maximum duration setting in minutes.
1448
- :param max_gpus:
1449
+ :param max_gpus: The maximum GPUs that can be used by a run group.
1449
1450
  :param max_runs: The group's maximum concurrent run setting.
1450
1451
  :param name: The group's name.
1451
1452
  :param tags: Tags for the group.
@@ -1512,7 +1513,8 @@ class CfnRunGroupProps:
1512
1513
 
1513
1514
  @builtins.property
1514
1515
  def max_gpus(self) -> typing.Optional[jsii.Number]:
1515
- '''
1516
+ '''The maximum GPUs that can be used by a run group.
1517
+
1516
1518
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-omics-rungroup.html#cfn-omics-rungroup-maxgpus
1517
1519
  '''
1518
1520
  result = self._values.get("max_gpus")
@@ -199,6 +199,32 @@ domain = Domain(self, "Domain",
199
199
  master_user_password = domain.master_user_password
200
200
  ```
201
201
 
202
+ ## SAML authentication
203
+
204
+ You can enable SAML authentication to use your existing identity provider
205
+ to offer single sign-on (SSO) for dashboards on Amazon OpenSearch Service domains
206
+ running OpenSearch or Elasticsearch 6.7 or later.
207
+ To use SAML authentication, fine-grained access control must be enabled.
208
+
209
+ ```python
210
+ domain = Domain(self, "Domain",
211
+ version=EngineVersion.OPENSEARCH_1_0,
212
+ enforce_https=True,
213
+ node_to_node_encryption=True,
214
+ encryption_at_rest=EncryptionAtRestOptions(
215
+ enabled=True
216
+ ),
217
+ fine_grained_access_control=AdvancedSecurityOptions(
218
+ master_user_name="master-user",
219
+ saml_authentication_enabled=True,
220
+ saml_authentication_options=SAMLOptionsProperty(
221
+ idp_entity_id="entity-id",
222
+ idp_metadata_content="metadata-content-with-quotes-escaped"
223
+ )
224
+ )
225
+ )
226
+ ```
227
+
202
228
  ## Using unsigned basic auth
203
229
 
204
230
  For convenience, the domain can be configured to allow unsigned HTTP requests
@@ -486,6 +512,8 @@ from ..aws_route53 import IHostedZone as _IHostedZone_9a6907ad
486
512
  "master_user_arn": "masterUserArn",
487
513
  "master_user_name": "masterUserName",
488
514
  "master_user_password": "masterUserPassword",
515
+ "saml_authentication_enabled": "samlAuthenticationEnabled",
516
+ "saml_authentication_options": "samlAuthenticationOptions",
489
517
  },
490
518
  )
491
519
  class AdvancedSecurityOptions:
@@ -495,12 +523,16 @@ class AdvancedSecurityOptions:
495
523
  master_user_arn: typing.Optional[builtins.str] = None,
496
524
  master_user_name: typing.Optional[builtins.str] = None,
497
525
  master_user_password: typing.Optional[_SecretValue_3dd0ddae] = None,
526
+ saml_authentication_enabled: typing.Optional[builtins.bool] = None,
527
+ saml_authentication_options: typing.Optional[typing.Union["SAMLOptionsProperty", typing.Dict[builtins.str, typing.Any]]] = None,
498
528
  ) -> None:
499
529
  '''Specifies options for fine-grained access control.
500
530
 
501
531
  :param master_user_arn: ARN for the master user. Only specify this or masterUserName, but not both. Default: - fine-grained access control is disabled
502
532
  :param master_user_name: Username for the master user. Only specify this or masterUserArn, but not both. Default: - fine-grained access control is disabled
503
533
  :param master_user_password: Password for the master user. You can use ``SecretValue.unsafePlainText`` to specify a password in plain text or use ``secretsmanager.Secret.fromSecretAttributes`` to reference a secret in Secrets Manager. Default: - A Secrets Manager generated password
534
+ :param saml_authentication_enabled: True to enable SAML authentication for a domain. Default: - SAML authentication is disabled. Enabled if ``samlAuthenticationOptions`` is set.
535
+ :param saml_authentication_options: Container for information about the SAML configuration for OpenSearch Dashboards. If set, ``samlAuthenticationEnabled`` will be enabled. Default: - no SAML authentication options
504
536
 
505
537
  :exampleMetadata: infused
506
538
 
@@ -514,21 +546,24 @@ class AdvancedSecurityOptions:
514
546
  enabled=True
515
547
  ),
516
548
  fine_grained_access_control=AdvancedSecurityOptions(
517
- master_user_name="master-user"
518
- ),
519
- logging=LoggingOptions(
520
- audit_log_enabled=True,
521
- slow_search_log_enabled=True,
522
- app_log_enabled=True,
523
- slow_index_log_enabled=True
549
+ master_user_name="master-user",
550
+ saml_authentication_enabled=True,
551
+ saml_authentication_options=SAMLOptionsProperty(
552
+ idp_entity_id="entity-id",
553
+ idp_metadata_content="metadata-content-with-quotes-escaped"
554
+ )
524
555
  )
525
556
  )
526
557
  '''
558
+ if isinstance(saml_authentication_options, dict):
559
+ saml_authentication_options = SAMLOptionsProperty(**saml_authentication_options)
527
560
  if __debug__:
528
561
  type_hints = typing.get_type_hints(_typecheckingstub__c1e95392d4761126042f2d6d6160889a80c269d2f13c21476fe92febdb7f04e3)
529
562
  check_type(argname="argument master_user_arn", value=master_user_arn, expected_type=type_hints["master_user_arn"])
530
563
  check_type(argname="argument master_user_name", value=master_user_name, expected_type=type_hints["master_user_name"])
531
564
  check_type(argname="argument master_user_password", value=master_user_password, expected_type=type_hints["master_user_password"])
565
+ check_type(argname="argument saml_authentication_enabled", value=saml_authentication_enabled, expected_type=type_hints["saml_authentication_enabled"])
566
+ check_type(argname="argument saml_authentication_options", value=saml_authentication_options, expected_type=type_hints["saml_authentication_options"])
532
567
  self._values: typing.Dict[builtins.str, typing.Any] = {}
533
568
  if master_user_arn is not None:
534
569
  self._values["master_user_arn"] = master_user_arn
@@ -536,6 +571,10 @@ class AdvancedSecurityOptions:
536
571
  self._values["master_user_name"] = master_user_name
537
572
  if master_user_password is not None:
538
573
  self._values["master_user_password"] = master_user_password
574
+ if saml_authentication_enabled is not None:
575
+ self._values["saml_authentication_enabled"] = saml_authentication_enabled
576
+ if saml_authentication_options is not None:
577
+ self._values["saml_authentication_options"] = saml_authentication_options
539
578
 
540
579
  @builtins.property
541
580
  def master_user_arn(self) -> typing.Optional[builtins.str]:
@@ -572,6 +611,28 @@ class AdvancedSecurityOptions:
572
611
  result = self._values.get("master_user_password")
573
612
  return typing.cast(typing.Optional[_SecretValue_3dd0ddae], result)
574
613
 
614
+ @builtins.property
615
+ def saml_authentication_enabled(self) -> typing.Optional[builtins.bool]:
616
+ '''True to enable SAML authentication for a domain.
617
+
618
+ :default: - SAML authentication is disabled. Enabled if ``samlAuthenticationOptions`` is set.
619
+
620
+ :see: https://docs.aws.amazon.com/opensearch-service/latest/developerguide/saml.html
621
+ '''
622
+ result = self._values.get("saml_authentication_enabled")
623
+ return typing.cast(typing.Optional[builtins.bool], result)
624
+
625
+ @builtins.property
626
+ def saml_authentication_options(self) -> typing.Optional["SAMLOptionsProperty"]:
627
+ '''Container for information about the SAML configuration for OpenSearch Dashboards.
628
+
629
+ If set, ``samlAuthenticationEnabled`` will be enabled.
630
+
631
+ :default: - no SAML authentication options
632
+ '''
633
+ result = self._values.get("saml_authentication_options")
634
+ return typing.cast(typing.Optional["SAMLOptionsProperty"], result)
635
+
575
636
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
576
637
  return isinstance(rhs, self.__class__) and rhs._values == self._values
577
638
 
@@ -4772,13 +4833,12 @@ class EncryptionAtRestOptions:
4772
4833
  enabled=True
4773
4834
  ),
4774
4835
  fine_grained_access_control=AdvancedSecurityOptions(
4775
- master_user_name="master-user"
4776
- ),
4777
- logging=LoggingOptions(
4778
- audit_log_enabled=True,
4779
- slow_search_log_enabled=True,
4780
- app_log_enabled=True,
4781
- slow_index_log_enabled=True
4836
+ master_user_name="master-user",
4837
+ saml_authentication_enabled=True,
4838
+ saml_authentication_options=SAMLOptionsProperty(
4839
+ idp_entity_id="entity-id",
4840
+ idp_metadata_content="metadata-content-with-quotes-escaped"
4841
+ )
4782
4842
  )
4783
4843
  )
4784
4844
  '''
@@ -6619,6 +6679,163 @@ class LoggingOptions:
6619
6679
  )
6620
6680
 
6621
6681
 
6682
+ @jsii.data_type(
6683
+ jsii_type="aws-cdk-lib.aws_opensearchservice.SAMLOptionsProperty",
6684
+ jsii_struct_bases=[],
6685
+ name_mapping={
6686
+ "idp_entity_id": "idpEntityId",
6687
+ "idp_metadata_content": "idpMetadataContent",
6688
+ "master_backend_role": "masterBackendRole",
6689
+ "master_user_name": "masterUserName",
6690
+ "roles_key": "rolesKey",
6691
+ "session_timeout_minutes": "sessionTimeoutMinutes",
6692
+ "subject_key": "subjectKey",
6693
+ },
6694
+ )
6695
+ class SAMLOptionsProperty:
6696
+ def __init__(
6697
+ self,
6698
+ *,
6699
+ idp_entity_id: builtins.str,
6700
+ idp_metadata_content: builtins.str,
6701
+ master_backend_role: typing.Optional[builtins.str] = None,
6702
+ master_user_name: typing.Optional[builtins.str] = None,
6703
+ roles_key: typing.Optional[builtins.str] = None,
6704
+ session_timeout_minutes: typing.Optional[jsii.Number] = None,
6705
+ subject_key: typing.Optional[builtins.str] = None,
6706
+ ) -> None:
6707
+ '''Container for information about the SAML configuration for OpenSearch Dashboards.
6708
+
6709
+ :param idp_entity_id: The unique entity ID of the application in the SAML identity provider.
6710
+ :param idp_metadata_content: The metadata of the SAML application, in XML format.
6711
+ :param master_backend_role: The backend role that the SAML master user is mapped to. Any users with this backend role receives full permission in OpenSearch Dashboards/Kibana. To use a SAML master backend role, configure the ``rolesKey`` property. Default: - The master user is not mapped to a backend role
6712
+ :param master_user_name: The SAML master username, which is stored in the domain's internal user database. This SAML user receives full permission in OpenSearch Dashboards/Kibana. Creating a new master username does not delete any existing master usernames. Default: - No master user name is configured
6713
+ :param roles_key: Element of the SAML assertion to use for backend roles. Default: - roles
6714
+ :param session_timeout_minutes: The duration, in minutes, after which a user session becomes inactive. Default: - 60
6715
+ :param subject_key: Element of the SAML assertion to use for the user name. Default: - NameID element of the SAML assertion fot the user name
6716
+
6717
+ :exampleMetadata: infused
6718
+
6719
+ Example::
6720
+
6721
+ domain = Domain(self, "Domain",
6722
+ version=EngineVersion.OPENSEARCH_1_0,
6723
+ enforce_https=True,
6724
+ node_to_node_encryption=True,
6725
+ encryption_at_rest=EncryptionAtRestOptions(
6726
+ enabled=True
6727
+ ),
6728
+ fine_grained_access_control=AdvancedSecurityOptions(
6729
+ master_user_name="master-user",
6730
+ saml_authentication_enabled=True,
6731
+ saml_authentication_options=SAMLOptionsProperty(
6732
+ idp_entity_id="entity-id",
6733
+ idp_metadata_content="metadata-content-with-quotes-escaped"
6734
+ )
6735
+ )
6736
+ )
6737
+ '''
6738
+ if __debug__:
6739
+ type_hints = typing.get_type_hints(_typecheckingstub__3971b3c73627d57587c667b1ede64fbba4de4fd4a086af959dc2d0f812f8e36b)
6740
+ check_type(argname="argument idp_entity_id", value=idp_entity_id, expected_type=type_hints["idp_entity_id"])
6741
+ check_type(argname="argument idp_metadata_content", value=idp_metadata_content, expected_type=type_hints["idp_metadata_content"])
6742
+ check_type(argname="argument master_backend_role", value=master_backend_role, expected_type=type_hints["master_backend_role"])
6743
+ check_type(argname="argument master_user_name", value=master_user_name, expected_type=type_hints["master_user_name"])
6744
+ check_type(argname="argument roles_key", value=roles_key, expected_type=type_hints["roles_key"])
6745
+ check_type(argname="argument session_timeout_minutes", value=session_timeout_minutes, expected_type=type_hints["session_timeout_minutes"])
6746
+ check_type(argname="argument subject_key", value=subject_key, expected_type=type_hints["subject_key"])
6747
+ self._values: typing.Dict[builtins.str, typing.Any] = {
6748
+ "idp_entity_id": idp_entity_id,
6749
+ "idp_metadata_content": idp_metadata_content,
6750
+ }
6751
+ if master_backend_role is not None:
6752
+ self._values["master_backend_role"] = master_backend_role
6753
+ if master_user_name is not None:
6754
+ self._values["master_user_name"] = master_user_name
6755
+ if roles_key is not None:
6756
+ self._values["roles_key"] = roles_key
6757
+ if session_timeout_minutes is not None:
6758
+ self._values["session_timeout_minutes"] = session_timeout_minutes
6759
+ if subject_key is not None:
6760
+ self._values["subject_key"] = subject_key
6761
+
6762
+ @builtins.property
6763
+ def idp_entity_id(self) -> builtins.str:
6764
+ '''The unique entity ID of the application in the SAML identity provider.'''
6765
+ result = self._values.get("idp_entity_id")
6766
+ assert result is not None, "Required property 'idp_entity_id' is missing"
6767
+ return typing.cast(builtins.str, result)
6768
+
6769
+ @builtins.property
6770
+ def idp_metadata_content(self) -> builtins.str:
6771
+ '''The metadata of the SAML application, in XML format.'''
6772
+ result = self._values.get("idp_metadata_content")
6773
+ assert result is not None, "Required property 'idp_metadata_content' is missing"
6774
+ return typing.cast(builtins.str, result)
6775
+
6776
+ @builtins.property
6777
+ def master_backend_role(self) -> typing.Optional[builtins.str]:
6778
+ '''The backend role that the SAML master user is mapped to.
6779
+
6780
+ Any users with this backend role receives full permission in OpenSearch Dashboards/Kibana.
6781
+ To use a SAML master backend role, configure the ``rolesKey`` property.
6782
+
6783
+ :default: - The master user is not mapped to a backend role
6784
+ '''
6785
+ result = self._values.get("master_backend_role")
6786
+ return typing.cast(typing.Optional[builtins.str], result)
6787
+
6788
+ @builtins.property
6789
+ def master_user_name(self) -> typing.Optional[builtins.str]:
6790
+ '''The SAML master username, which is stored in the domain's internal user database.
6791
+
6792
+ This SAML user receives full permission in OpenSearch Dashboards/Kibana.
6793
+ Creating a new master username does not delete any existing master usernames.
6794
+
6795
+ :default: - No master user name is configured
6796
+ '''
6797
+ result = self._values.get("master_user_name")
6798
+ return typing.cast(typing.Optional[builtins.str], result)
6799
+
6800
+ @builtins.property
6801
+ def roles_key(self) -> typing.Optional[builtins.str]:
6802
+ '''Element of the SAML assertion to use for backend roles.
6803
+
6804
+ :default: - roles
6805
+ '''
6806
+ result = self._values.get("roles_key")
6807
+ return typing.cast(typing.Optional[builtins.str], result)
6808
+
6809
+ @builtins.property
6810
+ def session_timeout_minutes(self) -> typing.Optional[jsii.Number]:
6811
+ '''The duration, in minutes, after which a user session becomes inactive.
6812
+
6813
+ :default: - 60
6814
+ '''
6815
+ result = self._values.get("session_timeout_minutes")
6816
+ return typing.cast(typing.Optional[jsii.Number], result)
6817
+
6818
+ @builtins.property
6819
+ def subject_key(self) -> typing.Optional[builtins.str]:
6820
+ '''Element of the SAML assertion to use for the user name.
6821
+
6822
+ :default: - NameID element of the SAML assertion fot the user name
6823
+ '''
6824
+ result = self._values.get("subject_key")
6825
+ return typing.cast(typing.Optional[builtins.str], result)
6826
+
6827
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6828
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6829
+
6830
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6831
+ return not (rhs == self)
6832
+
6833
+ def __repr__(self) -> str:
6834
+ return "SAMLOptionsProperty(%s)" % ", ".join(
6835
+ k + "=" + repr(v) for k, v in self._values.items()
6836
+ )
6837
+
6838
+
6622
6839
  @jsii.enum(jsii_type="aws-cdk-lib.aws_opensearchservice.TLSSecurityPolicy")
6623
6840
  class TLSSecurityPolicy(enum.Enum):
6624
6841
  '''The minimum TLS version required for traffic to the domain.'''
@@ -7823,6 +8040,7 @@ __all__ = [
7823
8040
  "EngineVersion",
7824
8041
  "IDomain",
7825
8042
  "LoggingOptions",
8043
+ "SAMLOptionsProperty",
7826
8044
  "TLSSecurityPolicy",
7827
8045
  "WindowStartTime",
7828
8046
  "ZoneAwarenessConfig",
@@ -7835,6 +8053,8 @@ def _typecheckingstub__c1e95392d4761126042f2d6d6160889a80c269d2f13c21476fe92febd
7835
8053
  master_user_arn: typing.Optional[builtins.str] = None,
7836
8054
  master_user_name: typing.Optional[builtins.str] = None,
7837
8055
  master_user_password: typing.Optional[_SecretValue_3dd0ddae] = None,
8056
+ saml_authentication_enabled: typing.Optional[builtins.bool] = None,
8057
+ saml_authentication_options: typing.Optional[typing.Union[SAMLOptionsProperty, typing.Dict[builtins.str, typing.Any]]] = None,
7838
8058
  ) -> None:
7839
8059
  """Type checking stubs"""
7840
8060
  pass
@@ -8378,6 +8598,19 @@ def _typecheckingstub__6f2efbcf1fc757504a748851740a44deb59ed98ee9c1d8c213d60960f
8378
8598
  """Type checking stubs"""
8379
8599
  pass
8380
8600
 
8601
+ def _typecheckingstub__3971b3c73627d57587c667b1ede64fbba4de4fd4a086af959dc2d0f812f8e36b(
8602
+ *,
8603
+ idp_entity_id: builtins.str,
8604
+ idp_metadata_content: builtins.str,
8605
+ master_backend_role: typing.Optional[builtins.str] = None,
8606
+ master_user_name: typing.Optional[builtins.str] = None,
8607
+ roles_key: typing.Optional[builtins.str] = None,
8608
+ session_timeout_minutes: typing.Optional[jsii.Number] = None,
8609
+ subject_key: typing.Optional[builtins.str] = None,
8610
+ ) -> None:
8611
+ """Type checking stubs"""
8612
+ pass
8613
+
8381
8614
  def _typecheckingstub__6aa10c95f5a58e650c77a0c42630f2fa77e6475974ad59138caebb586e5fad2c(
8382
8615
  *,
8383
8616
  hours: jsii.Number,