aws-cdk-lib 2.173.3__py3-none-any.whl → 2.174.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 (88) hide show
  1. aws_cdk/__init__.py +210 -181
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.173.3.jsii.tgz → aws-cdk-lib@2.174.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +127 -168
  5. aws_cdk/aws_appconfig/__init__.py +498 -1
  6. aws_cdk/aws_applicationautoscaling/__init__.py +4 -1
  7. aws_cdk/aws_appsync/__init__.py +4 -0
  8. aws_cdk/aws_autoscaling/__init__.py +96 -0
  9. aws_cdk/aws_batch/__init__.py +1084 -233
  10. aws_cdk/aws_bedrock/__init__.py +2119 -181
  11. aws_cdk/aws_cassandra/__init__.py +476 -4
  12. aws_cdk/aws_cleanrooms/__init__.py +543 -17
  13. aws_cdk/aws_cloudformation/__init__.py +172 -169
  14. aws_cdk/aws_cloudfront/__init__.py +773 -26
  15. aws_cdk/aws_cloudtrail/__init__.py +8 -2
  16. aws_cdk/aws_codebuild/__init__.py +83 -0
  17. aws_cdk/aws_codepipeline/__init__.py +2 -1
  18. aws_cdk/aws_cognito/__init__.py +232 -200
  19. aws_cdk/aws_connect/__init__.py +187 -36
  20. aws_cdk/aws_connectcampaignsv2/__init__.py +106 -12
  21. aws_cdk/aws_databrew/__init__.py +69 -1
  22. aws_cdk/aws_datasync/__init__.py +33 -28
  23. aws_cdk/aws_datazone/__init__.py +141 -41
  24. aws_cdk/aws_dlm/__init__.py +20 -10
  25. aws_cdk/aws_dms/__init__.py +722 -30
  26. aws_cdk/aws_dynamodb/__init__.py +76 -4
  27. aws_cdk/aws_ec2/__init__.py +1233 -65
  28. aws_cdk/aws_ecr/__init__.py +31 -0
  29. aws_cdk/aws_ecr_assets/__init__.py +5 -0
  30. aws_cdk/aws_ecs/__init__.py +88 -11
  31. aws_cdk/aws_efs/__init__.py +15 -8
  32. aws_cdk/aws_eks/__init__.py +114 -45
  33. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  34. aws_cdk/aws_emrserverless/__init__.py +143 -0
  35. aws_cdk/aws_events/__init__.py +50 -30
  36. aws_cdk/aws_fis/__init__.py +33 -33
  37. aws_cdk/aws_fsx/__init__.py +20 -10
  38. aws_cdk/aws_glue/__init__.py +34 -11
  39. aws_cdk/aws_greengrass/__init__.py +8 -8
  40. aws_cdk/aws_guardduty/__init__.py +1 -1
  41. aws_cdk/aws_imagebuilder/__init__.py +45 -47
  42. aws_cdk/aws_internetmonitor/__init__.py +3 -3
  43. aws_cdk/aws_invoicing/__init__.py +55 -30
  44. aws_cdk/aws_iot/__init__.py +1117 -4
  45. aws_cdk/aws_iot1click/__init__.py +17 -7
  46. aws_cdk/aws_kendra/__init__.py +4 -6
  47. aws_cdk/aws_lambda/__init__.py +15 -1
  48. aws_cdk/aws_logs/__init__.py +4011 -86
  49. aws_cdk/aws_m2/__init__.py +41 -0
  50. aws_cdk/aws_mediaconnect/__init__.py +202 -7
  51. aws_cdk/aws_memorydb/__init__.py +22 -22
  52. aws_cdk/aws_networkmanager/__init__.py +758 -0
  53. aws_cdk/aws_opensearchservice/__init__.py +222 -0
  54. aws_cdk/aws_organizations/__init__.py +5 -3
  55. aws_cdk/aws_pcs/__init__.py +3038 -0
  56. aws_cdk/aws_pipes/__init__.py +10 -10
  57. aws_cdk/aws_qbusiness/__init__.py +415 -140
  58. aws_cdk/aws_quicksight/__init__.py +15932 -6448
  59. aws_cdk/aws_ram/__init__.py +5 -11
  60. aws_cdk/aws_rbin/__init__.py +28 -16
  61. aws_cdk/aws_rds/__init__.py +184 -24
  62. aws_cdk/aws_redshiftserverless/__init__.py +156 -0
  63. aws_cdk/aws_resiliencehub/__init__.py +2 -1
  64. aws_cdk/aws_route53_targets/__init__.py +5 -5
  65. aws_cdk/aws_s3/__init__.py +25 -15
  66. aws_cdk/aws_s3express/__init__.py +7 -7
  67. aws_cdk/aws_s3tables/__init__.py +683 -0
  68. aws_cdk/aws_sagemaker/__init__.py +574 -189
  69. aws_cdk/aws_secretsmanager/__init__.py +2 -0
  70. aws_cdk/aws_securityhub/__init__.py +41 -165
  71. aws_cdk/aws_servicediscovery/__init__.py +10 -3
  72. aws_cdk/aws_ses/__init__.py +190 -5
  73. aws_cdk/aws_sns/__init__.py +7 -3
  74. aws_cdk/aws_synthetics/__init__.py +29 -4
  75. aws_cdk/aws_transfer/__init__.py +8 -0
  76. aws_cdk/aws_vpclattice/__init__.py +147 -77
  77. aws_cdk/aws_wafv2/__init__.py +20 -8
  78. aws_cdk/aws_wisdom/__init__.py +162 -111
  79. aws_cdk/aws_workspaces/__init__.py +10 -4
  80. aws_cdk/cloud_assembly_schema/__init__.py +22 -0
  81. aws_cdk/custom_resources/__init__.py +31 -0
  82. aws_cdk/cx_api/__init__.py +19 -0
  83. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/LICENSE +1 -1
  84. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/METADATA +2 -2
  85. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/NOTICE +1 -1
  86. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/RECORD +88 -86
  87. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/WHEEL +0 -0
  88. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/top_level.txt +0 -0
@@ -2738,14 +2738,6 @@ class CfnJobDefinition(
2738
2738
  '''The CloudFormation resource type name for this resource class.'''
2739
2739
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
2740
2740
 
2741
- @builtins.property
2742
- @jsii.member(jsii_name="attrId")
2743
- def attr_id(self) -> builtins.str:
2744
- '''
2745
- :cloudformationAttribute: Id
2746
- '''
2747
- return typing.cast(builtins.str, jsii.get(self, "attrId"))
2748
-
2749
2741
  @builtins.property
2750
2742
  @jsii.member(jsii_name="cfnProperties")
2751
2743
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -2976,10 +2968,9 @@ class CfnJobDefinition(
2976
2968
  access_point_id: typing.Optional[builtins.str] = None,
2977
2969
  iam: typing.Optional[builtins.str] = None,
2978
2970
  ) -> None:
2979
- '''The authorization configuration details for the Amazon EFS file system.
2980
-
2981
- :param access_point_id: The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which enforces the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . For more information, see `Working with Amazon EFS access points <https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html>`_ in the *Amazon Elastic File System User Guide* .
2982
- :param iam: Whether or not to use the AWS Batch job IAM role defined in a job definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Using Amazon EFS access points <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html#efs-volume-accesspoints>`_ in the *AWS Batch User Guide* . EFS IAM authorization requires that ``TransitEncryption`` be ``ENABLED`` and that a ``JobRoleArn`` is specified.
2971
+ '''
2972
+ :param access_point_id:
2973
+ :param iam:
2983
2974
 
2984
2975
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html
2985
2976
  :exampleMetadata: fixture=_generated
@@ -3007,10 +2998,7 @@ class CfnJobDefinition(
3007
2998
 
3008
2999
  @builtins.property
3009
3000
  def access_point_id(self) -> typing.Optional[builtins.str]:
3010
- '''The Amazon EFS access point ID to use.
3011
-
3012
- If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which enforces the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . For more information, see `Working with Amazon EFS access points <https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html>`_ in the *Amazon Elastic File System User Guide* .
3013
-
3001
+ '''
3014
3002
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html#cfn-batch-jobdefinition-authorizationconfig-accesspointid
3015
3003
  '''
3016
3004
  result = self._values.get("access_point_id")
@@ -3018,10 +3006,7 @@ class CfnJobDefinition(
3018
3006
 
3019
3007
  @builtins.property
3020
3008
  def iam(self) -> typing.Optional[builtins.str]:
3021
- '''Whether or not to use the AWS Batch job IAM role defined in a job definition when mounting the Amazon EFS file system.
3022
-
3023
- If enabled, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Using Amazon EFS access points <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html#efs-volume-accesspoints>`_ in the *AWS Batch User Guide* . EFS IAM authorization requires that ``TransitEncryption`` be ``ENABLED`` and that a ``JobRoleArn`` is specified.
3024
-
3009
+ '''
3025
3010
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html#cfn-batch-jobdefinition-authorizationconfig-iam
3026
3011
  '''
3027
3012
  result = self._values.get("iam")
@@ -3105,7 +3090,7 @@ class CfnJobDefinition(
3105
3090
  :param ephemeral_storage: The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate .
3106
3091
  :param execution_role_arn: The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For jobs that run on Fargate resources, you must provide an execution role. For more information, see `AWS Batch execution IAM role <https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html>`_ in the *AWS Batch User Guide* .
3107
3092
  :param fargate_platform_configuration: The platform configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.
3108
- :param instance_type: The instance type to use for a multi-node parallel job. All node groups in a multi-node parallel job must use the same instance type. .. epigraph:: This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided.
3093
+ :param instance_type:
3109
3094
  :param job_role_arn: The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions. For more information, see `IAM roles for tasks <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
3110
3095
  :param linux_parameters: Linux-specific modifications that are applied to the container, such as details for device mappings.
3111
3096
  :param log_configuration: The log configuration specification for the container. This parameter maps to ``LogConfig`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/>`_ and the ``--log-driver`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/>`_ . By default, containers use the same logging driver that the Docker daemon uses. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see `Configure logging drivers <https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/>`_ in the Docker documentation. .. epigraph:: AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the `LogConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html>`_ data type). This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version | grep "Server API version"`` .. epigraph:: The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see `Amazon ECS container agent configuration <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
@@ -3393,13 +3378,7 @@ class CfnJobDefinition(
3393
3378
 
3394
3379
  @builtins.property
3395
3380
  def instance_type(self) -> typing.Optional[builtins.str]:
3396
- '''The instance type to use for a multi-node parallel job.
3397
-
3398
- All node groups in a multi-node parallel job must use the same instance type.
3399
- .. epigraph::
3400
-
3401
- This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided.
3402
-
3381
+ '''
3403
3382
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-instancetype
3404
3383
  '''
3405
3384
  result = self._values.get("instance_type")
@@ -3721,6 +3700,220 @@ class CfnJobDefinition(
3721
3700
  k + "=" + repr(v) for k, v in self._values.items()
3722
3701
  )
3723
3702
 
3703
+ @jsii.data_type(
3704
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EFSAuthorizationConfigProperty",
3705
+ jsii_struct_bases=[],
3706
+ name_mapping={"access_point_id": "accessPointId", "iam": "iam"},
3707
+ )
3708
+ class EFSAuthorizationConfigProperty:
3709
+ def __init__(
3710
+ self,
3711
+ *,
3712
+ access_point_id: typing.Optional[builtins.str] = None,
3713
+ iam: typing.Optional[builtins.str] = None,
3714
+ ) -> None:
3715
+ '''The authorization configuration details for the Amazon EFS file system.
3716
+
3717
+ :param access_point_id: The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which enforces the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . For more information, see `Working with Amazon EFS access points <https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html>`_ in the *Amazon Elastic File System User Guide* .
3718
+ :param iam: Whether or not to use the AWS Batch job IAM role defined in a job definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Using Amazon EFS access points <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html#efs-volume-accesspoints>`_ in the *AWS Batch User Guide* . EFS IAM authorization requires that ``TransitEncryption`` be ``ENABLED`` and that a ``JobRoleArn`` is specified.
3719
+
3720
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsauthorizationconfig.html
3721
+ :exampleMetadata: fixture=_generated
3722
+
3723
+ Example::
3724
+
3725
+ # The code below shows an example of how to instantiate this type.
3726
+ # The values are placeholders you should change.
3727
+ from aws_cdk import aws_batch as batch
3728
+
3729
+ e_fSAuthorization_config_property = batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
3730
+ access_point_id="accessPointId",
3731
+ iam="iam"
3732
+ )
3733
+ '''
3734
+ if __debug__:
3735
+ type_hints = typing.get_type_hints(_typecheckingstub__6e96fe4d6e78af8198838e1f3e7014c5fd996324833b97cdff758044ba792c6a)
3736
+ check_type(argname="argument access_point_id", value=access_point_id, expected_type=type_hints["access_point_id"])
3737
+ check_type(argname="argument iam", value=iam, expected_type=type_hints["iam"])
3738
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3739
+ if access_point_id is not None:
3740
+ self._values["access_point_id"] = access_point_id
3741
+ if iam is not None:
3742
+ self._values["iam"] = iam
3743
+
3744
+ @builtins.property
3745
+ def access_point_id(self) -> typing.Optional[builtins.str]:
3746
+ '''The Amazon EFS access point ID to use.
3747
+
3748
+ If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which enforces the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . For more information, see `Working with Amazon EFS access points <https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html>`_ in the *Amazon Elastic File System User Guide* .
3749
+
3750
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsauthorizationconfig.html#cfn-batch-jobdefinition-efsauthorizationconfig-accesspointid
3751
+ '''
3752
+ result = self._values.get("access_point_id")
3753
+ return typing.cast(typing.Optional[builtins.str], result)
3754
+
3755
+ @builtins.property
3756
+ def iam(self) -> typing.Optional[builtins.str]:
3757
+ '''Whether or not to use the AWS Batch job IAM role defined in a job definition when mounting the Amazon EFS file system.
3758
+
3759
+ If enabled, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Using Amazon EFS access points <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html#efs-volume-accesspoints>`_ in the *AWS Batch User Guide* . EFS IAM authorization requires that ``TransitEncryption`` be ``ENABLED`` and that a ``JobRoleArn`` is specified.
3760
+
3761
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsauthorizationconfig.html#cfn-batch-jobdefinition-efsauthorizationconfig-iam
3762
+ '''
3763
+ result = self._values.get("iam")
3764
+ return typing.cast(typing.Optional[builtins.str], result)
3765
+
3766
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3767
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3768
+
3769
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3770
+ return not (rhs == self)
3771
+
3772
+ def __repr__(self) -> str:
3773
+ return "EFSAuthorizationConfigProperty(%s)" % ", ".join(
3774
+ k + "=" + repr(v) for k, v in self._values.items()
3775
+ )
3776
+
3777
+ @jsii.data_type(
3778
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EFSVolumeConfigurationProperty",
3779
+ jsii_struct_bases=[],
3780
+ name_mapping={
3781
+ "file_system_id": "fileSystemId",
3782
+ "authorization_config": "authorizationConfig",
3783
+ "root_directory": "rootDirectory",
3784
+ "transit_encryption": "transitEncryption",
3785
+ "transit_encryption_port": "transitEncryptionPort",
3786
+ },
3787
+ )
3788
+ class EFSVolumeConfigurationProperty:
3789
+ def __init__(
3790
+ self,
3791
+ *,
3792
+ file_system_id: builtins.str,
3793
+ authorization_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EFSAuthorizationConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3794
+ root_directory: typing.Optional[builtins.str] = None,
3795
+ transit_encryption: typing.Optional[builtins.str] = None,
3796
+ transit_encryption_port: typing.Optional[jsii.Number] = None,
3797
+ ) -> None:
3798
+ '''This is used when you're using an Amazon Elastic File System file system for job storage.
3799
+
3800
+ For more information, see `Amazon EFS Volumes <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html>`_ in the *AWS Batch User Guide* .
3801
+
3802
+ :param file_system_id: The Amazon EFS file system ID to use.
3803
+ :param authorization_config: The authorization configuration details for the Amazon EFS file system.
3804
+ :param root_directory: The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume is used instead. Specifying ``/`` has the same effect as omitting this parameter. The maximum length is 4,096 characters. .. epigraph:: If an EFS access point is specified in the ``authorizationConfig`` , the root directory parameter must either be omitted or set to ``/`` , which enforces the path set on the Amazon EFS access point.
3805
+ :param transit_encryption: Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Encrypting data in transit <https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html>`_ in the *Amazon Elastic File System User Guide* .
3806
+ :param transit_encryption_port: The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses. The value must be between 0 and 65,535. For more information, see `EFS mount helper <https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html>`_ in the *Amazon Elastic File System User Guide* .
3807
+
3808
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html
3809
+ :exampleMetadata: fixture=_generated
3810
+
3811
+ Example::
3812
+
3813
+ # The code below shows an example of how to instantiate this type.
3814
+ # The values are placeholders you should change.
3815
+ from aws_cdk import aws_batch as batch
3816
+
3817
+ e_fSVolume_configuration_property = batch.CfnJobDefinition.EFSVolumeConfigurationProperty(
3818
+ file_system_id="fileSystemId",
3819
+
3820
+ # the properties below are optional
3821
+ authorization_config=batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
3822
+ access_point_id="accessPointId",
3823
+ iam="iam"
3824
+ ),
3825
+ root_directory="rootDirectory",
3826
+ transit_encryption="transitEncryption",
3827
+ transit_encryption_port=123
3828
+ )
3829
+ '''
3830
+ if __debug__:
3831
+ type_hints = typing.get_type_hints(_typecheckingstub__013a9cd8939e91b624e957abcdc2e30af9676f2dfd7131d966f2e13f5af8e8ee)
3832
+ check_type(argname="argument file_system_id", value=file_system_id, expected_type=type_hints["file_system_id"])
3833
+ check_type(argname="argument authorization_config", value=authorization_config, expected_type=type_hints["authorization_config"])
3834
+ check_type(argname="argument root_directory", value=root_directory, expected_type=type_hints["root_directory"])
3835
+ check_type(argname="argument transit_encryption", value=transit_encryption, expected_type=type_hints["transit_encryption"])
3836
+ check_type(argname="argument transit_encryption_port", value=transit_encryption_port, expected_type=type_hints["transit_encryption_port"])
3837
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3838
+ "file_system_id": file_system_id,
3839
+ }
3840
+ if authorization_config is not None:
3841
+ self._values["authorization_config"] = authorization_config
3842
+ if root_directory is not None:
3843
+ self._values["root_directory"] = root_directory
3844
+ if transit_encryption is not None:
3845
+ self._values["transit_encryption"] = transit_encryption
3846
+ if transit_encryption_port is not None:
3847
+ self._values["transit_encryption_port"] = transit_encryption_port
3848
+
3849
+ @builtins.property
3850
+ def file_system_id(self) -> builtins.str:
3851
+ '''The Amazon EFS file system ID to use.
3852
+
3853
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-filesystemid
3854
+ '''
3855
+ result = self._values.get("file_system_id")
3856
+ assert result is not None, "Required property 'file_system_id' is missing"
3857
+ return typing.cast(builtins.str, result)
3858
+
3859
+ @builtins.property
3860
+ def authorization_config(
3861
+ self,
3862
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EFSAuthorizationConfigProperty"]]:
3863
+ '''The authorization configuration details for the Amazon EFS file system.
3864
+
3865
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-authorizationconfig
3866
+ '''
3867
+ result = self._values.get("authorization_config")
3868
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EFSAuthorizationConfigProperty"]], result)
3869
+
3870
+ @builtins.property
3871
+ def root_directory(self) -> typing.Optional[builtins.str]:
3872
+ '''The directory within the Amazon EFS file system to mount as the root directory inside the host.
3873
+
3874
+ If this parameter is omitted, the root of the Amazon EFS volume is used instead. Specifying ``/`` has the same effect as omitting this parameter. The maximum length is 4,096 characters.
3875
+ .. epigraph::
3876
+
3877
+ If an EFS access point is specified in the ``authorizationConfig`` , the root directory parameter must either be omitted or set to ``/`` , which enforces the path set on the Amazon EFS access point.
3878
+
3879
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-rootdirectory
3880
+ '''
3881
+ result = self._values.get("root_directory")
3882
+ return typing.cast(typing.Optional[builtins.str], result)
3883
+
3884
+ @builtins.property
3885
+ def transit_encryption(self) -> typing.Optional[builtins.str]:
3886
+ '''Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server.
3887
+
3888
+ Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Encrypting data in transit <https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html>`_ in the *Amazon Elastic File System User Guide* .
3889
+
3890
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryption
3891
+ '''
3892
+ result = self._values.get("transit_encryption")
3893
+ return typing.cast(typing.Optional[builtins.str], result)
3894
+
3895
+ @builtins.property
3896
+ def transit_encryption_port(self) -> typing.Optional[jsii.Number]:
3897
+ '''The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server.
3898
+
3899
+ If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses. The value must be between 0 and 65,535. For more information, see `EFS mount helper <https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html>`_ in the *Amazon Elastic File System User Guide* .
3900
+
3901
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryptionport
3902
+ '''
3903
+ result = self._values.get("transit_encryption_port")
3904
+ return typing.cast(typing.Optional[jsii.Number], result)
3905
+
3906
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3907
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3908
+
3909
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3910
+ return not (rhs == self)
3911
+
3912
+ def __repr__(self) -> str:
3913
+ return "EFSVolumeConfigurationProperty(%s)" % ", ".join(
3914
+ k + "=" + repr(v) for k, v in self._values.items()
3915
+ )
3916
+
3724
3917
  @jsii.data_type(
3725
3918
  jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EcsPropertiesProperty",
3726
3919
  jsii_struct_bases=[],
@@ -3791,7 +3984,7 @@ class CfnJobDefinition(
3791
3984
  value_from="valueFrom"
3792
3985
  )]
3793
3986
  ),
3794
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
3987
+ mount_points=[batch.CfnJobDefinition.MountPointProperty(
3795
3988
  container_path="containerPath",
3796
3989
  read_only=False,
3797
3990
  source_volume="sourceVolume"
@@ -3832,12 +4025,12 @@ class CfnJobDefinition(
3832
4025
  operating_system_family="operatingSystemFamily"
3833
4026
  ),
3834
4027
  task_role_arn="taskRoleArn",
3835
- volumes=[batch.CfnJobDefinition.VolumesProperty(
3836
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
4028
+ volumes=[batch.CfnJobDefinition.VolumeProperty(
4029
+ efs_volume_configuration=batch.CfnJobDefinition.EFSVolumeConfigurationProperty(
3837
4030
  file_system_id="fileSystemId",
3838
4031
 
3839
4032
  # the properties below are optional
3840
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
4033
+ authorization_config=batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
3841
4034
  access_point_id="accessPointId",
3842
4035
  iam="iam"
3843
4036
  ),
@@ -3845,7 +4038,7 @@ class CfnJobDefinition(
3845
4038
  transit_encryption="transitEncryption",
3846
4039
  transit_encryption_port=123
3847
4040
  ),
3848
- host=batch.CfnJobDefinition.VolumesHostProperty(
4041
+ host=batch.CfnJobDefinition.HostProperty(
3849
4042
  source_path="sourcePath"
3850
4043
  ),
3851
4044
  name="name"
@@ -3916,7 +4109,7 @@ class CfnJobDefinition(
3916
4109
  platform_version: typing.Optional[builtins.str] = None,
3917
4110
  runtime_platform: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.RuntimePlatformProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3918
4111
  task_role_arn: typing.Optional[builtins.str] = None,
3919
- volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.VolumesProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4112
+ volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.VolumeProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3920
4113
  ) -> None:
3921
4114
  '''The properties for a task definition that describes the container and volume definitions of an Amazon ECS task.
3922
4115
 
@@ -3987,7 +4180,7 @@ class CfnJobDefinition(
3987
4180
  value_from="valueFrom"
3988
4181
  )]
3989
4182
  ),
3990
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
4183
+ mount_points=[batch.CfnJobDefinition.MountPointProperty(
3991
4184
  container_path="containerPath",
3992
4185
  read_only=False,
3993
4186
  source_volume="sourceVolume"
@@ -4028,12 +4221,12 @@ class CfnJobDefinition(
4028
4221
  operating_system_family="operatingSystemFamily"
4029
4222
  ),
4030
4223
  task_role_arn="taskRoleArn",
4031
- volumes=[batch.CfnJobDefinition.VolumesProperty(
4032
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
4224
+ volumes=[batch.CfnJobDefinition.VolumeProperty(
4225
+ efs_volume_configuration=batch.CfnJobDefinition.EFSVolumeConfigurationProperty(
4033
4226
  file_system_id="fileSystemId",
4034
4227
 
4035
4228
  # the properties below are optional
4036
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
4229
+ authorization_config=batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
4037
4230
  access_point_id="accessPointId",
4038
4231
  iam="iam"
4039
4232
  ),
@@ -4041,7 +4234,7 @@ class CfnJobDefinition(
4041
4234
  transit_encryption="transitEncryption",
4042
4235
  transit_encryption_port=123
4043
4236
  ),
4044
- host=batch.CfnJobDefinition.VolumesHostProperty(
4237
+ host=batch.CfnJobDefinition.HostProperty(
4045
4238
  source_path="sourcePath"
4046
4239
  ),
4047
4240
  name="name"
@@ -4204,13 +4397,13 @@ class CfnJobDefinition(
4204
4397
  @builtins.property
4205
4398
  def volumes(
4206
4399
  self,
4207
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesProperty"]]]]:
4400
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumeProperty"]]]]:
4208
4401
  '''A list of volumes that are associated with the job.
4209
4402
 
4210
4403
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-volumes
4211
4404
  '''
4212
4405
  result = self._values.get("volumes")
4213
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesProperty"]]]], result)
4406
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumeProperty"]]]], result)
4214
4407
 
4215
4408
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
4216
4409
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -4244,15 +4437,12 @@ class CfnJobDefinition(
4244
4437
  transit_encryption: typing.Optional[builtins.str] = None,
4245
4438
  transit_encryption_port: typing.Optional[jsii.Number] = None,
4246
4439
  ) -> None:
4247
- '''This is used when you're using an Amazon Elastic File System file system for job storage.
4248
-
4249
- For more information, see `Amazon EFS Volumes <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html>`_ in the *AWS Batch User Guide* .
4250
-
4251
- :param file_system_id: The Amazon EFS file system ID to use.
4252
- :param authorization_config: The authorization configuration details for the Amazon EFS file system.
4253
- :param root_directory: The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume is used instead. Specifying ``/`` has the same effect as omitting this parameter. The maximum length is 4,096 characters. .. epigraph:: If an EFS access point is specified in the ``authorizationConfig`` , the root directory parameter must either be omitted or set to ``/`` , which enforces the path set on the Amazon EFS access point.
4254
- :param transit_encryption: Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Encrypting data in transit <https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html>`_ in the *Amazon Elastic File System User Guide* .
4255
- :param transit_encryption_port: The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses. The value must be between 0 and 65,535. For more information, see `EFS mount helper <https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html>`_ in the *Amazon Elastic File System User Guide* .
4440
+ '''
4441
+ :param file_system_id:
4442
+ :param authorization_config:
4443
+ :param root_directory:
4444
+ :param transit_encryption:
4445
+ :param transit_encryption_port:
4256
4446
 
4257
4447
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html
4258
4448
  :exampleMetadata: fixture=_generated
@@ -4297,8 +4487,7 @@ class CfnJobDefinition(
4297
4487
 
4298
4488
  @builtins.property
4299
4489
  def file_system_id(self) -> builtins.str:
4300
- '''The Amazon EFS file system ID to use.
4301
-
4490
+ '''
4302
4491
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-filesystemid
4303
4492
  '''
4304
4493
  result = self._values.get("file_system_id")
@@ -4309,8 +4498,7 @@ class CfnJobDefinition(
4309
4498
  def authorization_config(
4310
4499
  self,
4311
4500
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.AuthorizationConfigProperty"]]:
4312
- '''The authorization configuration details for the Amazon EFS file system.
4313
-
4501
+ '''
4314
4502
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-authorizationconfig
4315
4503
  '''
4316
4504
  result = self._values.get("authorization_config")
@@ -4318,24 +4506,15 @@ class CfnJobDefinition(
4318
4506
 
4319
4507
  @builtins.property
4320
4508
  def root_directory(self) -> typing.Optional[builtins.str]:
4321
- '''The directory within the Amazon EFS file system to mount as the root directory inside the host.
4322
-
4323
- If this parameter is omitted, the root of the Amazon EFS volume is used instead. Specifying ``/`` has the same effect as omitting this parameter. The maximum length is 4,096 characters.
4324
- .. epigraph::
4325
-
4326
- If an EFS access point is specified in the ``authorizationConfig`` , the root directory parameter must either be omitted or set to ``/`` , which enforces the path set on the Amazon EFS access point.
4327
-
4328
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-rootdirectory
4329
- '''
4330
- result = self._values.get("root_directory")
4331
- return typing.cast(typing.Optional[builtins.str], result)
4509
+ '''
4510
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-rootdirectory
4511
+ '''
4512
+ result = self._values.get("root_directory")
4513
+ return typing.cast(typing.Optional[builtins.str], result)
4332
4514
 
4333
4515
  @builtins.property
4334
4516
  def transit_encryption(self) -> typing.Optional[builtins.str]:
4335
- '''Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server.
4336
-
4337
- Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Encrypting data in transit <https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html>`_ in the *Amazon Elastic File System User Guide* .
4338
-
4517
+ '''
4339
4518
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryption
4340
4519
  '''
4341
4520
  result = self._values.get("transit_encryption")
@@ -4343,10 +4522,7 @@ class CfnJobDefinition(
4343
4522
 
4344
4523
  @builtins.property
4345
4524
  def transit_encryption_port(self) -> typing.Optional[jsii.Number]:
4346
- '''The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server.
4347
-
4348
- If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses. The value must be between 0 and 65,535. For more information, see `EFS mount helper <https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html>`_ in the *Amazon Elastic File System User Guide* .
4349
-
4525
+ '''
4350
4526
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryptionport
4351
4527
  '''
4352
4528
  result = self._values.get("transit_encryption_port")
@@ -5561,13 +5737,75 @@ class CfnJobDefinition(
5561
5737
  k + "=" + repr(v) for k, v in self._values.items()
5562
5738
  )
5563
5739
 
5740
+ @jsii.data_type(
5741
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.HostProperty",
5742
+ jsii_struct_bases=[],
5743
+ name_mapping={"source_path": "sourcePath"},
5744
+ )
5745
+ class HostProperty:
5746
+ def __init__(
5747
+ self,
5748
+ *,
5749
+ source_path: typing.Optional[builtins.str] = None,
5750
+ ) -> None:
5751
+ '''Determine whether your data volume persists on the host container instance and where it's stored.
5752
+
5753
+ If this parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.
5754
+
5755
+ :param source_path: The path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the source path location doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported. .. epigraph:: This parameter isn't applicable to jobs that run on Fargate resources. Don't provide this for these jobs.
5756
+
5757
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-host.html
5758
+ :exampleMetadata: fixture=_generated
5759
+
5760
+ Example::
5761
+
5762
+ # The code below shows an example of how to instantiate this type.
5763
+ # The values are placeholders you should change.
5764
+ from aws_cdk import aws_batch as batch
5765
+
5766
+ host_property = batch.CfnJobDefinition.HostProperty(
5767
+ source_path="sourcePath"
5768
+ )
5769
+ '''
5770
+ if __debug__:
5771
+ type_hints = typing.get_type_hints(_typecheckingstub__b32380c7fcfaea291ccd7d96f2eeed7d7bdebff21f3f1a30bf5467315c2c381d)
5772
+ check_type(argname="argument source_path", value=source_path, expected_type=type_hints["source_path"])
5773
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
5774
+ if source_path is not None:
5775
+ self._values["source_path"] = source_path
5776
+
5777
+ @builtins.property
5778
+ def source_path(self) -> typing.Optional[builtins.str]:
5779
+ '''The path on the host container instance that's presented to the container.
5780
+
5781
+ If this parameter is empty, then the Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the source path location doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.
5782
+ .. epigraph::
5783
+
5784
+ This parameter isn't applicable to jobs that run on Fargate resources. Don't provide this for these jobs.
5785
+
5786
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-host.html#cfn-batch-jobdefinition-host-sourcepath
5787
+ '''
5788
+ result = self._values.get("source_path")
5789
+ return typing.cast(typing.Optional[builtins.str], result)
5790
+
5791
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5792
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5793
+
5794
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5795
+ return not (rhs == self)
5796
+
5797
+ def __repr__(self) -> str:
5798
+ return "HostProperty(%s)" % ", ".join(
5799
+ k + "=" + repr(v) for k, v in self._values.items()
5800
+ )
5801
+
5564
5802
  @jsii.data_type(
5565
5803
  jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.ImagePullSecretProperty",
5566
5804
  jsii_struct_bases=[],
5567
5805
  name_mapping={"name": "name"},
5568
5806
  )
5569
5807
  class ImagePullSecretProperty:
5570
- def __init__(self, *, name: builtins.str) -> None:
5808
+ def __init__(self, *, name: typing.Optional[builtins.str] = None) -> None:
5571
5809
  '''References a Kubernetes secret resource.
5572
5810
 
5573
5811
  This name of the secret must start and end with an alphanumeric character, is required to be lowercase, can include periods (.) and hyphens (-), and can't contain more than 253 characters.
@@ -5590,12 +5828,12 @@ class CfnJobDefinition(
5590
5828
  if __debug__:
5591
5829
  type_hints = typing.get_type_hints(_typecheckingstub__510e7e45fa5176303c62970a1bb0161e95eb0fcd2438671b35f8c5a3c506b95a)
5592
5830
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
5593
- self._values: typing.Dict[builtins.str, typing.Any] = {
5594
- "name": name,
5595
- }
5831
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
5832
+ if name is not None:
5833
+ self._values["name"] = name
5596
5834
 
5597
5835
  @builtins.property
5598
- def name(self) -> builtins.str:
5836
+ def name(self) -> typing.Optional[builtins.str]:
5599
5837
  '''Provides a unique identifier for the ``ImagePullSecret`` .
5600
5838
 
5601
5839
  This object is required when ``EksPodProperties$imagePullSecrets`` is used.
@@ -5603,8 +5841,7 @@ class CfnJobDefinition(
5603
5841
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-imagepullsecret.html#cfn-batch-jobdefinition-imagepullsecret-name
5604
5842
  '''
5605
5843
  result = self._values.get("name")
5606
- assert result is not None, "Required property 'name' is missing"
5607
- return typing.cast(builtins.str, result)
5844
+ return typing.cast(typing.Optional[builtins.str], result)
5608
5845
 
5609
5846
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
5610
5847
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -5617,6 +5854,67 @@ class CfnJobDefinition(
5617
5854
  k + "=" + repr(v) for k, v in self._values.items()
5618
5855
  )
5619
5856
 
5857
+ @jsii.data_type(
5858
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.JobTimeoutProperty",
5859
+ jsii_struct_bases=[],
5860
+ name_mapping={"attempt_duration_seconds": "attemptDurationSeconds"},
5861
+ )
5862
+ class JobTimeoutProperty:
5863
+ def __init__(
5864
+ self,
5865
+ *,
5866
+ attempt_duration_seconds: typing.Optional[jsii.Number] = None,
5867
+ ) -> None:
5868
+ '''An object that represents a job timeout configuration.
5869
+
5870
+ :param attempt_duration_seconds: The job timeout time (in seconds) that's measured from the job attempt's ``startedAt`` timestamp. After this time passes, AWS Batch terminates your jobs if they aren't finished. The minimum value for the timeout is 60 seconds. For array jobs, the timeout applies to the child jobs, not to the parent array job. For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the individual nodes.
5871
+
5872
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-jobtimeout.html
5873
+ :exampleMetadata: fixture=_generated
5874
+
5875
+ Example::
5876
+
5877
+ # The code below shows an example of how to instantiate this type.
5878
+ # The values are placeholders you should change.
5879
+ from aws_cdk import aws_batch as batch
5880
+
5881
+ job_timeout_property = batch.CfnJobDefinition.JobTimeoutProperty(
5882
+ attempt_duration_seconds=123
5883
+ )
5884
+ '''
5885
+ if __debug__:
5886
+ type_hints = typing.get_type_hints(_typecheckingstub__a3f2b0ca2e9dc87bf15f08f72a000b1f1878e671abdfdb32aae1a6f479b101bf)
5887
+ check_type(argname="argument attempt_duration_seconds", value=attempt_duration_seconds, expected_type=type_hints["attempt_duration_seconds"])
5888
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
5889
+ if attempt_duration_seconds is not None:
5890
+ self._values["attempt_duration_seconds"] = attempt_duration_seconds
5891
+
5892
+ @builtins.property
5893
+ def attempt_duration_seconds(self) -> typing.Optional[jsii.Number]:
5894
+ '''The job timeout time (in seconds) that's measured from the job attempt's ``startedAt`` timestamp.
5895
+
5896
+ After this time passes, AWS Batch terminates your jobs if they aren't finished. The minimum value for the timeout is 60 seconds.
5897
+
5898
+ For array jobs, the timeout applies to the child jobs, not to the parent array job.
5899
+
5900
+ For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the individual nodes.
5901
+
5902
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-jobtimeout.html#cfn-batch-jobdefinition-jobtimeout-attemptdurationseconds
5903
+ '''
5904
+ result = self._values.get("attempt_duration_seconds")
5905
+ return typing.cast(typing.Optional[jsii.Number], result)
5906
+
5907
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5908
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5909
+
5910
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5911
+ return not (rhs == self)
5912
+
5913
+ def __repr__(self) -> str:
5914
+ return "JobTimeoutProperty(%s)" % ", ".join(
5915
+ k + "=" + repr(v) for k, v in self._values.items()
5916
+ )
5917
+
5620
5918
  @jsii.data_type(
5621
5919
  jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.LinuxParametersProperty",
5622
5920
  jsii_struct_bases=[],
@@ -5942,11 +6240,8 @@ class CfnJobDefinition(
5942
6240
  )
5943
6241
  class MetadataProperty:
5944
6242
  def __init__(self, *, labels: typing.Any = None) -> None:
5945
- '''Metadata about the Kubernetes pod.
5946
-
5947
- For more information, see `Understanding Kubernetes Objects <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/>`_ in the *Kubernetes documentation* .
5948
-
5949
- :param labels: Key-value pairs used to identify, sort, and organize cube resources. Can contain up to 63 uppercase letters, lowercase letters, numbers, hyphens (-), and underscores (_). Labels can be added or modified at any time. Each resource can have multiple labels, but each key must be unique for a given object.
6243
+ '''
6244
+ :param labels:
5950
6245
 
5951
6246
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-metadata.html
5952
6247
  :exampleMetadata: fixture=_generated
@@ -5972,10 +6267,7 @@ class CfnJobDefinition(
5972
6267
 
5973
6268
  @builtins.property
5974
6269
  def labels(self) -> typing.Any:
5975
- '''Key-value pairs used to identify, sort, and organize cube resources.
5976
-
5977
- Can contain up to 63 uppercase letters, lowercase letters, numbers, hyphens (-), and underscores (_). Labels can be added or modified at any time. Each resource can have multiple labels, but each key must be unique for a given object.
5978
-
6270
+ '''
5979
6271
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-metadata.html#cfn-batch-jobdefinition-metadata-labels
5980
6272
  '''
5981
6273
  result = self._values.get("labels")
@@ -5993,7 +6285,7 @@ class CfnJobDefinition(
5993
6285
  )
5994
6286
 
5995
6287
  @jsii.data_type(
5996
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.MountPointsProperty",
6288
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.MountPointProperty",
5997
6289
  jsii_struct_bases=[],
5998
6290
  name_mapping={
5999
6291
  "container_path": "containerPath",
@@ -6001,7 +6293,7 @@ class CfnJobDefinition(
6001
6293
  "source_volume": "sourceVolume",
6002
6294
  },
6003
6295
  )
6004
- class MountPointsProperty:
6296
+ class MountPointProperty:
6005
6297
  def __init__(
6006
6298
  self,
6007
6299
  *,
@@ -6017,7 +6309,7 @@ class CfnJobDefinition(
6017
6309
  :param read_only: If this value is ``true`` , the container has read-only access to the volume. Otherwise, the container can write to the volume. The default value is ``false`` .
6018
6310
  :param source_volume: The name of the volume to mount.
6019
6311
 
6020
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html
6312
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoint.html
6021
6313
  :exampleMetadata: fixture=_generated
6022
6314
 
6023
6315
  Example::
@@ -6026,14 +6318,14 @@ class CfnJobDefinition(
6026
6318
  # The values are placeholders you should change.
6027
6319
  from aws_cdk import aws_batch as batch
6028
6320
 
6029
- mount_points_property = batch.CfnJobDefinition.MountPointsProperty(
6321
+ mount_point_property = batch.CfnJobDefinition.MountPointProperty(
6030
6322
  container_path="containerPath",
6031
6323
  read_only=False,
6032
6324
  source_volume="sourceVolume"
6033
6325
  )
6034
6326
  '''
6035
6327
  if __debug__:
6036
- type_hints = typing.get_type_hints(_typecheckingstub__47aa253c2fbb1ab8f90425d412e691e807d1454f21b10bb59eee6c2b63cf29b5)
6328
+ type_hints = typing.get_type_hints(_typecheckingstub__0890bfa00c320f24aeaf31204369e159ba55507af9af6503cd040b7b5051df11)
6037
6329
  check_type(argname="argument container_path", value=container_path, expected_type=type_hints["container_path"])
6038
6330
  check_type(argname="argument read_only", value=read_only, expected_type=type_hints["read_only"])
6039
6331
  check_type(argname="argument source_volume", value=source_volume, expected_type=type_hints["source_volume"])
@@ -6049,7 +6341,7 @@ class CfnJobDefinition(
6049
6341
  def container_path(self) -> typing.Optional[builtins.str]:
6050
6342
  '''The path on the container where the host volume is mounted.
6051
6343
 
6052
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-containerpath
6344
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoint.html#cfn-batch-jobdefinition-mountpoint-containerpath
6053
6345
  '''
6054
6346
  result = self._values.get("container_path")
6055
6347
  return typing.cast(typing.Optional[builtins.str], result)
@@ -6062,7 +6354,7 @@ class CfnJobDefinition(
6062
6354
 
6063
6355
  Otherwise, the container can write to the volume. The default value is ``false`` .
6064
6356
 
6065
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-readonly
6357
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoint.html#cfn-batch-jobdefinition-mountpoint-readonly
6066
6358
  '''
6067
6359
  result = self._values.get("read_only")
6068
6360
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
@@ -6071,6 +6363,93 @@ class CfnJobDefinition(
6071
6363
  def source_volume(self) -> typing.Optional[builtins.str]:
6072
6364
  '''The name of the volume to mount.
6073
6365
 
6366
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoint.html#cfn-batch-jobdefinition-mountpoint-sourcevolume
6367
+ '''
6368
+ result = self._values.get("source_volume")
6369
+ return typing.cast(typing.Optional[builtins.str], result)
6370
+
6371
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6372
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6373
+
6374
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6375
+ return not (rhs == self)
6376
+
6377
+ def __repr__(self) -> str:
6378
+ return "MountPointProperty(%s)" % ", ".join(
6379
+ k + "=" + repr(v) for k, v in self._values.items()
6380
+ )
6381
+
6382
+ @jsii.data_type(
6383
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.MountPointsProperty",
6384
+ jsii_struct_bases=[],
6385
+ name_mapping={
6386
+ "container_path": "containerPath",
6387
+ "read_only": "readOnly",
6388
+ "source_volume": "sourceVolume",
6389
+ },
6390
+ )
6391
+ class MountPointsProperty:
6392
+ def __init__(
6393
+ self,
6394
+ *,
6395
+ container_path: typing.Optional[builtins.str] = None,
6396
+ read_only: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
6397
+ source_volume: typing.Optional[builtins.str] = None,
6398
+ ) -> None:
6399
+ '''
6400
+ :param container_path:
6401
+ :param read_only:
6402
+ :param source_volume:
6403
+
6404
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html
6405
+ :exampleMetadata: fixture=_generated
6406
+
6407
+ Example::
6408
+
6409
+ # The code below shows an example of how to instantiate this type.
6410
+ # The values are placeholders you should change.
6411
+ from aws_cdk import aws_batch as batch
6412
+
6413
+ mount_points_property = batch.CfnJobDefinition.MountPointsProperty(
6414
+ container_path="containerPath",
6415
+ read_only=False,
6416
+ source_volume="sourceVolume"
6417
+ )
6418
+ '''
6419
+ if __debug__:
6420
+ type_hints = typing.get_type_hints(_typecheckingstub__47aa253c2fbb1ab8f90425d412e691e807d1454f21b10bb59eee6c2b63cf29b5)
6421
+ check_type(argname="argument container_path", value=container_path, expected_type=type_hints["container_path"])
6422
+ check_type(argname="argument read_only", value=read_only, expected_type=type_hints["read_only"])
6423
+ check_type(argname="argument source_volume", value=source_volume, expected_type=type_hints["source_volume"])
6424
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
6425
+ if container_path is not None:
6426
+ self._values["container_path"] = container_path
6427
+ if read_only is not None:
6428
+ self._values["read_only"] = read_only
6429
+ if source_volume is not None:
6430
+ self._values["source_volume"] = source_volume
6431
+
6432
+ @builtins.property
6433
+ def container_path(self) -> typing.Optional[builtins.str]:
6434
+ '''
6435
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-containerpath
6436
+ '''
6437
+ result = self._values.get("container_path")
6438
+ return typing.cast(typing.Optional[builtins.str], result)
6439
+
6440
+ @builtins.property
6441
+ def read_only(
6442
+ self,
6443
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
6444
+ '''
6445
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-readonly
6446
+ '''
6447
+ result = self._values.get("read_only")
6448
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
6449
+
6450
+ @builtins.property
6451
+ def source_volume(self) -> typing.Optional[builtins.str]:
6452
+ '''
6074
6453
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-sourcevolume
6075
6454
  '''
6076
6455
  result = self._values.get("source_volume")
@@ -6087,6 +6466,375 @@ class CfnJobDefinition(
6087
6466
  k + "=" + repr(v) for k, v in self._values.items()
6088
6467
  )
6089
6468
 
6469
+ @jsii.data_type(
6470
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.MultiNodeEcsPropertiesProperty",
6471
+ jsii_struct_bases=[],
6472
+ name_mapping={"task_properties": "taskProperties"},
6473
+ )
6474
+ class MultiNodeEcsPropertiesProperty:
6475
+ def __init__(
6476
+ self,
6477
+ *,
6478
+ task_properties: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]]],
6479
+ ) -> None:
6480
+ '''
6481
+ :param task_properties:
6482
+
6483
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecsproperties.html
6484
+ :exampleMetadata: fixture=_generated
6485
+
6486
+ Example::
6487
+
6488
+ # The code below shows an example of how to instantiate this type.
6489
+ # The values are placeholders you should change.
6490
+ from aws_cdk import aws_batch as batch
6491
+
6492
+ # options: Any
6493
+
6494
+ multi_node_ecs_properties_property = batch.CfnJobDefinition.MultiNodeEcsPropertiesProperty(
6495
+ task_properties=[batch.CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty(
6496
+ containers=[batch.CfnJobDefinition.TaskContainerPropertiesProperty(
6497
+ image="image",
6498
+
6499
+ # the properties below are optional
6500
+ command=["command"],
6501
+ depends_on=[batch.CfnJobDefinition.TaskContainerDependencyProperty(
6502
+ condition="condition",
6503
+ container_name="containerName"
6504
+ )],
6505
+ environment=[batch.CfnJobDefinition.EnvironmentProperty(
6506
+ name="name",
6507
+ value="value"
6508
+ )],
6509
+ essential=False,
6510
+ linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
6511
+ devices=[batch.CfnJobDefinition.DeviceProperty(
6512
+ container_path="containerPath",
6513
+ host_path="hostPath",
6514
+ permissions=["permissions"]
6515
+ )],
6516
+ init_process_enabled=False,
6517
+ max_swap=123,
6518
+ shared_memory_size=123,
6519
+ swappiness=123,
6520
+ tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
6521
+ container_path="containerPath",
6522
+ size=123,
6523
+
6524
+ # the properties below are optional
6525
+ mount_options=["mountOptions"]
6526
+ )]
6527
+ ),
6528
+ log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
6529
+ log_driver="logDriver",
6530
+
6531
+ # the properties below are optional
6532
+ options=options,
6533
+ secret_options=[batch.CfnJobDefinition.SecretProperty(
6534
+ name="name",
6535
+ value_from="valueFrom"
6536
+ )]
6537
+ ),
6538
+ mount_points=[batch.CfnJobDefinition.MountPointProperty(
6539
+ container_path="containerPath",
6540
+ read_only=False,
6541
+ source_volume="sourceVolume"
6542
+ )],
6543
+ name="name",
6544
+ privileged=False,
6545
+ readonly_root_filesystem=False,
6546
+ repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
6547
+ credentials_parameter="credentialsParameter"
6548
+ ),
6549
+ resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
6550
+ type="type",
6551
+ value="value"
6552
+ )],
6553
+ secrets=[batch.CfnJobDefinition.SecretProperty(
6554
+ name="name",
6555
+ value_from="valueFrom"
6556
+ )],
6557
+ ulimits=[batch.CfnJobDefinition.UlimitProperty(
6558
+ hard_limit=123,
6559
+ name="name",
6560
+ soft_limit=123
6561
+ )],
6562
+ user="user"
6563
+ )],
6564
+ execution_role_arn="executionRoleArn",
6565
+ ipc_mode="ipcMode",
6566
+ pid_mode="pidMode",
6567
+ task_role_arn="taskRoleArn",
6568
+ volumes=[batch.CfnJobDefinition.VolumeProperty(
6569
+ efs_volume_configuration=batch.CfnJobDefinition.EFSVolumeConfigurationProperty(
6570
+ file_system_id="fileSystemId",
6571
+
6572
+ # the properties below are optional
6573
+ authorization_config=batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
6574
+ access_point_id="accessPointId",
6575
+ iam="iam"
6576
+ ),
6577
+ root_directory="rootDirectory",
6578
+ transit_encryption="transitEncryption",
6579
+ transit_encryption_port=123
6580
+ ),
6581
+ host=batch.CfnJobDefinition.HostProperty(
6582
+ source_path="sourcePath"
6583
+ ),
6584
+ name="name"
6585
+ )]
6586
+ )]
6587
+ )
6588
+ '''
6589
+ if __debug__:
6590
+ type_hints = typing.get_type_hints(_typecheckingstub__9a2309f896452e04abc96277b3c04ead84cbae39e501242083e44da7eb775567)
6591
+ check_type(argname="argument task_properties", value=task_properties, expected_type=type_hints["task_properties"])
6592
+ self._values: typing.Dict[builtins.str, typing.Any] = {
6593
+ "task_properties": task_properties,
6594
+ }
6595
+
6596
+ @builtins.property
6597
+ def task_properties(
6598
+ self,
6599
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty"]]]:
6600
+ '''
6601
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecsproperties.html#cfn-batch-jobdefinition-multinodeecsproperties-taskproperties
6602
+ '''
6603
+ result = self._values.get("task_properties")
6604
+ assert result is not None, "Required property 'task_properties' is missing"
6605
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty"]]], result)
6606
+
6607
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6608
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6609
+
6610
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6611
+ return not (rhs == self)
6612
+
6613
+ def __repr__(self) -> str:
6614
+ return "MultiNodeEcsPropertiesProperty(%s)" % ", ".join(
6615
+ k + "=" + repr(v) for k, v in self._values.items()
6616
+ )
6617
+
6618
+ @jsii.data_type(
6619
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty",
6620
+ jsii_struct_bases=[],
6621
+ name_mapping={
6622
+ "containers": "containers",
6623
+ "execution_role_arn": "executionRoleArn",
6624
+ "ipc_mode": "ipcMode",
6625
+ "pid_mode": "pidMode",
6626
+ "task_role_arn": "taskRoleArn",
6627
+ "volumes": "volumes",
6628
+ },
6629
+ )
6630
+ class MultiNodeEcsTaskPropertiesProperty:
6631
+ def __init__(
6632
+ self,
6633
+ *,
6634
+ containers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.TaskContainerPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
6635
+ execution_role_arn: typing.Optional[builtins.str] = None,
6636
+ ipc_mode: typing.Optional[builtins.str] = None,
6637
+ pid_mode: typing.Optional[builtins.str] = None,
6638
+ task_role_arn: typing.Optional[builtins.str] = None,
6639
+ volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.VolumeProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
6640
+ ) -> None:
6641
+ '''
6642
+ :param containers:
6643
+ :param execution_role_arn:
6644
+ :param ipc_mode:
6645
+ :param pid_mode:
6646
+ :param task_role_arn:
6647
+ :param volumes:
6648
+
6649
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html
6650
+ :exampleMetadata: fixture=_generated
6651
+
6652
+ Example::
6653
+
6654
+ # The code below shows an example of how to instantiate this type.
6655
+ # The values are placeholders you should change.
6656
+ from aws_cdk import aws_batch as batch
6657
+
6658
+ # options: Any
6659
+
6660
+ multi_node_ecs_task_properties_property = batch.CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty(
6661
+ containers=[batch.CfnJobDefinition.TaskContainerPropertiesProperty(
6662
+ image="image",
6663
+
6664
+ # the properties below are optional
6665
+ command=["command"],
6666
+ depends_on=[batch.CfnJobDefinition.TaskContainerDependencyProperty(
6667
+ condition="condition",
6668
+ container_name="containerName"
6669
+ )],
6670
+ environment=[batch.CfnJobDefinition.EnvironmentProperty(
6671
+ name="name",
6672
+ value="value"
6673
+ )],
6674
+ essential=False,
6675
+ linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
6676
+ devices=[batch.CfnJobDefinition.DeviceProperty(
6677
+ container_path="containerPath",
6678
+ host_path="hostPath",
6679
+ permissions=["permissions"]
6680
+ )],
6681
+ init_process_enabled=False,
6682
+ max_swap=123,
6683
+ shared_memory_size=123,
6684
+ swappiness=123,
6685
+ tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
6686
+ container_path="containerPath",
6687
+ size=123,
6688
+
6689
+ # the properties below are optional
6690
+ mount_options=["mountOptions"]
6691
+ )]
6692
+ ),
6693
+ log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
6694
+ log_driver="logDriver",
6695
+
6696
+ # the properties below are optional
6697
+ options=options,
6698
+ secret_options=[batch.CfnJobDefinition.SecretProperty(
6699
+ name="name",
6700
+ value_from="valueFrom"
6701
+ )]
6702
+ ),
6703
+ mount_points=[batch.CfnJobDefinition.MountPointProperty(
6704
+ container_path="containerPath",
6705
+ read_only=False,
6706
+ source_volume="sourceVolume"
6707
+ )],
6708
+ name="name",
6709
+ privileged=False,
6710
+ readonly_root_filesystem=False,
6711
+ repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
6712
+ credentials_parameter="credentialsParameter"
6713
+ ),
6714
+ resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
6715
+ type="type",
6716
+ value="value"
6717
+ )],
6718
+ secrets=[batch.CfnJobDefinition.SecretProperty(
6719
+ name="name",
6720
+ value_from="valueFrom"
6721
+ )],
6722
+ ulimits=[batch.CfnJobDefinition.UlimitProperty(
6723
+ hard_limit=123,
6724
+ name="name",
6725
+ soft_limit=123
6726
+ )],
6727
+ user="user"
6728
+ )],
6729
+ execution_role_arn="executionRoleArn",
6730
+ ipc_mode="ipcMode",
6731
+ pid_mode="pidMode",
6732
+ task_role_arn="taskRoleArn",
6733
+ volumes=[batch.CfnJobDefinition.VolumeProperty(
6734
+ efs_volume_configuration=batch.CfnJobDefinition.EFSVolumeConfigurationProperty(
6735
+ file_system_id="fileSystemId",
6736
+
6737
+ # the properties below are optional
6738
+ authorization_config=batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
6739
+ access_point_id="accessPointId",
6740
+ iam="iam"
6741
+ ),
6742
+ root_directory="rootDirectory",
6743
+ transit_encryption="transitEncryption",
6744
+ transit_encryption_port=123
6745
+ ),
6746
+ host=batch.CfnJobDefinition.HostProperty(
6747
+ source_path="sourcePath"
6748
+ ),
6749
+ name="name"
6750
+ )]
6751
+ )
6752
+ '''
6753
+ if __debug__:
6754
+ type_hints = typing.get_type_hints(_typecheckingstub__cb3ca5619c68fc8ff93d966eb183ea114ed6764e99467d7b283af54300b4b5ca)
6755
+ check_type(argname="argument containers", value=containers, expected_type=type_hints["containers"])
6756
+ check_type(argname="argument execution_role_arn", value=execution_role_arn, expected_type=type_hints["execution_role_arn"])
6757
+ check_type(argname="argument ipc_mode", value=ipc_mode, expected_type=type_hints["ipc_mode"])
6758
+ check_type(argname="argument pid_mode", value=pid_mode, expected_type=type_hints["pid_mode"])
6759
+ check_type(argname="argument task_role_arn", value=task_role_arn, expected_type=type_hints["task_role_arn"])
6760
+ check_type(argname="argument volumes", value=volumes, expected_type=type_hints["volumes"])
6761
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
6762
+ if containers is not None:
6763
+ self._values["containers"] = containers
6764
+ if execution_role_arn is not None:
6765
+ self._values["execution_role_arn"] = execution_role_arn
6766
+ if ipc_mode is not None:
6767
+ self._values["ipc_mode"] = ipc_mode
6768
+ if pid_mode is not None:
6769
+ self._values["pid_mode"] = pid_mode
6770
+ if task_role_arn is not None:
6771
+ self._values["task_role_arn"] = task_role_arn
6772
+ if volumes is not None:
6773
+ self._values["volumes"] = volumes
6774
+
6775
+ @builtins.property
6776
+ def containers(
6777
+ self,
6778
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.TaskContainerPropertiesProperty"]]]]:
6779
+ '''
6780
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-containers
6781
+ '''
6782
+ result = self._values.get("containers")
6783
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.TaskContainerPropertiesProperty"]]]], result)
6784
+
6785
+ @builtins.property
6786
+ def execution_role_arn(self) -> typing.Optional[builtins.str]:
6787
+ '''
6788
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-executionrolearn
6789
+ '''
6790
+ result = self._values.get("execution_role_arn")
6791
+ return typing.cast(typing.Optional[builtins.str], result)
6792
+
6793
+ @builtins.property
6794
+ def ipc_mode(self) -> typing.Optional[builtins.str]:
6795
+ '''
6796
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-ipcmode
6797
+ '''
6798
+ result = self._values.get("ipc_mode")
6799
+ return typing.cast(typing.Optional[builtins.str], result)
6800
+
6801
+ @builtins.property
6802
+ def pid_mode(self) -> typing.Optional[builtins.str]:
6803
+ '''
6804
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-pidmode
6805
+ '''
6806
+ result = self._values.get("pid_mode")
6807
+ return typing.cast(typing.Optional[builtins.str], result)
6808
+
6809
+ @builtins.property
6810
+ def task_role_arn(self) -> typing.Optional[builtins.str]:
6811
+ '''
6812
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-taskrolearn
6813
+ '''
6814
+ result = self._values.get("task_role_arn")
6815
+ return typing.cast(typing.Optional[builtins.str], result)
6816
+
6817
+ @builtins.property
6818
+ def volumes(
6819
+ self,
6820
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumeProperty"]]]]:
6821
+ '''
6822
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-volumes
6823
+ '''
6824
+ result = self._values.get("volumes")
6825
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumeProperty"]]]], 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 "MultiNodeEcsTaskPropertiesProperty(%s)" % ", ".join(
6835
+ k + "=" + repr(v) for k, v in self._values.items()
6836
+ )
6837
+
6090
6838
  @jsii.data_type(
6091
6839
  jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.NetworkConfigurationProperty",
6092
6840
  jsii_struct_bases=[],
@@ -6291,8 +7039,8 @@ class CfnJobDefinition(
6291
7039
  name="name"
6292
7040
  )]
6293
7041
  ),
6294
- ecs_properties=batch.CfnJobDefinition.EcsPropertiesProperty(
6295
- task_properties=[batch.CfnJobDefinition.EcsTaskPropertiesProperty(
7042
+ ecs_properties=batch.CfnJobDefinition.MultiNodeEcsPropertiesProperty(
7043
+ task_properties=[batch.CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty(
6296
7044
  containers=[batch.CfnJobDefinition.TaskContainerPropertiesProperty(
6297
7045
  image="image",
6298
7046
 
@@ -6335,7 +7083,7 @@ class CfnJobDefinition(
6335
7083
  value_from="valueFrom"
6336
7084
  )]
6337
7085
  ),
6338
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
7086
+ mount_points=[batch.CfnJobDefinition.MountPointProperty(
6339
7087
  container_path="containerPath",
6340
7088
  read_only=False,
6341
7089
  source_volume="sourceVolume"
@@ -6361,27 +7109,16 @@ class CfnJobDefinition(
6361
7109
  )],
6362
7110
  user="user"
6363
7111
  )],
6364
- ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
6365
- size_in_gi_b=123
6366
- ),
6367
7112
  execution_role_arn="executionRoleArn",
6368
7113
  ipc_mode="ipcMode",
6369
- network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
6370
- assign_public_ip="assignPublicIp"
6371
- ),
6372
7114
  pid_mode="pidMode",
6373
- platform_version="platformVersion",
6374
- runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
6375
- cpu_architecture="cpuArchitecture",
6376
- operating_system_family="operatingSystemFamily"
6377
- ),
6378
7115
  task_role_arn="taskRoleArn",
6379
- volumes=[batch.CfnJobDefinition.VolumesProperty(
6380
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
7116
+ volumes=[batch.CfnJobDefinition.VolumeProperty(
7117
+ efs_volume_configuration=batch.CfnJobDefinition.EFSVolumeConfigurationProperty(
6381
7118
  file_system_id="fileSystemId",
6382
7119
 
6383
7120
  # the properties below are optional
6384
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
7121
+ authorization_config=batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
6385
7122
  access_point_id="accessPointId",
6386
7123
  iam="iam"
6387
7124
  ),
@@ -6389,7 +7126,7 @@ class CfnJobDefinition(
6389
7126
  transit_encryption="transitEncryption",
6390
7127
  transit_encryption_port=123
6391
7128
  ),
6392
- host=batch.CfnJobDefinition.VolumesHostProperty(
7129
+ host=batch.CfnJobDefinition.HostProperty(
6393
7130
  source_path="sourcePath"
6394
7131
  ),
6395
7132
  name="name"
@@ -6570,7 +7307,7 @@ class CfnJobDefinition(
6570
7307
  *,
6571
7308
  target_nodes: builtins.str,
6572
7309
  container: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.ContainerPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6573
- ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EcsPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7310
+ ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.MultiNodeEcsPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6574
7311
  eks_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6575
7312
  instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
6576
7313
  ) -> None:
@@ -6698,8 +7435,8 @@ class CfnJobDefinition(
6698
7435
  name="name"
6699
7436
  )]
6700
7437
  ),
6701
- ecs_properties=batch.CfnJobDefinition.EcsPropertiesProperty(
6702
- task_properties=[batch.CfnJobDefinition.EcsTaskPropertiesProperty(
7438
+ ecs_properties=batch.CfnJobDefinition.MultiNodeEcsPropertiesProperty(
7439
+ task_properties=[batch.CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty(
6703
7440
  containers=[batch.CfnJobDefinition.TaskContainerPropertiesProperty(
6704
7441
  image="image",
6705
7442
 
@@ -6742,7 +7479,7 @@ class CfnJobDefinition(
6742
7479
  value_from="valueFrom"
6743
7480
  )]
6744
7481
  ),
6745
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
7482
+ mount_points=[batch.CfnJobDefinition.MountPointProperty(
6746
7483
  container_path="containerPath",
6747
7484
  read_only=False,
6748
7485
  source_volume="sourceVolume"
@@ -6768,27 +7505,16 @@ class CfnJobDefinition(
6768
7505
  )],
6769
7506
  user="user"
6770
7507
  )],
6771
- ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
6772
- size_in_gi_b=123
6773
- ),
6774
7508
  execution_role_arn="executionRoleArn",
6775
7509
  ipc_mode="ipcMode",
6776
- network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
6777
- assign_public_ip="assignPublicIp"
6778
- ),
6779
7510
  pid_mode="pidMode",
6780
- platform_version="platformVersion",
6781
- runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
6782
- cpu_architecture="cpuArchitecture",
6783
- operating_system_family="operatingSystemFamily"
6784
- ),
6785
7511
  task_role_arn="taskRoleArn",
6786
- volumes=[batch.CfnJobDefinition.VolumesProperty(
6787
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
7512
+ volumes=[batch.CfnJobDefinition.VolumeProperty(
7513
+ efs_volume_configuration=batch.CfnJobDefinition.EFSVolumeConfigurationProperty(
6788
7514
  file_system_id="fileSystemId",
6789
7515
 
6790
7516
  # the properties below are optional
6791
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
7517
+ authorization_config=batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
6792
7518
  access_point_id="accessPointId",
6793
7519
  iam="iam"
6794
7520
  ),
@@ -6796,7 +7522,7 @@ class CfnJobDefinition(
6796
7522
  transit_encryption="transitEncryption",
6797
7523
  transit_encryption_port=123
6798
7524
  ),
6799
- host=batch.CfnJobDefinition.VolumesHostProperty(
7525
+ host=batch.CfnJobDefinition.HostProperty(
6800
7526
  source_path="sourcePath"
6801
7527
  ),
6802
7528
  name="name"
@@ -6947,13 +7673,13 @@ class CfnJobDefinition(
6947
7673
  @builtins.property
6948
7674
  def ecs_properties(
6949
7675
  self,
6950
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsPropertiesProperty"]]:
7676
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MultiNodeEcsPropertiesProperty"]]:
6951
7677
  '''This is an object that represents the properties of the node range for a multi-node parallel job.
6952
7678
 
6953
7679
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-ecsproperties
6954
7680
  '''
6955
7681
  result = self._values.get("ecs_properties")
6956
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsPropertiesProperty"]], result)
7682
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MultiNodeEcsPropertiesProperty"]], result)
6957
7683
 
6958
7684
  @builtins.property
6959
7685
  def eks_properties(
@@ -7021,17 +7747,16 @@ class CfnJobDefinition(
7021
7747
  share_process_namespace: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7022
7748
  volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksVolumeProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
7023
7749
  ) -> None:
7024
- '''The properties for the pod.
7025
-
7026
- :param containers: The properties of the container that's used on the Amazon EKS pod. .. epigraph:: This object is limited to 10 elements.
7027
- :param dns_policy: The DNS policy for the pod. The default value is ``ClusterFirst`` . If the ``hostNetwork`` parameter is not specified, the default is ``ClusterFirstWithHostNet`` . ``ClusterFirst`` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node. For more information, see `Pod's DNS policy <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy>`_ in the *Kubernetes documentation* . Valid values: ``Default`` | ``ClusterFirst`` | ``ClusterFirstWithHostNet``
7028
- :param host_network: Indicates if the pod uses the hosts' network IP address. The default value is ``true`` . Setting this to ``false`` enables the Kubernetes pod networking model. Most AWS Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see `Host namespaces <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces>`_ and `Pod networking <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking>`_ in the *Kubernetes documentation* .
7750
+ '''
7751
+ :param containers:
7752
+ :param dns_policy:
7753
+ :param host_network:
7029
7754
  :param image_pull_secrets:
7030
- :param init_containers: These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see `Init Containers <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/>`_ in the *Kubernetes documentation* . .. epigraph:: This object is limited to 10 elements.
7031
- :param metadata: Metadata about the Kubernetes pod. For more information, see `Understanding Kubernetes Objects <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/>`_ in the *Kubernetes documentation* .
7032
- :param service_account_name: The name of the service account that's used to run the pod. For more information, see `Kubernetes service accounts <https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html>`_ and `Configure a Kubernetes service account to assume an IAM role <https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html>`_ in the *Amazon EKS User Guide* and `Configure service accounts for pods <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/>`_ in the *Kubernetes documentation* .
7033
- :param share_process_namespace: Indicates if the processes in a container are shared, or visible, to other containers in the same pod. For more information, see `Share Process Namespace between Containers in a Pod <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/>`_ .
7034
- :param volumes: Specifies the volumes for a job definition that uses Amazon EKS resources.
7755
+ :param init_containers:
7756
+ :param metadata:
7757
+ :param service_account_name:
7758
+ :param share_process_namespace:
7759
+ :param volumes:
7035
7760
 
7036
7761
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html
7037
7762
  :exampleMetadata: fixture=_generated
@@ -7176,12 +7901,7 @@ class CfnJobDefinition(
7176
7901
  def containers(
7177
7902
  self,
7178
7903
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EksContainerProperty"]]]]:
7179
- '''The properties of the container that's used on the Amazon EKS pod.
7180
-
7181
- .. epigraph::
7182
-
7183
- This object is limited to 10 elements.
7184
-
7904
+ '''
7185
7905
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-containers
7186
7906
  '''
7187
7907
  result = self._values.get("containers")
@@ -7189,12 +7909,7 @@ class CfnJobDefinition(
7189
7909
 
7190
7910
  @builtins.property
7191
7911
  def dns_policy(self) -> typing.Optional[builtins.str]:
7192
- '''The DNS policy for the pod.
7193
-
7194
- The default value is ``ClusterFirst`` . If the ``hostNetwork`` parameter is not specified, the default is ``ClusterFirstWithHostNet`` . ``ClusterFirst`` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node. For more information, see `Pod's DNS policy <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy>`_ in the *Kubernetes documentation* .
7195
-
7196
- Valid values: ``Default`` | ``ClusterFirst`` | ``ClusterFirstWithHostNet``
7197
-
7912
+ '''
7198
7913
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-dnspolicy
7199
7914
  '''
7200
7915
  result = self._values.get("dns_policy")
@@ -7204,10 +7919,7 @@ class CfnJobDefinition(
7204
7919
  def host_network(
7205
7920
  self,
7206
7921
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
7207
- '''Indicates if the pod uses the hosts' network IP address.
7208
-
7209
- The default value is ``true`` . Setting this to ``false`` enables the Kubernetes pod networking model. Most AWS Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see `Host namespaces <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces>`_ and `Pod networking <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking>`_ in the *Kubernetes documentation* .
7210
-
7922
+ '''
7211
7923
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-hostnetwork
7212
7924
  '''
7213
7925
  result = self._values.get("host_network")
@@ -7227,13 +7939,7 @@ class CfnJobDefinition(
7227
7939
  def init_containers(
7228
7940
  self,
7229
7941
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EksContainerProperty"]]]]:
7230
- '''These containers run before application containers, always runs to completion, and must complete successfully before the next container starts.
7231
-
7232
- These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see `Init Containers <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/>`_ in the *Kubernetes documentation* .
7233
- .. epigraph::
7234
-
7235
- This object is limited to 10 elements.
7236
-
7942
+ '''
7237
7943
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-initcontainers
7238
7944
  '''
7239
7945
  result = self._values.get("init_containers")
@@ -7243,10 +7949,7 @@ class CfnJobDefinition(
7243
7949
  def metadata(
7244
7950
  self,
7245
7951
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MetadataProperty"]]:
7246
- '''Metadata about the Kubernetes pod.
7247
-
7248
- For more information, see `Understanding Kubernetes Objects <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/>`_ in the *Kubernetes documentation* .
7249
-
7952
+ '''
7250
7953
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-metadata
7251
7954
  '''
7252
7955
  result = self._values.get("metadata")
@@ -7254,10 +7957,7 @@ class CfnJobDefinition(
7254
7957
 
7255
7958
  @builtins.property
7256
7959
  def service_account_name(self) -> typing.Optional[builtins.str]:
7257
- '''The name of the service account that's used to run the pod.
7258
-
7259
- For more information, see `Kubernetes service accounts <https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html>`_ and `Configure a Kubernetes service account to assume an IAM role <https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html>`_ in the *Amazon EKS User Guide* and `Configure service accounts for pods <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/>`_ in the *Kubernetes documentation* .
7260
-
7960
+ '''
7261
7961
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-serviceaccountname
7262
7962
  '''
7263
7963
  result = self._values.get("service_account_name")
@@ -7267,10 +7967,7 @@ class CfnJobDefinition(
7267
7967
  def share_process_namespace(
7268
7968
  self,
7269
7969
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
7270
- '''Indicates if the processes in a container are shared, or visible, to other containers in the same pod.
7271
-
7272
- For more information, see `Share Process Namespace between Containers in a Pod <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/>`_ .
7273
-
7970
+ '''
7274
7971
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-shareprocessnamespace
7275
7972
  '''
7276
7973
  result = self._values.get("share_process_namespace")
@@ -7280,8 +7977,7 @@ class CfnJobDefinition(
7280
7977
  def volumes(
7281
7978
  self,
7282
7979
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EksVolumeProperty"]]]]:
7283
- '''Specifies the volumes for a job definition that uses Amazon EKS resources.
7284
-
7980
+ '''
7285
7981
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-volumes
7286
7982
  '''
7287
7983
  result = self._values.get("volumes")
@@ -8027,7 +8723,7 @@ class CfnJobDefinition(
8027
8723
  essential: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
8028
8724
  linux_parameters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.LinuxParametersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8029
8725
  log_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.LogConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8030
- mount_points: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.MountPointsProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
8726
+ mount_points: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.MountPointProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
8031
8727
  name: typing.Optional[builtins.str] = None,
8032
8728
  privileged: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
8033
8729
  readonly_root_filesystem: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
@@ -8111,7 +8807,7 @@ class CfnJobDefinition(
8111
8807
  value_from="valueFrom"
8112
8808
  )]
8113
8809
  ),
8114
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
8810
+ mount_points=[batch.CfnJobDefinition.MountPointProperty(
8115
8811
  container_path="containerPath",
8116
8812
  read_only=False,
8117
8813
  source_volume="sourceVolume"
@@ -8294,7 +8990,7 @@ class CfnJobDefinition(
8294
8990
  @builtins.property
8295
8991
  def mount_points(
8296
8992
  self,
8297
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MountPointsProperty"]]]]:
8993
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MountPointProperty"]]]]:
8298
8994
  '''The mount points for data volumes in your container.
8299
8995
 
8300
8996
  This parameter maps to ``Volumes`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the `--volume <https://docs.aws.amazon.com/>`_ option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ .
@@ -8304,7 +9000,7 @@ class CfnJobDefinition(
8304
9000
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-mountpoints
8305
9001
  '''
8306
9002
  result = self._values.get("mount_points")
8307
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MountPointsProperty"]]]], result)
9003
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MountPointProperty"]]]], result)
8308
9004
 
8309
9005
  @builtins.property
8310
9006
  def name(self) -> typing.Optional[builtins.str]:
@@ -8455,9 +9151,8 @@ class CfnJobDefinition(
8455
9151
  *,
8456
9152
  attempt_duration_seconds: typing.Optional[jsii.Number] = None,
8457
9153
  ) -> None:
8458
- '''An object that represents a job timeout configuration.
8459
-
8460
- :param attempt_duration_seconds: The job timeout time (in seconds) that's measured from the job attempt's ``startedAt`` timestamp. After this time passes, AWS Batch terminates your jobs if they aren't finished. The minimum value for the timeout is 60 seconds. For array jobs, the timeout applies to the child jobs, not to the parent array job. For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the individual nodes.
9154
+ '''
9155
+ :param attempt_duration_seconds:
8461
9156
 
8462
9157
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html
8463
9158
  :exampleMetadata: fixture=_generated
@@ -8481,14 +9176,7 @@ class CfnJobDefinition(
8481
9176
 
8482
9177
  @builtins.property
8483
9178
  def attempt_duration_seconds(self) -> typing.Optional[jsii.Number]:
8484
- '''The job timeout time (in seconds) that's measured from the job attempt's ``startedAt`` timestamp.
8485
-
8486
- After this time passes, AWS Batch terminates your jobs if they aren't finished. The minimum value for the timeout is 60 seconds.
8487
-
8488
- For array jobs, the timeout applies to the child jobs, not to the parent array job.
8489
-
8490
- For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the individual nodes.
8491
-
9179
+ '''
8492
9180
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html#cfn-batch-jobdefinition-timeout-attemptdurationseconds
8493
9181
  '''
8494
9182
  result = self._values.get("attempt_duration_seconds")
@@ -8699,6 +9387,121 @@ class CfnJobDefinition(
8699
9387
  k + "=" + repr(v) for k, v in self._values.items()
8700
9388
  )
8701
9389
 
9390
+ @jsii.data_type(
9391
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.VolumeProperty",
9392
+ jsii_struct_bases=[],
9393
+ name_mapping={
9394
+ "efs_volume_configuration": "efsVolumeConfiguration",
9395
+ "host": "host",
9396
+ "name": "name",
9397
+ },
9398
+ )
9399
+ class VolumeProperty:
9400
+ def __init__(
9401
+ self,
9402
+ *,
9403
+ efs_volume_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EFSVolumeConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9404
+ host: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.HostProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9405
+ name: typing.Optional[builtins.str] = None,
9406
+ ) -> None:
9407
+ '''A data volume that's used in a job's container properties.
9408
+
9409
+ :param efs_volume_configuration: This parameter is specified when you're using an Amazon Elastic File System file system for job storage. Jobs that are running on Fargate resources must specify a ``platformVersion`` of at least ``1.4.0`` .
9410
+ :param host: The contents of the ``host`` parameter determine whether your data volume persists on the host container instance and where it's stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.
9411
+ :param name: The name of the volume. It can be up to 255 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This name is referenced in the ``sourceVolume`` parameter of container definition ``mountPoints`` .
9412
+
9413
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volume.html
9414
+ :exampleMetadata: fixture=_generated
9415
+
9416
+ Example::
9417
+
9418
+ # The code below shows an example of how to instantiate this type.
9419
+ # The values are placeholders you should change.
9420
+ from aws_cdk import aws_batch as batch
9421
+
9422
+ volume_property = batch.CfnJobDefinition.VolumeProperty(
9423
+ efs_volume_configuration=batch.CfnJobDefinition.EFSVolumeConfigurationProperty(
9424
+ file_system_id="fileSystemId",
9425
+
9426
+ # the properties below are optional
9427
+ authorization_config=batch.CfnJobDefinition.EFSAuthorizationConfigProperty(
9428
+ access_point_id="accessPointId",
9429
+ iam="iam"
9430
+ ),
9431
+ root_directory="rootDirectory",
9432
+ transit_encryption="transitEncryption",
9433
+ transit_encryption_port=123
9434
+ ),
9435
+ host=batch.CfnJobDefinition.HostProperty(
9436
+ source_path="sourcePath"
9437
+ ),
9438
+ name="name"
9439
+ )
9440
+ '''
9441
+ if __debug__:
9442
+ type_hints = typing.get_type_hints(_typecheckingstub__cd8db902f4f3cc01d37fedaa866b49a8d1fe354a281572098972e744ed95af28)
9443
+ check_type(argname="argument efs_volume_configuration", value=efs_volume_configuration, expected_type=type_hints["efs_volume_configuration"])
9444
+ check_type(argname="argument host", value=host, expected_type=type_hints["host"])
9445
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
9446
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
9447
+ if efs_volume_configuration is not None:
9448
+ self._values["efs_volume_configuration"] = efs_volume_configuration
9449
+ if host is not None:
9450
+ self._values["host"] = host
9451
+ if name is not None:
9452
+ self._values["name"] = name
9453
+
9454
+ @builtins.property
9455
+ def efs_volume_configuration(
9456
+ self,
9457
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EFSVolumeConfigurationProperty"]]:
9458
+ '''This parameter is specified when you're using an Amazon Elastic File System file system for job storage.
9459
+
9460
+ Jobs that are running on Fargate resources must specify a ``platformVersion`` of at least ``1.4.0`` .
9461
+
9462
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volume.html#cfn-batch-jobdefinition-volume-efsvolumeconfiguration
9463
+ '''
9464
+ result = self._values.get("efs_volume_configuration")
9465
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EFSVolumeConfigurationProperty"]], result)
9466
+
9467
+ @builtins.property
9468
+ def host(
9469
+ self,
9470
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.HostProperty"]]:
9471
+ '''The contents of the ``host`` parameter determine whether your data volume persists on the host container instance and where it's stored.
9472
+
9473
+ If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.
9474
+ .. epigraph::
9475
+
9476
+ This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.
9477
+
9478
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volume.html#cfn-batch-jobdefinition-volume-host
9479
+ '''
9480
+ result = self._values.get("host")
9481
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.HostProperty"]], result)
9482
+
9483
+ @builtins.property
9484
+ def name(self) -> typing.Optional[builtins.str]:
9485
+ '''The name of the volume.
9486
+
9487
+ It can be up to 255 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This name is referenced in the ``sourceVolume`` parameter of container definition ``mountPoints`` .
9488
+
9489
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volume.html#cfn-batch-jobdefinition-volume-name
9490
+ '''
9491
+ result = self._values.get("name")
9492
+ return typing.cast(typing.Optional[builtins.str], result)
9493
+
9494
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9495
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9496
+
9497
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9498
+ return not (rhs == self)
9499
+
9500
+ def __repr__(self) -> str:
9501
+ return "VolumeProperty(%s)" % ", ".join(
9502
+ k + "=" + repr(v) for k, v in self._values.items()
9503
+ )
9504
+
8702
9505
  @jsii.data_type(
8703
9506
  jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.VolumesHostProperty",
8704
9507
  jsii_struct_bases=[],
@@ -8710,11 +9513,8 @@ class CfnJobDefinition(
8710
9513
  *,
8711
9514
  source_path: typing.Optional[builtins.str] = None,
8712
9515
  ) -> None:
8713
- '''Determine whether your data volume persists on the host container instance and where it's stored.
8714
-
8715
- If this parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.
8716
-
8717
- :param source_path: The path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the source path location doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported. .. epigraph:: This parameter isn't applicable to jobs that run on Fargate resources. Don't provide this for these jobs.
9516
+ '''
9517
+ :param source_path:
8718
9518
 
8719
9519
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html
8720
9520
  :exampleMetadata: fixture=_generated
@@ -8738,13 +9538,7 @@ class CfnJobDefinition(
8738
9538
 
8739
9539
  @builtins.property
8740
9540
  def source_path(self) -> typing.Optional[builtins.str]:
8741
- '''The path on the host container instance that's presented to the container.
8742
-
8743
- If this parameter is empty, then the Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the source path location doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.
8744
- .. epigraph::
8745
-
8746
- This parameter isn't applicable to jobs that run on Fargate resources. Don't provide this for these jobs.
8747
-
9541
+ '''
8748
9542
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html#cfn-batch-jobdefinition-volumeshost-sourcepath
8749
9543
  '''
8750
9544
  result = self._values.get("source_path")
@@ -8778,11 +9572,10 @@ class CfnJobDefinition(
8778
9572
  host: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.VolumesHostProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8779
9573
  name: typing.Optional[builtins.str] = None,
8780
9574
  ) -> None:
8781
- '''A list of volumes that are associated with the job.
8782
-
8783
- :param efs_volume_configuration: This is used when you're using an Amazon Elastic File System file system for job storage. For more information, see `Amazon EFS Volumes <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html>`_ in the *AWS Batch User Guide* .
8784
- :param host: The contents of the ``host`` parameter determine whether your data volume persists on the host container instance and where it's stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.
8785
- :param name: The name of the volume. It can be up to 255 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This name is referenced in the ``sourceVolume`` parameter of container definition ``mountPoints`` .
9575
+ '''
9576
+ :param efs_volume_configuration:
9577
+ :param host:
9578
+ :param name:
8786
9579
 
8787
9580
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html
8788
9581
  :exampleMetadata: fixture=_generated
@@ -8829,10 +9622,7 @@ class CfnJobDefinition(
8829
9622
  def efs_volume_configuration(
8830
9623
  self,
8831
9624
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EfsVolumeConfigurationProperty"]]:
8832
- '''This is used when you're using an Amazon Elastic File System file system for job storage.
8833
-
8834
- For more information, see `Amazon EFS Volumes <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html>`_ in the *AWS Batch User Guide* .
8835
-
9625
+ '''
8836
9626
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-efsvolumeconfiguration
8837
9627
  '''
8838
9628
  result = self._values.get("efs_volume_configuration")
@@ -8842,13 +9632,7 @@ class CfnJobDefinition(
8842
9632
  def host(
8843
9633
  self,
8844
9634
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesHostProperty"]]:
8845
- '''The contents of the ``host`` parameter determine whether your data volume persists on the host container instance and where it's stored.
8846
-
8847
- If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.
8848
- .. epigraph::
8849
-
8850
- This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.
8851
-
9635
+ '''
8852
9636
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-host
8853
9637
  '''
8854
9638
  result = self._values.get("host")
@@ -8856,10 +9640,7 @@ class CfnJobDefinition(
8856
9640
 
8857
9641
  @builtins.property
8858
9642
  def name(self) -> typing.Optional[builtins.str]:
8859
- '''The name of the volume.
8860
-
8861
- It can be up to 255 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This name is referenced in the ``sourceVolume`` parameter of container definition ``mountPoints`` .
8862
-
9643
+ '''
8863
9644
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-name
8864
9645
  '''
8865
9646
  result = self._values.get("name")
@@ -23815,6 +24596,25 @@ def _typecheckingstub__adbf78805f7f3d50af2c331ead7e1f53e092ea7a76782151236bad4f3
23815
24596
  """Type checking stubs"""
23816
24597
  pass
23817
24598
 
24599
+ def _typecheckingstub__6e96fe4d6e78af8198838e1f3e7014c5fd996324833b97cdff758044ba792c6a(
24600
+ *,
24601
+ access_point_id: typing.Optional[builtins.str] = None,
24602
+ iam: typing.Optional[builtins.str] = None,
24603
+ ) -> None:
24604
+ """Type checking stubs"""
24605
+ pass
24606
+
24607
+ def _typecheckingstub__013a9cd8939e91b624e957abcdc2e30af9676f2dfd7131d966f2e13f5af8e8ee(
24608
+ *,
24609
+ file_system_id: builtins.str,
24610
+ authorization_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EFSAuthorizationConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24611
+ root_directory: typing.Optional[builtins.str] = None,
24612
+ transit_encryption: typing.Optional[builtins.str] = None,
24613
+ transit_encryption_port: typing.Optional[jsii.Number] = None,
24614
+ ) -> None:
24615
+ """Type checking stubs"""
24616
+ pass
24617
+
23818
24618
  def _typecheckingstub__6153a950309796a66c44ef3a234e02ed7ff91444107709427ae345e4f0e64828(
23819
24619
  *,
23820
24620
  task_properties: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EcsTaskPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]]],
@@ -23833,7 +24633,7 @@ def _typecheckingstub__8e8c39be2b840a158045732ea20d964bf03d380304bbcd66936cb862e
23833
24633
  platform_version: typing.Optional[builtins.str] = None,
23834
24634
  runtime_platform: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.RuntimePlatformProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23835
24635
  task_role_arn: typing.Optional[builtins.str] = None,
23836
- volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.VolumesProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
24636
+ volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.VolumeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
23837
24637
  ) -> None:
23838
24638
  """Type checking stubs"""
23839
24639
  pass
@@ -23953,9 +24753,23 @@ def _typecheckingstub__2bf55e035d36507c507c0ff620eda0a3096496a2cd5226656fc5e4af4
23953
24753
  """Type checking stubs"""
23954
24754
  pass
23955
24755
 
24756
+ def _typecheckingstub__b32380c7fcfaea291ccd7d96f2eeed7d7bdebff21f3f1a30bf5467315c2c381d(
24757
+ *,
24758
+ source_path: typing.Optional[builtins.str] = None,
24759
+ ) -> None:
24760
+ """Type checking stubs"""
24761
+ pass
24762
+
23956
24763
  def _typecheckingstub__510e7e45fa5176303c62970a1bb0161e95eb0fcd2438671b35f8c5a3c506b95a(
23957
24764
  *,
23958
- name: builtins.str,
24765
+ name: typing.Optional[builtins.str] = None,
24766
+ ) -> None:
24767
+ """Type checking stubs"""
24768
+ pass
24769
+
24770
+ def _typecheckingstub__a3f2b0ca2e9dc87bf15f08f72a000b1f1878e671abdfdb32aae1a6f479b101bf(
24771
+ *,
24772
+ attempt_duration_seconds: typing.Optional[jsii.Number] = None,
23959
24773
  ) -> None:
23960
24774
  """Type checking stubs"""
23961
24775
  pass
@@ -23988,6 +24802,15 @@ def _typecheckingstub__2a991ab55d6c85b732418b9a39402702cdf7043f946aaf69c13b36a4c
23988
24802
  """Type checking stubs"""
23989
24803
  pass
23990
24804
 
24805
+ def _typecheckingstub__0890bfa00c320f24aeaf31204369e159ba55507af9af6503cd040b7b5051df11(
24806
+ *,
24807
+ container_path: typing.Optional[builtins.str] = None,
24808
+ read_only: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
24809
+ source_volume: typing.Optional[builtins.str] = None,
24810
+ ) -> None:
24811
+ """Type checking stubs"""
24812
+ pass
24813
+
23991
24814
  def _typecheckingstub__47aa253c2fbb1ab8f90425d412e691e807d1454f21b10bb59eee6c2b63cf29b5(
23992
24815
  *,
23993
24816
  container_path: typing.Optional[builtins.str] = None,
@@ -23997,6 +24820,25 @@ def _typecheckingstub__47aa253c2fbb1ab8f90425d412e691e807d1454f21b10bb59eee6c2b6
23997
24820
  """Type checking stubs"""
23998
24821
  pass
23999
24822
 
24823
+ def _typecheckingstub__9a2309f896452e04abc96277b3c04ead84cbae39e501242083e44da7eb775567(
24824
+ *,
24825
+ task_properties: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.MultiNodeEcsTaskPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]]],
24826
+ ) -> None:
24827
+ """Type checking stubs"""
24828
+ pass
24829
+
24830
+ def _typecheckingstub__cb3ca5619c68fc8ff93d966eb183ea114ed6764e99467d7b283af54300b4b5ca(
24831
+ *,
24832
+ containers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.TaskContainerPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
24833
+ execution_role_arn: typing.Optional[builtins.str] = None,
24834
+ ipc_mode: typing.Optional[builtins.str] = None,
24835
+ pid_mode: typing.Optional[builtins.str] = None,
24836
+ task_role_arn: typing.Optional[builtins.str] = None,
24837
+ volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.VolumeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
24838
+ ) -> None:
24839
+ """Type checking stubs"""
24840
+ pass
24841
+
24000
24842
  def _typecheckingstub__681e5c00b804be1ae6d3076ea32a17483eee30db6c96e73768c520d652064300(
24001
24843
  *,
24002
24844
  assign_public_ip: typing.Optional[builtins.str] = None,
@@ -24017,7 +24859,7 @@ def _typecheckingstub__005c21025a81827c3f5ed456b171eb7ffdf652583c7da0ff6ff671864
24017
24859
  *,
24018
24860
  target_nodes: builtins.str,
24019
24861
  container: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ContainerPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24020
- ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EcsPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24862
+ ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.MultiNodeEcsPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24021
24863
  eks_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EksPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24022
24864
  instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
24023
24865
  ) -> None:
@@ -24115,7 +24957,7 @@ def _typecheckingstub__4946f5f042ef067bff74424b1b71c92ab13e52a7f47a4271e02811052
24115
24957
  essential: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
24116
24958
  linux_parameters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.LinuxParametersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24117
24959
  log_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.LogConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24118
- mount_points: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.MountPointsProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
24960
+ mount_points: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.MountPointProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
24119
24961
  name: typing.Optional[builtins.str] = None,
24120
24962
  privileged: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
24121
24963
  readonly_root_filesystem: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
@@ -24153,6 +24995,15 @@ def _typecheckingstub__9422053e6f2d5b223ad6edca9c1d424075ea7f34d3f55f01ed34ea8f4
24153
24995
  """Type checking stubs"""
24154
24996
  pass
24155
24997
 
24998
+ def _typecheckingstub__cd8db902f4f3cc01d37fedaa866b49a8d1fe354a281572098972e744ed95af28(
24999
+ *,
25000
+ efs_volume_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EFSVolumeConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
25001
+ host: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.HostProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
25002
+ name: typing.Optional[builtins.str] = None,
25003
+ ) -> None:
25004
+ """Type checking stubs"""
25005
+ pass
25006
+
24156
25007
  def _typecheckingstub__1af85cd0eadb4e77501a8751a1c3fc18ec19311f49db5d0f921588460010456a(
24157
25008
  *,
24158
25009
  source_path: typing.Optional[builtins.str] = None,