aws-cdk-lib 2.132.1__py3-none-any.whl → 2.134.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 (69) hide show
  1. aws_cdk/__init__.py +9 -1
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.132.1.jsii.tgz → aws-cdk-lib@2.134.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amplify/__init__.py +12 -10
  5. aws_cdk/aws_apigatewayv2/__init__.py +112 -6
  6. aws_cdk/aws_apigatewayv2_integrations/__init__.py +155 -3
  7. aws_cdk/aws_appconfig/__init__.py +186 -8
  8. aws_cdk/aws_appintegrations/__init__.py +551 -0
  9. aws_cdk/aws_applicationautoscaling/__init__.py +6 -6
  10. aws_cdk/aws_appsync/__init__.py +71 -0
  11. aws_cdk/aws_autoscaling/__init__.py +10 -14
  12. aws_cdk/aws_b2bi/__init__.py +2 -42
  13. aws_cdk/aws_backup/__init__.py +23 -12
  14. aws_cdk/aws_batch/__init__.py +2150 -1078
  15. aws_cdk/aws_bedrock/__init__.py +197 -2
  16. aws_cdk/aws_cloudformation/__init__.py +1 -1
  17. aws_cdk/aws_cloudfront/__init__.py +4 -4
  18. aws_cdk/aws_cloudtrail/__init__.py +44 -14
  19. aws_cdk/aws_cloudwatch/__init__.py +20 -4
  20. aws_cdk/aws_codeartifact/__init__.py +812 -2
  21. aws_cdk/aws_codebuild/__init__.py +32 -10
  22. aws_cdk/aws_codepipeline/__init__.py +33 -11
  23. aws_cdk/aws_cognito/__init__.py +49 -44
  24. aws_cdk/aws_connect/__init__.py +256 -0
  25. aws_cdk/aws_controltower/__init__.py +4 -4
  26. aws_cdk/aws_datasync/__init__.py +393 -13
  27. aws_cdk/aws_dlm/__init__.py +2 -2
  28. aws_cdk/aws_docdbelastic/__init__.py +117 -0
  29. aws_cdk/aws_dynamodb/__init__.py +416 -5
  30. aws_cdk/aws_ec2/__init__.py +590 -134
  31. aws_cdk/aws_ecs/__init__.py +29 -20
  32. aws_cdk/aws_ecs_patterns/__init__.py +52 -12
  33. aws_cdk/aws_eks/__init__.py +27 -25
  34. aws_cdk/aws_elasticloadbalancing/__init__.py +6 -9
  35. aws_cdk/aws_elasticloadbalancingv2/__init__.py +363 -62
  36. aws_cdk/aws_emr/__init__.py +7 -4
  37. aws_cdk/aws_entityresolution/__init__.py +91 -64
  38. aws_cdk/aws_fsx/__init__.py +7 -7
  39. aws_cdk/aws_glue/__init__.py +137 -3
  40. aws_cdk/aws_iam/__init__.py +9 -10
  41. aws_cdk/aws_internetmonitor/__init__.py +85 -0
  42. aws_cdk/aws_iotsitewise/__init__.py +208 -198
  43. aws_cdk/aws_iotwireless/__init__.py +6 -5
  44. aws_cdk/aws_kafkaconnect/__init__.py +1237 -162
  45. aws_cdk/aws_kendra/__init__.py +34 -24
  46. aws_cdk/aws_kinesisanalytics/__init__.py +37 -37
  47. aws_cdk/aws_kinesisanalyticsv2/__init__.py +37 -37
  48. aws_cdk/aws_kinesisfirehose/__init__.py +6 -2
  49. aws_cdk/aws_lambda/__init__.py +16 -16
  50. aws_cdk/aws_msk/__init__.py +88 -0
  51. aws_cdk/aws_opensearchservice/__init__.py +61 -18
  52. aws_cdk/aws_pinpoint/__init__.py +42 -0
  53. aws_cdk/aws_rds/__init__.py +1292 -216
  54. aws_cdk/aws_redshift/__init__.py +6 -3
  55. aws_cdk/aws_redshiftserverless/__init__.py +0 -157
  56. aws_cdk/aws_sagemaker/__init__.py +29 -9
  57. aws_cdk/aws_shield/__init__.py +7 -8
  58. aws_cdk/aws_ssm/__init__.py +15 -12
  59. aws_cdk/aws_stepfunctions_tasks/__init__.py +476 -0
  60. aws_cdk/aws_synthetics/__init__.py +74 -14
  61. aws_cdk/aws_transfer/__init__.py +4 -3
  62. aws_cdk/aws_wafv2/__init__.py +516 -42
  63. aws_cdk/cx_api/__init__.py +34 -0
  64. {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/METADATA +2 -2
  65. {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/RECORD +69 -69
  66. {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/LICENSE +0 -0
  67. {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/NOTICE +0 -0
  68. {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/WHEEL +0 -0
  69. {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/top_level.txt +0 -0
@@ -2375,306 +2375,7 @@ class CfnJobDefinition(
2375
2375
 
2376
2376
  Example::
2377
2377
 
2378
- # The code below shows an example of how to instantiate this type.
2379
- # The values are placeholders you should change.
2380
- from aws_cdk import aws_batch as batch
2381
-
2382
- # labels: Any
2383
- # limits: Any
2384
- # options: Any
2385
- # parameters: Any
2386
- # requests: Any
2387
- # tags: Any
2388
-
2389
- cfn_job_definition = batch.CfnJobDefinition(self, "MyCfnJobDefinition",
2390
- type="type",
2391
-
2392
- # the properties below are optional
2393
- container_properties=batch.CfnJobDefinition.ContainerPropertiesProperty(
2394
- image="image",
2395
-
2396
- # the properties below are optional
2397
- command=["command"],
2398
- environment=[batch.CfnJobDefinition.EnvironmentProperty(
2399
- name="name",
2400
- value="value"
2401
- )],
2402
- ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
2403
- size_in_gi_b=123
2404
- ),
2405
- execution_role_arn="executionRoleArn",
2406
- fargate_platform_configuration=batch.CfnJobDefinition.FargatePlatformConfigurationProperty(
2407
- platform_version="platformVersion"
2408
- ),
2409
- instance_type="instanceType",
2410
- job_role_arn="jobRoleArn",
2411
- linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
2412
- devices=[batch.CfnJobDefinition.DeviceProperty(
2413
- container_path="containerPath",
2414
- host_path="hostPath",
2415
- permissions=["permissions"]
2416
- )],
2417
- init_process_enabled=False,
2418
- max_swap=123,
2419
- shared_memory_size=123,
2420
- swappiness=123,
2421
- tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
2422
- container_path="containerPath",
2423
- size=123,
2424
-
2425
- # the properties below are optional
2426
- mount_options=["mountOptions"]
2427
- )]
2428
- ),
2429
- log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
2430
- log_driver="logDriver",
2431
-
2432
- # the properties below are optional
2433
- options=options,
2434
- secret_options=[batch.CfnJobDefinition.SecretProperty(
2435
- name="name",
2436
- value_from="valueFrom"
2437
- )]
2438
- ),
2439
- memory=123,
2440
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
2441
- container_path="containerPath",
2442
- read_only=False,
2443
- source_volume="sourceVolume"
2444
- )],
2445
- network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
2446
- assign_public_ip="assignPublicIp"
2447
- ),
2448
- privileged=False,
2449
- readonly_root_filesystem=False,
2450
- repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
2451
- credentials_parameter="credentialsParameter"
2452
- ),
2453
- resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
2454
- type="type",
2455
- value="value"
2456
- )],
2457
- runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
2458
- cpu_architecture="cpuArchitecture",
2459
- operating_system_family="operatingSystemFamily"
2460
- ),
2461
- secrets=[batch.CfnJobDefinition.SecretProperty(
2462
- name="name",
2463
- value_from="valueFrom"
2464
- )],
2465
- ulimits=[batch.CfnJobDefinition.UlimitProperty(
2466
- hard_limit=123,
2467
- name="name",
2468
- soft_limit=123
2469
- )],
2470
- user="user",
2471
- vcpus=123,
2472
- volumes=[batch.CfnJobDefinition.VolumesProperty(
2473
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
2474
- file_system_id="fileSystemId",
2475
-
2476
- # the properties below are optional
2477
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
2478
- access_point_id="accessPointId",
2479
- iam="iam"
2480
- ),
2481
- root_directory="rootDirectory",
2482
- transit_encryption="transitEncryption",
2483
- transit_encryption_port=123
2484
- ),
2485
- host=batch.CfnJobDefinition.VolumesHostProperty(
2486
- source_path="sourcePath"
2487
- ),
2488
- name="name"
2489
- )]
2490
- ),
2491
- eks_properties=batch.CfnJobDefinition.EksPropertiesProperty(
2492
- pod_properties=batch.CfnJobDefinition.PodPropertiesProperty(
2493
- containers=[batch.CfnJobDefinition.EksContainerProperty(
2494
- image="image",
2495
-
2496
- # the properties below are optional
2497
- args=["args"],
2498
- command=["command"],
2499
- env=[batch.CfnJobDefinition.EksContainerEnvironmentVariableProperty(
2500
- name="name",
2501
-
2502
- # the properties below are optional
2503
- value="value"
2504
- )],
2505
- image_pull_policy="imagePullPolicy",
2506
- name="name",
2507
- resources=batch.CfnJobDefinition.ResourcesProperty(
2508
- limits=limits,
2509
- requests=requests
2510
- ),
2511
- security_context=batch.CfnJobDefinition.SecurityContextProperty(
2512
- privileged=False,
2513
- read_only_root_filesystem=False,
2514
- run_as_group=123,
2515
- run_as_non_root=False,
2516
- run_as_user=123
2517
- ),
2518
- volume_mounts=[batch.CfnJobDefinition.EksContainerVolumeMountProperty(
2519
- mount_path="mountPath",
2520
- name="name",
2521
- read_only=False
2522
- )]
2523
- )],
2524
- dns_policy="dnsPolicy",
2525
- host_network=False,
2526
- metadata=batch.CfnJobDefinition.MetadataProperty(
2527
- labels=labels
2528
- ),
2529
- service_account_name="serviceAccountName",
2530
- volumes=[batch.CfnJobDefinition.EksVolumeProperty(
2531
- name="name",
2532
-
2533
- # the properties below are optional
2534
- empty_dir=batch.CfnJobDefinition.EmptyDirProperty(
2535
- medium="medium",
2536
- size_limit="sizeLimit"
2537
- ),
2538
- host_path=batch.CfnJobDefinition.HostPathProperty(
2539
- path="path"
2540
- ),
2541
- secret=batch.CfnJobDefinition.EksSecretProperty(
2542
- secret_name="secretName",
2543
-
2544
- # the properties below are optional
2545
- optional=False
2546
- )
2547
- )]
2548
- )
2549
- ),
2550
- job_definition_name="jobDefinitionName",
2551
- node_properties=batch.CfnJobDefinition.NodePropertiesProperty(
2552
- main_node=123,
2553
- node_range_properties=[batch.CfnJobDefinition.NodeRangePropertyProperty(
2554
- target_nodes="targetNodes",
2555
-
2556
- # the properties below are optional
2557
- container=batch.CfnJobDefinition.ContainerPropertiesProperty(
2558
- image="image",
2559
-
2560
- # the properties below are optional
2561
- command=["command"],
2562
- environment=[batch.CfnJobDefinition.EnvironmentProperty(
2563
- name="name",
2564
- value="value"
2565
- )],
2566
- ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
2567
- size_in_gi_b=123
2568
- ),
2569
- execution_role_arn="executionRoleArn",
2570
- fargate_platform_configuration=batch.CfnJobDefinition.FargatePlatformConfigurationProperty(
2571
- platform_version="platformVersion"
2572
- ),
2573
- instance_type="instanceType",
2574
- job_role_arn="jobRoleArn",
2575
- linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
2576
- devices=[batch.CfnJobDefinition.DeviceProperty(
2577
- container_path="containerPath",
2578
- host_path="hostPath",
2579
- permissions=["permissions"]
2580
- )],
2581
- init_process_enabled=False,
2582
- max_swap=123,
2583
- shared_memory_size=123,
2584
- swappiness=123,
2585
- tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
2586
- container_path="containerPath",
2587
- size=123,
2588
-
2589
- # the properties below are optional
2590
- mount_options=["mountOptions"]
2591
- )]
2592
- ),
2593
- log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
2594
- log_driver="logDriver",
2595
-
2596
- # the properties below are optional
2597
- options=options,
2598
- secret_options=[batch.CfnJobDefinition.SecretProperty(
2599
- name="name",
2600
- value_from="valueFrom"
2601
- )]
2602
- ),
2603
- memory=123,
2604
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
2605
- container_path="containerPath",
2606
- read_only=False,
2607
- source_volume="sourceVolume"
2608
- )],
2609
- network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
2610
- assign_public_ip="assignPublicIp"
2611
- ),
2612
- privileged=False,
2613
- readonly_root_filesystem=False,
2614
- repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
2615
- credentials_parameter="credentialsParameter"
2616
- ),
2617
- resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
2618
- type="type",
2619
- value="value"
2620
- )],
2621
- runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
2622
- cpu_architecture="cpuArchitecture",
2623
- operating_system_family="operatingSystemFamily"
2624
- ),
2625
- secrets=[batch.CfnJobDefinition.SecretProperty(
2626
- name="name",
2627
- value_from="valueFrom"
2628
- )],
2629
- ulimits=[batch.CfnJobDefinition.UlimitProperty(
2630
- hard_limit=123,
2631
- name="name",
2632
- soft_limit=123
2633
- )],
2634
- user="user",
2635
- vcpus=123,
2636
- volumes=[batch.CfnJobDefinition.VolumesProperty(
2637
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
2638
- file_system_id="fileSystemId",
2639
-
2640
- # the properties below are optional
2641
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
2642
- access_point_id="accessPointId",
2643
- iam="iam"
2644
- ),
2645
- root_directory="rootDirectory",
2646
- transit_encryption="transitEncryption",
2647
- transit_encryption_port=123
2648
- ),
2649
- host=batch.CfnJobDefinition.VolumesHostProperty(
2650
- source_path="sourcePath"
2651
- ),
2652
- name="name"
2653
- )]
2654
- )
2655
- )],
2656
- num_nodes=123
2657
- ),
2658
- parameters=parameters,
2659
- platform_capabilities=["platformCapabilities"],
2660
- propagate_tags=False,
2661
- retry_strategy=batch.CfnJobDefinition.RetryStrategyProperty(
2662
- attempts=123,
2663
- evaluate_on_exit=[batch.CfnJobDefinition.EvaluateOnExitProperty(
2664
- action="action",
2665
2378
 
2666
- # the properties below are optional
2667
- on_exit_code="onExitCode",
2668
- on_reason="onReason",
2669
- on_status_reason="onStatusReason"
2670
- )]
2671
- ),
2672
- scheduling_priority=123,
2673
- tags=tags,
2674
- timeout=batch.CfnJobDefinition.TimeoutProperty(
2675
- attempt_duration_seconds=123
2676
- )
2677
- )
2678
2379
  '''
2679
2380
 
2680
2381
  def __init__(
@@ -2684,6 +2385,7 @@ class CfnJobDefinition(
2684
2385
  *,
2685
2386
  type: builtins.str,
2686
2387
  container_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.ContainerPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2388
+ ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EcsPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2687
2389
  eks_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2688
2390
  job_definition_name: typing.Optional[builtins.str] = None,
2689
2391
  node_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.NodePropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -2700,6 +2402,7 @@ class CfnJobDefinition(
2700
2402
  :param id: Construct identifier for this resource (unique in its scope).
2701
2403
  :param type: The type of job definition. For more information about multi-node parallel jobs, see `Creating a multi-node parallel job definition <https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html>`_ in the *AWS Batch User Guide* . - If the value is ``container`` , then one of the following is required: ``containerProperties`` , ``ecsProperties`` , or ``eksProperties`` . - If the value is ``multinode`` , then ``nodeProperties`` is required. .. epigraph:: If the job is run on Fargate resources, then ``multinode`` isn't supported.
2702
2404
  :param container_properties: An object with properties specific to Amazon ECS-based jobs. When ``containerProperties`` is used in the job definition, it can't be used in addition to ``eksProperties`` , ``ecsProperties`` , or ``nodeProperties`` .
2405
+ :param ecs_properties: An object that contains the properties for the Amazon ECS resources of a job.When ``ecsProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``eksProperties`` , or ``nodeProperties`` .
2703
2406
  :param eks_properties: An object with properties that are specific to Amazon EKS-based jobs. When ``eksProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``ecsProperties`` , or ``nodeProperties`` .
2704
2407
  :param job_definition_name: The name of the job definition.
2705
2408
  :param node_properties: An object with properties that are specific to multi-node parallel jobs. When ``nodeProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``ecsProperties`` , or ``eksProperties`` . .. epigraph:: If the job runs on Fargate resources, don't specify ``nodeProperties`` . Use ``containerProperties`` instead.
@@ -2718,6 +2421,7 @@ class CfnJobDefinition(
2718
2421
  props = CfnJobDefinitionProps(
2719
2422
  type=type,
2720
2423
  container_properties=container_properties,
2424
+ ecs_properties=ecs_properties,
2721
2425
  eks_properties=eks_properties,
2722
2426
  job_definition_name=job_definition_name,
2723
2427
  node_properties=node_properties,
@@ -2812,6 +2516,24 @@ class CfnJobDefinition(
2812
2516
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2813
2517
  jsii.set(self, "containerProperties", value)
2814
2518
 
2519
+ @builtins.property
2520
+ @jsii.member(jsii_name="ecsProperties")
2521
+ def ecs_properties(
2522
+ self,
2523
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsPropertiesProperty"]]:
2524
+ '''An object that contains the properties for the Amazon ECS resources of a job.When ``ecsProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``eksProperties`` , or ``nodeProperties`` .'''
2525
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsPropertiesProperty"]], jsii.get(self, "ecsProperties"))
2526
+
2527
+ @ecs_properties.setter
2528
+ def ecs_properties(
2529
+ self,
2530
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsPropertiesProperty"]],
2531
+ ) -> None:
2532
+ if __debug__:
2533
+ type_hints = typing.get_type_hints(_typecheckingstub__0f93a9bec3d893845bf7cf59752d55dcec2df30819130514b48897371c2ec224)
2534
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2535
+ jsii.set(self, "ecsProperties", value)
2536
+
2815
2537
  @builtins.property
2816
2538
  @jsii.member(jsii_name="eksProperties")
2817
2539
  def eks_properties(
@@ -3728,37 +3450,21 @@ class CfnJobDefinition(
3728
3450
  )
3729
3451
 
3730
3452
  @jsii.data_type(
3731
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EfsVolumeConfigurationProperty",
3453
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EcsPropertiesProperty",
3732
3454
  jsii_struct_bases=[],
3733
- name_mapping={
3734
- "file_system_id": "fileSystemId",
3735
- "authorization_config": "authorizationConfig",
3736
- "root_directory": "rootDirectory",
3737
- "transit_encryption": "transitEncryption",
3738
- "transit_encryption_port": "transitEncryptionPort",
3739
- },
3455
+ name_mapping={"task_properties": "taskProperties"},
3740
3456
  )
3741
- class EfsVolumeConfigurationProperty:
3457
+ class EcsPropertiesProperty:
3742
3458
  def __init__(
3743
3459
  self,
3744
3460
  *,
3745
- file_system_id: builtins.str,
3746
- authorization_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.AuthorizationConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3747
- root_directory: typing.Optional[builtins.str] = None,
3748
- transit_encryption: typing.Optional[builtins.str] = None,
3749
- transit_encryption_port: typing.Optional[jsii.Number] = None,
3461
+ task_properties: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EcsTaskPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]]],
3750
3462
  ) -> None:
3751
- '''This is used when you're using an Amazon Elastic File System file system for job storage.
3752
-
3753
- For more information, see `Amazon EFS Volumes <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html>`_ in the *AWS Batch User Guide* .
3463
+ '''An object that contains the properties for the Amazon ECS resources of a job.
3754
3464
 
3755
- :param file_system_id: The Amazon EFS file system ID to use.
3756
- :param authorization_config: The authorization configuration details for the Amazon EFS file system.
3757
- :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.
3758
- :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* .
3759
- :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* .
3465
+ :param task_properties: An object that contains the properties for the Amazon ECS task definition of a job. .. epigraph:: This object is currently limited to one element.
3760
3466
 
3761
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html
3467
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecsproperties.html
3762
3468
  :exampleMetadata: fixture=_generated
3763
3469
 
3764
3470
  Example::
@@ -3767,94 +3473,136 @@ class CfnJobDefinition(
3767
3473
  # The values are placeholders you should change.
3768
3474
  from aws_cdk import aws_batch as batch
3769
3475
 
3770
- efs_volume_configuration_property = batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
3771
- file_system_id="fileSystemId",
3476
+ # options: Any
3772
3477
 
3773
- # the properties below are optional
3774
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
3775
- access_point_id="accessPointId",
3776
- iam="iam"
3777
- ),
3778
- root_directory="rootDirectory",
3779
- transit_encryption="transitEncryption",
3780
- transit_encryption_port=123
3478
+ ecs_properties_property = batch.CfnJobDefinition.EcsPropertiesProperty(
3479
+ task_properties=[batch.CfnJobDefinition.EcsTaskPropertiesProperty(
3480
+ containers=[batch.CfnJobDefinition.TaskContainerPropertiesProperty(
3481
+ image="image",
3482
+
3483
+ # the properties below are optional
3484
+ command=["command"],
3485
+ depends_on=[batch.CfnJobDefinition.TaskContainerDependencyProperty(
3486
+ condition="condition",
3487
+ container_name="containerName"
3488
+ )],
3489
+ environment=[batch.CfnJobDefinition.EnvironmentProperty(
3490
+ name="name",
3491
+ value="value"
3492
+ )],
3493
+ essential=False,
3494
+ linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
3495
+ devices=[batch.CfnJobDefinition.DeviceProperty(
3496
+ container_path="containerPath",
3497
+ host_path="hostPath",
3498
+ permissions=["permissions"]
3499
+ )],
3500
+ init_process_enabled=False,
3501
+ max_swap=123,
3502
+ shared_memory_size=123,
3503
+ swappiness=123,
3504
+ tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
3505
+ container_path="containerPath",
3506
+ size=123,
3507
+
3508
+ # the properties below are optional
3509
+ mount_options=["mountOptions"]
3510
+ )]
3511
+ ),
3512
+ log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
3513
+ log_driver="logDriver",
3514
+
3515
+ # the properties below are optional
3516
+ options=options,
3517
+ secret_options=[batch.CfnJobDefinition.SecretProperty(
3518
+ name="name",
3519
+ value_from="valueFrom"
3520
+ )]
3521
+ ),
3522
+ mount_points=[batch.CfnJobDefinition.MountPointsProperty(
3523
+ container_path="containerPath",
3524
+ read_only=False,
3525
+ source_volume="sourceVolume"
3526
+ )],
3527
+ name="name",
3528
+ privileged=False,
3529
+ readonly_root_filesystem=False,
3530
+ repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
3531
+ credentials_parameter="credentialsParameter"
3532
+ ),
3533
+ resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
3534
+ type="type",
3535
+ value="value"
3536
+ )],
3537
+ secrets=[batch.CfnJobDefinition.SecretProperty(
3538
+ name="name",
3539
+ value_from="valueFrom"
3540
+ )],
3541
+ ulimits=[batch.CfnJobDefinition.UlimitProperty(
3542
+ hard_limit=123,
3543
+ name="name",
3544
+ soft_limit=123
3545
+ )],
3546
+ user="user"
3547
+ )],
3548
+ ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
3549
+ size_in_gi_b=123
3550
+ ),
3551
+ execution_role_arn="executionRoleArn",
3552
+ ipc_mode="ipcMode",
3553
+ network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
3554
+ assign_public_ip="assignPublicIp"
3555
+ ),
3556
+ pid_mode="pidMode",
3557
+ platform_version="platformVersion",
3558
+ runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
3559
+ cpu_architecture="cpuArchitecture",
3560
+ operating_system_family="operatingSystemFamily"
3561
+ ),
3562
+ task_role_arn="taskRoleArn",
3563
+ volumes=[batch.CfnJobDefinition.VolumesProperty(
3564
+ efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
3565
+ file_system_id="fileSystemId",
3566
+
3567
+ # the properties below are optional
3568
+ authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
3569
+ access_point_id="accessPointId",
3570
+ iam="iam"
3571
+ ),
3572
+ root_directory="rootDirectory",
3573
+ transit_encryption="transitEncryption",
3574
+ transit_encryption_port=123
3575
+ ),
3576
+ host=batch.CfnJobDefinition.VolumesHostProperty(
3577
+ source_path="sourcePath"
3578
+ ),
3579
+ name="name"
3580
+ )]
3581
+ )]
3781
3582
  )
3782
3583
  '''
3783
3584
  if __debug__:
3784
- type_hints = typing.get_type_hints(_typecheckingstub__f673b085b46133477cd372799511104e89e28bf34ac0f6255020b20ef8b7e3e0)
3785
- check_type(argname="argument file_system_id", value=file_system_id, expected_type=type_hints["file_system_id"])
3786
- check_type(argname="argument authorization_config", value=authorization_config, expected_type=type_hints["authorization_config"])
3787
- check_type(argname="argument root_directory", value=root_directory, expected_type=type_hints["root_directory"])
3788
- check_type(argname="argument transit_encryption", value=transit_encryption, expected_type=type_hints["transit_encryption"])
3789
- check_type(argname="argument transit_encryption_port", value=transit_encryption_port, expected_type=type_hints["transit_encryption_port"])
3585
+ type_hints = typing.get_type_hints(_typecheckingstub__6153a950309796a66c44ef3a234e02ed7ff91444107709427ae345e4f0e64828)
3586
+ check_type(argname="argument task_properties", value=task_properties, expected_type=type_hints["task_properties"])
3790
3587
  self._values: typing.Dict[builtins.str, typing.Any] = {
3791
- "file_system_id": file_system_id,
3588
+ "task_properties": task_properties,
3792
3589
  }
3793
- if authorization_config is not None:
3794
- self._values["authorization_config"] = authorization_config
3795
- if root_directory is not None:
3796
- self._values["root_directory"] = root_directory
3797
- if transit_encryption is not None:
3798
- self._values["transit_encryption"] = transit_encryption
3799
- if transit_encryption_port is not None:
3800
- self._values["transit_encryption_port"] = transit_encryption_port
3801
-
3802
- @builtins.property
3803
- def file_system_id(self) -> builtins.str:
3804
- '''The Amazon EFS file system ID to use.
3805
-
3806
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-filesystemid
3807
- '''
3808
- result = self._values.get("file_system_id")
3809
- assert result is not None, "Required property 'file_system_id' is missing"
3810
- return typing.cast(builtins.str, result)
3811
3590
 
3812
3591
  @builtins.property
3813
- def authorization_config(
3592
+ def task_properties(
3814
3593
  self,
3815
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.AuthorizationConfigProperty"]]:
3816
- '''The authorization configuration details for the Amazon EFS file system.
3817
-
3818
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-authorizationconfig
3819
- '''
3820
- result = self._values.get("authorization_config")
3821
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.AuthorizationConfigProperty"]], result)
3822
-
3823
- @builtins.property
3824
- def root_directory(self) -> typing.Optional[builtins.str]:
3825
- '''The directory within the Amazon EFS file system to mount as the root directory inside the host.
3594
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsTaskPropertiesProperty"]]]:
3595
+ '''An object that contains the properties for the Amazon ECS task definition of a job.
3826
3596
 
3827
- 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.
3828
3597
  .. epigraph::
3829
3598
 
3830
- 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.
3831
-
3832
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-rootdirectory
3833
- '''
3834
- result = self._values.get("root_directory")
3835
- return typing.cast(typing.Optional[builtins.str], result)
3836
-
3837
- @builtins.property
3838
- def transit_encryption(self) -> typing.Optional[builtins.str]:
3839
- '''Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server.
3840
-
3841
- 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* .
3842
-
3843
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryption
3844
- '''
3845
- result = self._values.get("transit_encryption")
3846
- return typing.cast(typing.Optional[builtins.str], result)
3847
-
3848
- @builtins.property
3849
- def transit_encryption_port(self) -> typing.Optional[jsii.Number]:
3850
- '''The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server.
3851
-
3852
- 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* .
3599
+ This object is currently limited to one element.
3853
3600
 
3854
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryptionport
3601
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecsproperties.html#cfn-batch-jobdefinition-ecsproperties-taskproperties
3855
3602
  '''
3856
- result = self._values.get("transit_encryption_port")
3857
- return typing.cast(typing.Optional[jsii.Number], result)
3603
+ result = self._values.get("task_properties")
3604
+ assert result is not None, "Required property 'task_properties' is missing"
3605
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsTaskPropertiesProperty"]]], result)
3858
3606
 
3859
3607
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
3860
3608
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -3863,28 +3611,57 @@ class CfnJobDefinition(
3863
3611
  return not (rhs == self)
3864
3612
 
3865
3613
  def __repr__(self) -> str:
3866
- return "EfsVolumeConfigurationProperty(%s)" % ", ".join(
3614
+ return "EcsPropertiesProperty(%s)" % ", ".join(
3867
3615
  k + "=" + repr(v) for k, v in self._values.items()
3868
3616
  )
3869
3617
 
3870
3618
  @jsii.data_type(
3871
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EksContainerEnvironmentVariableProperty",
3619
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EcsTaskPropertiesProperty",
3872
3620
  jsii_struct_bases=[],
3873
- name_mapping={"name": "name", "value": "value"},
3621
+ name_mapping={
3622
+ "containers": "containers",
3623
+ "ephemeral_storage": "ephemeralStorage",
3624
+ "execution_role_arn": "executionRoleArn",
3625
+ "ipc_mode": "ipcMode",
3626
+ "network_configuration": "networkConfiguration",
3627
+ "pid_mode": "pidMode",
3628
+ "platform_version": "platformVersion",
3629
+ "runtime_platform": "runtimePlatform",
3630
+ "task_role_arn": "taskRoleArn",
3631
+ "volumes": "volumes",
3632
+ },
3874
3633
  )
3875
- class EksContainerEnvironmentVariableProperty:
3634
+ class EcsTaskPropertiesProperty:
3876
3635
  def __init__(
3877
3636
  self,
3878
3637
  *,
3879
- name: builtins.str,
3880
- value: typing.Optional[builtins.str] = None,
3638
+ containers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.TaskContainerPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3639
+ ephemeral_storage: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EphemeralStorageProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3640
+ execution_role_arn: typing.Optional[builtins.str] = None,
3641
+ ipc_mode: typing.Optional[builtins.str] = None,
3642
+ network_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.NetworkConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3643
+ pid_mode: typing.Optional[builtins.str] = None,
3644
+ platform_version: typing.Optional[builtins.str] = None,
3645
+ runtime_platform: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.RuntimePlatformProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3646
+ task_role_arn: typing.Optional[builtins.str] = None,
3647
+ volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.VolumesProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3881
3648
  ) -> None:
3882
- '''An environment variable.
3649
+ '''The properties for a task definition that describes the container and volume definitions of an Amazon ECS task.
3883
3650
 
3884
- :param name: The name of the environment variable.
3885
- :param value: The value of the environment variable.
3651
+ You can specify which Docker images to use, the required resources, and other configurations related to launching the task definition through an Amazon ECS service or task.
3886
3652
 
3887
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html
3653
+ :param containers: This object is a list of containers.
3654
+ :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 .
3655
+ :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* .
3656
+ :param ipc_mode: The IPC resource namespace to use for the containers in the task. The valid values are ``host`` , ``task`` , or ``none`` . If ``host`` is specified, all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified ``task`` share the same IPC resources. If ``none`` is specified, the IPC resources within the containers of a task are private, and are not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see `IPC settings <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc>`_ in the Docker run reference.
3657
+ :param network_configuration: The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.
3658
+ :param pid_mode: The process namespace to use for the containers in the task. The valid values are ``host`` or ``task`` . For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the process namespace with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace for each container. For more information, see `PID settings <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid>`_ in the Docker run reference.
3659
+ :param platform_version: The Fargate platform version where the jobs are running. A platform version is specified only for jobs that are running on Fargate resources. If one isn't specified, the ``LATEST`` platform version is used by default. This uses a recent, approved version of the Fargate platform for compute resources. For more information, see `AWS Fargate platform versions <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
3660
+ :param runtime_platform: An object that represents the compute environment architecture for AWS Batch jobs on Fargate.
3661
+ :param task_role_arn: The Amazon Resource Name (ARN) that's associated with the Amazon ECS task. .. epigraph:: This is object is comparable to `ContainerProperties:jobRoleArn <https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html>`_ .
3662
+ :param volumes: A list of volumes that are associated with the job.
3663
+
3664
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html
3888
3665
  :exampleMetadata: fixture=_generated
3889
3666
 
3890
3667
  Example::
@@ -3893,42 +3670,276 @@ class CfnJobDefinition(
3893
3670
  # The values are placeholders you should change.
3894
3671
  from aws_cdk import aws_batch as batch
3895
3672
 
3896
- eks_container_environment_variable_property = batch.CfnJobDefinition.EksContainerEnvironmentVariableProperty(
3897
- name="name",
3673
+ # options: Any
3898
3674
 
3899
- # the properties below are optional
3900
- value="value"
3901
- )
3902
- '''
3903
- if __debug__:
3904
- type_hints = typing.get_type_hints(_typecheckingstub__daaaeed078e13c29ac34da5a79bab4c04e8767edaf6d6a60877918a94797c218)
3905
- check_type(argname="argument name", value=name, expected_type=type_hints["name"])
3906
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3907
- self._values: typing.Dict[builtins.str, typing.Any] = {
3908
- "name": name,
3909
- }
3910
- if value is not None:
3911
- self._values["value"] = value
3912
-
3913
- @builtins.property
3914
- def name(self) -> builtins.str:
3915
- '''The name of the environment variable.
3916
-
3917
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html#cfn-batch-jobdefinition-ekscontainerenvironmentvariable-name
3918
- '''
3919
- result = self._values.get("name")
3920
- assert result is not None, "Required property 'name' is missing"
3921
- return typing.cast(builtins.str, result)
3922
-
3923
- @builtins.property
3924
- def value(self) -> typing.Optional[builtins.str]:
3925
- '''The value of the environment variable.
3675
+ ecs_task_properties_property = batch.CfnJobDefinition.EcsTaskPropertiesProperty(
3676
+ containers=[batch.CfnJobDefinition.TaskContainerPropertiesProperty(
3677
+ image="image",
3678
+
3679
+ # the properties below are optional
3680
+ command=["command"],
3681
+ depends_on=[batch.CfnJobDefinition.TaskContainerDependencyProperty(
3682
+ condition="condition",
3683
+ container_name="containerName"
3684
+ )],
3685
+ environment=[batch.CfnJobDefinition.EnvironmentProperty(
3686
+ name="name",
3687
+ value="value"
3688
+ )],
3689
+ essential=False,
3690
+ linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
3691
+ devices=[batch.CfnJobDefinition.DeviceProperty(
3692
+ container_path="containerPath",
3693
+ host_path="hostPath",
3694
+ permissions=["permissions"]
3695
+ )],
3696
+ init_process_enabled=False,
3697
+ max_swap=123,
3698
+ shared_memory_size=123,
3699
+ swappiness=123,
3700
+ tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
3701
+ container_path="containerPath",
3702
+ size=123,
3703
+
3704
+ # the properties below are optional
3705
+ mount_options=["mountOptions"]
3706
+ )]
3707
+ ),
3708
+ log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
3709
+ log_driver="logDriver",
3710
+
3711
+ # the properties below are optional
3712
+ options=options,
3713
+ secret_options=[batch.CfnJobDefinition.SecretProperty(
3714
+ name="name",
3715
+ value_from="valueFrom"
3716
+ )]
3717
+ ),
3718
+ mount_points=[batch.CfnJobDefinition.MountPointsProperty(
3719
+ container_path="containerPath",
3720
+ read_only=False,
3721
+ source_volume="sourceVolume"
3722
+ )],
3723
+ name="name",
3724
+ privileged=False,
3725
+ readonly_root_filesystem=False,
3726
+ repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
3727
+ credentials_parameter="credentialsParameter"
3728
+ ),
3729
+ resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
3730
+ type="type",
3731
+ value="value"
3732
+ )],
3733
+ secrets=[batch.CfnJobDefinition.SecretProperty(
3734
+ name="name",
3735
+ value_from="valueFrom"
3736
+ )],
3737
+ ulimits=[batch.CfnJobDefinition.UlimitProperty(
3738
+ hard_limit=123,
3739
+ name="name",
3740
+ soft_limit=123
3741
+ )],
3742
+ user="user"
3743
+ )],
3744
+ ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
3745
+ size_in_gi_b=123
3746
+ ),
3747
+ execution_role_arn="executionRoleArn",
3748
+ ipc_mode="ipcMode",
3749
+ network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
3750
+ assign_public_ip="assignPublicIp"
3751
+ ),
3752
+ pid_mode="pidMode",
3753
+ platform_version="platformVersion",
3754
+ runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
3755
+ cpu_architecture="cpuArchitecture",
3756
+ operating_system_family="operatingSystemFamily"
3757
+ ),
3758
+ task_role_arn="taskRoleArn",
3759
+ volumes=[batch.CfnJobDefinition.VolumesProperty(
3760
+ efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
3761
+ file_system_id="fileSystemId",
3762
+
3763
+ # the properties below are optional
3764
+ authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
3765
+ access_point_id="accessPointId",
3766
+ iam="iam"
3767
+ ),
3768
+ root_directory="rootDirectory",
3769
+ transit_encryption="transitEncryption",
3770
+ transit_encryption_port=123
3771
+ ),
3772
+ host=batch.CfnJobDefinition.VolumesHostProperty(
3773
+ source_path="sourcePath"
3774
+ ),
3775
+ name="name"
3776
+ )]
3777
+ )
3778
+ '''
3779
+ if __debug__:
3780
+ type_hints = typing.get_type_hints(_typecheckingstub__8e8c39be2b840a158045732ea20d964bf03d380304bbcd66936cb862e6cc2a8e)
3781
+ check_type(argname="argument containers", value=containers, expected_type=type_hints["containers"])
3782
+ check_type(argname="argument ephemeral_storage", value=ephemeral_storage, expected_type=type_hints["ephemeral_storage"])
3783
+ check_type(argname="argument execution_role_arn", value=execution_role_arn, expected_type=type_hints["execution_role_arn"])
3784
+ check_type(argname="argument ipc_mode", value=ipc_mode, expected_type=type_hints["ipc_mode"])
3785
+ check_type(argname="argument network_configuration", value=network_configuration, expected_type=type_hints["network_configuration"])
3786
+ check_type(argname="argument pid_mode", value=pid_mode, expected_type=type_hints["pid_mode"])
3787
+ check_type(argname="argument platform_version", value=platform_version, expected_type=type_hints["platform_version"])
3788
+ check_type(argname="argument runtime_platform", value=runtime_platform, expected_type=type_hints["runtime_platform"])
3789
+ check_type(argname="argument task_role_arn", value=task_role_arn, expected_type=type_hints["task_role_arn"])
3790
+ check_type(argname="argument volumes", value=volumes, expected_type=type_hints["volumes"])
3791
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3792
+ if containers is not None:
3793
+ self._values["containers"] = containers
3794
+ if ephemeral_storage is not None:
3795
+ self._values["ephemeral_storage"] = ephemeral_storage
3796
+ if execution_role_arn is not None:
3797
+ self._values["execution_role_arn"] = execution_role_arn
3798
+ if ipc_mode is not None:
3799
+ self._values["ipc_mode"] = ipc_mode
3800
+ if network_configuration is not None:
3801
+ self._values["network_configuration"] = network_configuration
3802
+ if pid_mode is not None:
3803
+ self._values["pid_mode"] = pid_mode
3804
+ if platform_version is not None:
3805
+ self._values["platform_version"] = platform_version
3806
+ if runtime_platform is not None:
3807
+ self._values["runtime_platform"] = runtime_platform
3808
+ if task_role_arn is not None:
3809
+ self._values["task_role_arn"] = task_role_arn
3810
+ if volumes is not None:
3811
+ self._values["volumes"] = volumes
3926
3812
 
3927
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html#cfn-batch-jobdefinition-ekscontainerenvironmentvariable-value
3813
+ @builtins.property
3814
+ def containers(
3815
+ self,
3816
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.TaskContainerPropertiesProperty"]]]]:
3817
+ '''This object is a list of containers.
3818
+
3819
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-containers
3928
3820
  '''
3929
- result = self._values.get("value")
3821
+ result = self._values.get("containers")
3822
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.TaskContainerPropertiesProperty"]]]], result)
3823
+
3824
+ @builtins.property
3825
+ def ephemeral_storage(
3826
+ self,
3827
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EphemeralStorageProperty"]]:
3828
+ '''The amount of ephemeral storage to allocate for the task.
3829
+
3830
+ This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate .
3831
+
3832
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-ephemeralstorage
3833
+ '''
3834
+ result = self._values.get("ephemeral_storage")
3835
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EphemeralStorageProperty"]], result)
3836
+
3837
+ @builtins.property
3838
+ def execution_role_arn(self) -> typing.Optional[builtins.str]:
3839
+ '''The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume.
3840
+
3841
+ 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* .
3842
+
3843
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-executionrolearn
3844
+ '''
3845
+ result = self._values.get("execution_role_arn")
3846
+ return typing.cast(typing.Optional[builtins.str], result)
3847
+
3848
+ @builtins.property
3849
+ def ipc_mode(self) -> typing.Optional[builtins.str]:
3850
+ '''The IPC resource namespace to use for the containers in the task.
3851
+
3852
+ The valid values are ``host`` , ``task`` , or ``none`` .
3853
+
3854
+ If ``host`` is specified, all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance.
3855
+
3856
+ If ``task`` is specified, all containers within the specified ``task`` share the same IPC resources.
3857
+
3858
+ If ``none`` is specified, the IPC resources within the containers of a task are private, and are not shared with other containers in a task or on the container instance.
3859
+
3860
+ If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see `IPC settings <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc>`_ in the Docker run reference.
3861
+
3862
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-ipcmode
3863
+ '''
3864
+ result = self._values.get("ipc_mode")
3865
+ return typing.cast(typing.Optional[builtins.str], result)
3866
+
3867
+ @builtins.property
3868
+ def network_configuration(
3869
+ self,
3870
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.NetworkConfigurationProperty"]]:
3871
+ '''The network configuration for jobs that are running on Fargate resources.
3872
+
3873
+ Jobs that are running on Amazon EC2 resources must not specify this parameter.
3874
+
3875
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-networkconfiguration
3876
+ '''
3877
+ result = self._values.get("network_configuration")
3878
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.NetworkConfigurationProperty"]], result)
3879
+
3880
+ @builtins.property
3881
+ def pid_mode(self) -> typing.Optional[builtins.str]:
3882
+ '''The process namespace to use for the containers in the task.
3883
+
3884
+ The valid values are ``host`` or ``task`` . For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.
3885
+
3886
+ If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the process namespace with the host Amazon EC2 instance.
3887
+
3888
+ If ``task`` is specified, all containers within the specified task share the same process namespace.
3889
+
3890
+ If no value is specified, the default is a private namespace for each container. For more information, see `PID settings <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid>`_ in the Docker run reference.
3891
+
3892
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-pidmode
3893
+ '''
3894
+ result = self._values.get("pid_mode")
3895
+ return typing.cast(typing.Optional[builtins.str], result)
3896
+
3897
+ @builtins.property
3898
+ def platform_version(self) -> typing.Optional[builtins.str]:
3899
+ '''The Fargate platform version where the jobs are running.
3900
+
3901
+ A platform version is specified only for jobs that are running on Fargate resources. If one isn't specified, the ``LATEST`` platform version is used by default. This uses a recent, approved version of the Fargate platform for compute resources. For more information, see `AWS Fargate platform versions <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
3902
+
3903
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-platformversion
3904
+ '''
3905
+ result = self._values.get("platform_version")
3906
+ return typing.cast(typing.Optional[builtins.str], result)
3907
+
3908
+ @builtins.property
3909
+ def runtime_platform(
3910
+ self,
3911
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.RuntimePlatformProperty"]]:
3912
+ '''An object that represents the compute environment architecture for AWS Batch jobs on Fargate.
3913
+
3914
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-runtimeplatform
3915
+ '''
3916
+ result = self._values.get("runtime_platform")
3917
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.RuntimePlatformProperty"]], result)
3918
+
3919
+ @builtins.property
3920
+ def task_role_arn(self) -> typing.Optional[builtins.str]:
3921
+ '''The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.
3922
+
3923
+ .. epigraph::
3924
+
3925
+ This is object is comparable to `ContainerProperties:jobRoleArn <https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html>`_ .
3926
+
3927
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-taskrolearn
3928
+ '''
3929
+ result = self._values.get("task_role_arn")
3930
3930
  return typing.cast(typing.Optional[builtins.str], result)
3931
3931
 
3932
+ @builtins.property
3933
+ def volumes(
3934
+ self,
3935
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesProperty"]]]]:
3936
+ '''A list of volumes that are associated with the job.
3937
+
3938
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-volumes
3939
+ '''
3940
+ result = self._values.get("volumes")
3941
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesProperty"]]]], result)
3942
+
3932
3943
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
3933
3944
  return isinstance(rhs, self.__class__) and rhs._values == self._values
3934
3945
 
@@ -3936,50 +3947,263 @@ class CfnJobDefinition(
3936
3947
  return not (rhs == self)
3937
3948
 
3938
3949
  def __repr__(self) -> str:
3939
- return "EksContainerEnvironmentVariableProperty(%s)" % ", ".join(
3950
+ return "EcsTaskPropertiesProperty(%s)" % ", ".join(
3940
3951
  k + "=" + repr(v) for k, v in self._values.items()
3941
3952
  )
3942
3953
 
3943
3954
  @jsii.data_type(
3944
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EksContainerProperty",
3955
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EfsVolumeConfigurationProperty",
3945
3956
  jsii_struct_bases=[],
3946
3957
  name_mapping={
3947
- "image": "image",
3948
- "args": "args",
3949
- "command": "command",
3950
- "env": "env",
3951
- "image_pull_policy": "imagePullPolicy",
3952
- "name": "name",
3953
- "resources": "resources",
3954
- "security_context": "securityContext",
3955
- "volume_mounts": "volumeMounts",
3958
+ "file_system_id": "fileSystemId",
3959
+ "authorization_config": "authorizationConfig",
3960
+ "root_directory": "rootDirectory",
3961
+ "transit_encryption": "transitEncryption",
3962
+ "transit_encryption_port": "transitEncryptionPort",
3956
3963
  },
3957
3964
  )
3958
- class EksContainerProperty:
3965
+ class EfsVolumeConfigurationProperty:
3959
3966
  def __init__(
3960
3967
  self,
3961
3968
  *,
3962
- image: builtins.str,
3963
- args: typing.Optional[typing.Sequence[builtins.str]] = None,
3964
- command: typing.Optional[typing.Sequence[builtins.str]] = None,
3965
- env: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksContainerEnvironmentVariableProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3966
- image_pull_policy: typing.Optional[builtins.str] = None,
3967
- name: typing.Optional[builtins.str] = None,
3968
- resources: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.ResourcesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3969
- security_context: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.SecurityContextProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3970
- volume_mounts: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksContainerVolumeMountProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3969
+ file_system_id: builtins.str,
3970
+ authorization_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.AuthorizationConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3971
+ root_directory: typing.Optional[builtins.str] = None,
3972
+ transit_encryption: typing.Optional[builtins.str] = None,
3973
+ transit_encryption_port: typing.Optional[jsii.Number] = None,
3971
3974
  ) -> None:
3972
- '''EKS container properties are used in job definitions for Amazon EKS based job definitions to describe the properties for a container node in the pod that's launched as part of a job.
3975
+ '''This is used when you're using an Amazon Elastic File System file system for job storage.
3973
3976
 
3974
- This can't be specified for Amazon ECS based job definitions.
3977
+ For more information, see `Amazon EFS Volumes <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html>`_ in the *AWS Batch User Guide* .
3975
3978
 
3976
- :param image: The Docker image used to start the container.
3977
- :param args: An array of arguments to the entrypoint. If this isn't specified, the ``CMD`` of the container image is used. This corresponds to the ``args`` member in the `Entrypoint <https://docs.aws.amazon.com/https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint>`_ portion of the `Pod <https://docs.aws.amazon.com/https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/>`_ in Kubernetes. Environment variable references are expanded using the container's environment. If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to " ``$(NAME1)`` " and the ``NAME1`` environment variable doesn't exist, the command string will remain " ``$(NAME1)`` ." ``$$`` is replaced with ``$`` , and the resulting string isn't expanded. For example, ``$$(VAR_NAME)`` is passed as ``$(VAR_NAME)`` whether or not the ``VAR_NAME`` environment variable exists. For more information, see `Dockerfile reference: CMD <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd>`_ and `Define a command and arguments for a pod <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/>`_ in the *Kubernetes documentation* .
3978
- :param command: The entrypoint for the container. This isn't run within a shell. If this isn't specified, the ``ENTRYPOINT`` of the container image is used. Environment variable references are expanded using the container's environment. If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to " ``$(NAME1)`` " and the ``NAME1`` environment variable doesn't exist, the command string will remain " ``$(NAME1)`` ." ``$$`` is replaced with ``$`` and the resulting string isn't expanded. For example, ``$$(VAR_NAME)`` will be passed as ``$(VAR_NAME)`` whether or not the ``VAR_NAME`` environment variable exists. The entrypoint can't be updated. For more information, see `ENTRYPOINT <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint>`_ in the *Dockerfile reference* and `Define a command and arguments for a container <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/>`_ and `Entrypoint <https://docs.aws.amazon.com/https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint>`_ in the *Kubernetes documentation* .
3979
- :param env: The environment variables to pass to a container. .. epigraph:: Environment variables cannot start with " ``AWS_BATCH`` ". This naming convention is reserved for variables that AWS Batch sets.
3980
- :param image_pull_policy: The image pull policy for the container. Supported values are ``Always`` , ``IfNotPresent`` , and ``Never`` . This parameter defaults to ``IfNotPresent`` . However, if the ``:latest`` tag is specified, it defaults to ``Always`` . For more information, see `Updating images <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/containers/images/#updating-images>`_ in the *Kubernetes documentation* .
3981
- :param name: The name of the container. If the name isn't specified, the default name " ``Default`` " is used. Each container in a pod must have a unique name.
3982
- :param resources: The type and amount of resources to assign to a container. The supported resources include ``memory`` , ``cpu`` , and ``nvidia.com/gpu`` . For more information, see `Resource management for pods and containers <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/>`_ in the *Kubernetes documentation* .
3979
+ :param file_system_id: The Amazon EFS file system ID to use.
3980
+ :param authorization_config: The authorization configuration details for the Amazon EFS file system.
3981
+ :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.
3982
+ :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* .
3983
+ :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* .
3984
+
3985
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html
3986
+ :exampleMetadata: fixture=_generated
3987
+
3988
+ Example::
3989
+
3990
+ # The code below shows an example of how to instantiate this type.
3991
+ # The values are placeholders you should change.
3992
+ from aws_cdk import aws_batch as batch
3993
+
3994
+ efs_volume_configuration_property = batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
3995
+ file_system_id="fileSystemId",
3996
+
3997
+ # the properties below are optional
3998
+ authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
3999
+ access_point_id="accessPointId",
4000
+ iam="iam"
4001
+ ),
4002
+ root_directory="rootDirectory",
4003
+ transit_encryption="transitEncryption",
4004
+ transit_encryption_port=123
4005
+ )
4006
+ '''
4007
+ if __debug__:
4008
+ type_hints = typing.get_type_hints(_typecheckingstub__f673b085b46133477cd372799511104e89e28bf34ac0f6255020b20ef8b7e3e0)
4009
+ check_type(argname="argument file_system_id", value=file_system_id, expected_type=type_hints["file_system_id"])
4010
+ check_type(argname="argument authorization_config", value=authorization_config, expected_type=type_hints["authorization_config"])
4011
+ check_type(argname="argument root_directory", value=root_directory, expected_type=type_hints["root_directory"])
4012
+ check_type(argname="argument transit_encryption", value=transit_encryption, expected_type=type_hints["transit_encryption"])
4013
+ check_type(argname="argument transit_encryption_port", value=transit_encryption_port, expected_type=type_hints["transit_encryption_port"])
4014
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4015
+ "file_system_id": file_system_id,
4016
+ }
4017
+ if authorization_config is not None:
4018
+ self._values["authorization_config"] = authorization_config
4019
+ if root_directory is not None:
4020
+ self._values["root_directory"] = root_directory
4021
+ if transit_encryption is not None:
4022
+ self._values["transit_encryption"] = transit_encryption
4023
+ if transit_encryption_port is not None:
4024
+ self._values["transit_encryption_port"] = transit_encryption_port
4025
+
4026
+ @builtins.property
4027
+ def file_system_id(self) -> builtins.str:
4028
+ '''The Amazon EFS file system ID to use.
4029
+
4030
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-filesystemid
4031
+ '''
4032
+ result = self._values.get("file_system_id")
4033
+ assert result is not None, "Required property 'file_system_id' is missing"
4034
+ return typing.cast(builtins.str, result)
4035
+
4036
+ @builtins.property
4037
+ def authorization_config(
4038
+ self,
4039
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.AuthorizationConfigProperty"]]:
4040
+ '''The authorization configuration details for the Amazon EFS file system.
4041
+
4042
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-authorizationconfig
4043
+ '''
4044
+ result = self._values.get("authorization_config")
4045
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.AuthorizationConfigProperty"]], result)
4046
+
4047
+ @builtins.property
4048
+ def root_directory(self) -> typing.Optional[builtins.str]:
4049
+ '''The directory within the Amazon EFS file system to mount as the root directory inside the host.
4050
+
4051
+ 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.
4052
+ .. epigraph::
4053
+
4054
+ 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.
4055
+
4056
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-rootdirectory
4057
+ '''
4058
+ result = self._values.get("root_directory")
4059
+ return typing.cast(typing.Optional[builtins.str], result)
4060
+
4061
+ @builtins.property
4062
+ def transit_encryption(self) -> typing.Optional[builtins.str]:
4063
+ '''Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server.
4064
+
4065
+ 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* .
4066
+
4067
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryption
4068
+ '''
4069
+ result = self._values.get("transit_encryption")
4070
+ return typing.cast(typing.Optional[builtins.str], result)
4071
+
4072
+ @builtins.property
4073
+ def transit_encryption_port(self) -> typing.Optional[jsii.Number]:
4074
+ '''The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server.
4075
+
4076
+ 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* .
4077
+
4078
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryptionport
4079
+ '''
4080
+ result = self._values.get("transit_encryption_port")
4081
+ return typing.cast(typing.Optional[jsii.Number], result)
4082
+
4083
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4084
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4085
+
4086
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4087
+ return not (rhs == self)
4088
+
4089
+ def __repr__(self) -> str:
4090
+ return "EfsVolumeConfigurationProperty(%s)" % ", ".join(
4091
+ k + "=" + repr(v) for k, v in self._values.items()
4092
+ )
4093
+
4094
+ @jsii.data_type(
4095
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EksContainerEnvironmentVariableProperty",
4096
+ jsii_struct_bases=[],
4097
+ name_mapping={"name": "name", "value": "value"},
4098
+ )
4099
+ class EksContainerEnvironmentVariableProperty:
4100
+ def __init__(
4101
+ self,
4102
+ *,
4103
+ name: builtins.str,
4104
+ value: typing.Optional[builtins.str] = None,
4105
+ ) -> None:
4106
+ '''An environment variable.
4107
+
4108
+ :param name: The name of the environment variable.
4109
+ :param value: The value of the environment variable.
4110
+
4111
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html
4112
+ :exampleMetadata: fixture=_generated
4113
+
4114
+ Example::
4115
+
4116
+ # The code below shows an example of how to instantiate this type.
4117
+ # The values are placeholders you should change.
4118
+ from aws_cdk import aws_batch as batch
4119
+
4120
+ eks_container_environment_variable_property = batch.CfnJobDefinition.EksContainerEnvironmentVariableProperty(
4121
+ name="name",
4122
+
4123
+ # the properties below are optional
4124
+ value="value"
4125
+ )
4126
+ '''
4127
+ if __debug__:
4128
+ type_hints = typing.get_type_hints(_typecheckingstub__daaaeed078e13c29ac34da5a79bab4c04e8767edaf6d6a60877918a94797c218)
4129
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
4130
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4131
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4132
+ "name": name,
4133
+ }
4134
+ if value is not None:
4135
+ self._values["value"] = value
4136
+
4137
+ @builtins.property
4138
+ def name(self) -> builtins.str:
4139
+ '''The name of the environment variable.
4140
+
4141
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html#cfn-batch-jobdefinition-ekscontainerenvironmentvariable-name
4142
+ '''
4143
+ result = self._values.get("name")
4144
+ assert result is not None, "Required property 'name' is missing"
4145
+ return typing.cast(builtins.str, result)
4146
+
4147
+ @builtins.property
4148
+ def value(self) -> typing.Optional[builtins.str]:
4149
+ '''The value of the environment variable.
4150
+
4151
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html#cfn-batch-jobdefinition-ekscontainerenvironmentvariable-value
4152
+ '''
4153
+ result = self._values.get("value")
4154
+ return typing.cast(typing.Optional[builtins.str], result)
4155
+
4156
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4157
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4158
+
4159
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4160
+ return not (rhs == self)
4161
+
4162
+ def __repr__(self) -> str:
4163
+ return "EksContainerEnvironmentVariableProperty(%s)" % ", ".join(
4164
+ k + "=" + repr(v) for k, v in self._values.items()
4165
+ )
4166
+
4167
+ @jsii.data_type(
4168
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.EksContainerProperty",
4169
+ jsii_struct_bases=[],
4170
+ name_mapping={
4171
+ "image": "image",
4172
+ "args": "args",
4173
+ "command": "command",
4174
+ "env": "env",
4175
+ "image_pull_policy": "imagePullPolicy",
4176
+ "name": "name",
4177
+ "resources": "resources",
4178
+ "security_context": "securityContext",
4179
+ "volume_mounts": "volumeMounts",
4180
+ },
4181
+ )
4182
+ class EksContainerProperty:
4183
+ def __init__(
4184
+ self,
4185
+ *,
4186
+ image: builtins.str,
4187
+ args: typing.Optional[typing.Sequence[builtins.str]] = None,
4188
+ command: typing.Optional[typing.Sequence[builtins.str]] = None,
4189
+ env: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksContainerEnvironmentVariableProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4190
+ image_pull_policy: typing.Optional[builtins.str] = None,
4191
+ name: typing.Optional[builtins.str] = None,
4192
+ resources: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.ResourcesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4193
+ security_context: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.SecurityContextProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4194
+ volume_mounts: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksContainerVolumeMountProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4195
+ ) -> None:
4196
+ '''EKS container properties are used in job definitions for Amazon EKS based job definitions to describe the properties for a container node in the pod that's launched as part of a job.
4197
+
4198
+ This can't be specified for Amazon ECS based job definitions.
4199
+
4200
+ :param image: The Docker image used to start the container.
4201
+ :param args: An array of arguments to the entrypoint. If this isn't specified, the ``CMD`` of the container image is used. This corresponds to the ``args`` member in the `Entrypoint <https://docs.aws.amazon.com/https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint>`_ portion of the `Pod <https://docs.aws.amazon.com/https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/>`_ in Kubernetes. Environment variable references are expanded using the container's environment. If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to " ``$(NAME1)`` " and the ``NAME1`` environment variable doesn't exist, the command string will remain " ``$(NAME1)`` ." ``$$`` is replaced with ``$`` , and the resulting string isn't expanded. For example, ``$$(VAR_NAME)`` is passed as ``$(VAR_NAME)`` whether or not the ``VAR_NAME`` environment variable exists. For more information, see `Dockerfile reference: CMD <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd>`_ and `Define a command and arguments for a pod <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/>`_ in the *Kubernetes documentation* .
4202
+ :param command: The entrypoint for the container. This isn't run within a shell. If this isn't specified, the ``ENTRYPOINT`` of the container image is used. Environment variable references are expanded using the container's environment. If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to " ``$(NAME1)`` " and the ``NAME1`` environment variable doesn't exist, the command string will remain " ``$(NAME1)`` ." ``$$`` is replaced with ``$`` and the resulting string isn't expanded. For example, ``$$(VAR_NAME)`` will be passed as ``$(VAR_NAME)`` whether or not the ``VAR_NAME`` environment variable exists. The entrypoint can't be updated. For more information, see `ENTRYPOINT <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint>`_ in the *Dockerfile reference* and `Define a command and arguments for a container <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/>`_ and `Entrypoint <https://docs.aws.amazon.com/https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint>`_ in the *Kubernetes documentation* .
4203
+ :param env: The environment variables to pass to a container. .. epigraph:: Environment variables cannot start with " ``AWS_BATCH`` ". This naming convention is reserved for variables that AWS Batch sets.
4204
+ :param image_pull_policy: The image pull policy for the container. Supported values are ``Always`` , ``IfNotPresent`` , and ``Never`` . This parameter defaults to ``IfNotPresent`` . However, if the ``:latest`` tag is specified, it defaults to ``Always`` . For more information, see `Updating images <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/containers/images/#updating-images>`_ in the *Kubernetes documentation* .
4205
+ :param name: The name of the container. If the name isn't specified, the default name " ``Default`` " is used. Each container in a pod must have a unique name.
4206
+ :param resources: The type and amount of resources to assign to a container. The supported resources include ``memory`` , ``cpu`` , and ``nvidia.com/gpu`` . For more information, see `Resource management for pods and containers <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/>`_ in the *Kubernetes documentation* .
3983
4207
  :param security_context: The security context for a job. For more information, see `Configure a security context for a pod or container <https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`_ in the *Kubernetes documentation* .
3984
4208
  :param volume_mounts: The volume mounts for the container. AWS Batch supports ``emptyDir`` , ``hostPath`` , and ``secret`` volume types. For more information about volumes and volume mounts in Kubernetes, see `Volumes <https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/storage/volumes/>`_ in the *Kubernetes documentation* .
3985
4209
 
@@ -4341,33 +4565,65 @@ class CfnJobDefinition(
4341
4565
  )],
4342
4566
  dns_policy="dnsPolicy",
4343
4567
  host_network=False,
4344
- metadata=batch.CfnJobDefinition.MetadataProperty(
4345
- labels=labels
4346
- ),
4347
- service_account_name="serviceAccountName",
4348
- volumes=[batch.CfnJobDefinition.EksVolumeProperty(
4349
- name="name",
4568
+ init_containers=[batch.CfnJobDefinition.EksContainerProperty(
4569
+ image="image",
4350
4570
 
4351
4571
  # the properties below are optional
4352
- empty_dir=batch.CfnJobDefinition.EmptyDirProperty(
4353
- medium="medium",
4354
- size_limit="sizeLimit"
4355
- ),
4356
- host_path=batch.CfnJobDefinition.HostPathProperty(
4357
- path="path"
4358
- ),
4359
- secret=batch.CfnJobDefinition.EksSecretProperty(
4360
- secret_name="secretName",
4572
+ args=["args"],
4573
+ command=["command"],
4574
+ env=[batch.CfnJobDefinition.EksContainerEnvironmentVariableProperty(
4575
+ name="name",
4361
4576
 
4362
4577
  # the properties below are optional
4363
- optional=False
4364
- )
4365
- )]
4366
- )
4367
- )
4368
- '''
4369
- if __debug__:
4370
- type_hints = typing.get_type_hints(_typecheckingstub__ab4acc4a05a00897faf964911a9c5d642ebccbae43237575ad3b0b27ecb3ee74)
4578
+ value="value"
4579
+ )],
4580
+ image_pull_policy="imagePullPolicy",
4581
+ name="name",
4582
+ resources=batch.CfnJobDefinition.ResourcesProperty(
4583
+ limits=limits,
4584
+ requests=requests
4585
+ ),
4586
+ security_context=batch.CfnJobDefinition.SecurityContextProperty(
4587
+ privileged=False,
4588
+ read_only_root_filesystem=False,
4589
+ run_as_group=123,
4590
+ run_as_non_root=False,
4591
+ run_as_user=123
4592
+ ),
4593
+ volume_mounts=[batch.CfnJobDefinition.EksContainerVolumeMountProperty(
4594
+ mount_path="mountPath",
4595
+ name="name",
4596
+ read_only=False
4597
+ )]
4598
+ )],
4599
+ metadata=batch.CfnJobDefinition.MetadataProperty(
4600
+ labels=labels
4601
+ ),
4602
+ service_account_name="serviceAccountName",
4603
+ share_process_namespace=False,
4604
+ volumes=[batch.CfnJobDefinition.EksVolumeProperty(
4605
+ name="name",
4606
+
4607
+ # the properties below are optional
4608
+ empty_dir=batch.CfnJobDefinition.EmptyDirProperty(
4609
+ medium="medium",
4610
+ size_limit="sizeLimit"
4611
+ ),
4612
+ host_path=batch.CfnJobDefinition.HostPathProperty(
4613
+ path="path"
4614
+ ),
4615
+ secret=batch.CfnJobDefinition.EksSecretProperty(
4616
+ secret_name="secretName",
4617
+
4618
+ # the properties below are optional
4619
+ optional=False
4620
+ )
4621
+ )]
4622
+ )
4623
+ )
4624
+ '''
4625
+ if __debug__:
4626
+ type_hints = typing.get_type_hints(_typecheckingstub__ab4acc4a05a00897faf964911a9c5d642ebccbae43237575ad3b0b27ecb3ee74)
4371
4627
  check_type(argname="argument pod_properties", value=pod_properties, expected_type=type_hints["pod_properties"])
4372
4628
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4373
4629
  if pod_properties is not None:
@@ -5697,7 +5953,113 @@ class CfnJobDefinition(
5697
5953
  ),
5698
5954
  name="name"
5699
5955
  )]
5700
- )
5956
+ ),
5957
+ ecs_properties=batch.CfnJobDefinition.EcsPropertiesProperty(
5958
+ task_properties=[batch.CfnJobDefinition.EcsTaskPropertiesProperty(
5959
+ containers=[batch.CfnJobDefinition.TaskContainerPropertiesProperty(
5960
+ image="image",
5961
+
5962
+ # the properties below are optional
5963
+ command=["command"],
5964
+ depends_on=[batch.CfnJobDefinition.TaskContainerDependencyProperty(
5965
+ condition="condition",
5966
+ container_name="containerName"
5967
+ )],
5968
+ environment=[batch.CfnJobDefinition.EnvironmentProperty(
5969
+ name="name",
5970
+ value="value"
5971
+ )],
5972
+ essential=False,
5973
+ linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
5974
+ devices=[batch.CfnJobDefinition.DeviceProperty(
5975
+ container_path="containerPath",
5976
+ host_path="hostPath",
5977
+ permissions=["permissions"]
5978
+ )],
5979
+ init_process_enabled=False,
5980
+ max_swap=123,
5981
+ shared_memory_size=123,
5982
+ swappiness=123,
5983
+ tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
5984
+ container_path="containerPath",
5985
+ size=123,
5986
+
5987
+ # the properties below are optional
5988
+ mount_options=["mountOptions"]
5989
+ )]
5990
+ ),
5991
+ log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
5992
+ log_driver="logDriver",
5993
+
5994
+ # the properties below are optional
5995
+ options=options,
5996
+ secret_options=[batch.CfnJobDefinition.SecretProperty(
5997
+ name="name",
5998
+ value_from="valueFrom"
5999
+ )]
6000
+ ),
6001
+ mount_points=[batch.CfnJobDefinition.MountPointsProperty(
6002
+ container_path="containerPath",
6003
+ read_only=False,
6004
+ source_volume="sourceVolume"
6005
+ )],
6006
+ name="name",
6007
+ privileged=False,
6008
+ readonly_root_filesystem=False,
6009
+ repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
6010
+ credentials_parameter="credentialsParameter"
6011
+ ),
6012
+ resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
6013
+ type="type",
6014
+ value="value"
6015
+ )],
6016
+ secrets=[batch.CfnJobDefinition.SecretProperty(
6017
+ name="name",
6018
+ value_from="valueFrom"
6019
+ )],
6020
+ ulimits=[batch.CfnJobDefinition.UlimitProperty(
6021
+ hard_limit=123,
6022
+ name="name",
6023
+ soft_limit=123
6024
+ )],
6025
+ user="user"
6026
+ )],
6027
+ ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
6028
+ size_in_gi_b=123
6029
+ ),
6030
+ execution_role_arn="executionRoleArn",
6031
+ ipc_mode="ipcMode",
6032
+ network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
6033
+ assign_public_ip="assignPublicIp"
6034
+ ),
6035
+ pid_mode="pidMode",
6036
+ platform_version="platformVersion",
6037
+ runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
6038
+ cpu_architecture="cpuArchitecture",
6039
+ operating_system_family="operatingSystemFamily"
6040
+ ),
6041
+ task_role_arn="taskRoleArn",
6042
+ volumes=[batch.CfnJobDefinition.VolumesProperty(
6043
+ efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
6044
+ file_system_id="fileSystemId",
6045
+
6046
+ # the properties below are optional
6047
+ authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
6048
+ access_point_id="accessPointId",
6049
+ iam="iam"
6050
+ ),
6051
+ root_directory="rootDirectory",
6052
+ transit_encryption="transitEncryption",
6053
+ transit_encryption_port=123
6054
+ ),
6055
+ host=batch.CfnJobDefinition.VolumesHostProperty(
6056
+ source_path="sourcePath"
6057
+ ),
6058
+ name="name"
6059
+ )]
6060
+ )]
6061
+ ),
6062
+ instance_types=["instanceTypes"]
5701
6063
  )],
5702
6064
  num_nodes=123
5703
6065
  )
@@ -5761,7 +6123,12 @@ class CfnJobDefinition(
5761
6123
  @jsii.data_type(
5762
6124
  jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.NodeRangePropertyProperty",
5763
6125
  jsii_struct_bases=[],
5764
- name_mapping={"target_nodes": "targetNodes", "container": "container"},
6126
+ name_mapping={
6127
+ "target_nodes": "targetNodes",
6128
+ "container": "container",
6129
+ "ecs_properties": "ecsProperties",
6130
+ "instance_types": "instanceTypes",
6131
+ },
5765
6132
  )
5766
6133
  class NodeRangePropertyProperty:
5767
6134
  def __init__(
@@ -5769,11 +6136,15 @@ class CfnJobDefinition(
5769
6136
  *,
5770
6137
  target_nodes: builtins.str,
5771
6138
  container: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.ContainerPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6139
+ ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EcsPropertiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6140
+ instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
5772
6141
  ) -> None:
5773
6142
  '''This is an object that represents the properties of the node range for a multi-node parallel job.
5774
6143
 
5775
6144
  :param target_nodes: The range of nodes, using node index values. A range of ``0:3`` indicates nodes with index values of ``0`` through ``3`` . If the starting range value is omitted ( ``:n`` ), then ``0`` is used to start the range. If the ending range value is omitted ( ``n:`` ), then the highest possible node index is used to end the range. Your accumulative node ranges must account for all nodes ( ``0:n`` ). You can nest node ranges (for example, ``0:10`` and ``4:5`` ). In this case, the ``4:5`` range properties override the ``0:10`` properties.
5776
6145
  :param container: The container details for the node range.
6146
+ :param ecs_properties: This is an object that represents the properties of the node range for a multi-node parallel job.
6147
+ :param instance_types: The instance types of the underlying host infrastructure of a multi-node parallel job. .. epigraph:: This parameter isn't applicable to jobs that are running on Fargate resources. In addition, this list object is currently limited to one element.
5777
6148
 
5778
6149
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html
5779
6150
  :exampleMetadata: fixture=_generated
@@ -5887,18 +6258,130 @@ class CfnJobDefinition(
5887
6258
  ),
5888
6259
  name="name"
5889
6260
  )]
5890
- )
6261
+ ),
6262
+ ecs_properties=batch.CfnJobDefinition.EcsPropertiesProperty(
6263
+ task_properties=[batch.CfnJobDefinition.EcsTaskPropertiesProperty(
6264
+ containers=[batch.CfnJobDefinition.TaskContainerPropertiesProperty(
6265
+ image="image",
6266
+
6267
+ # the properties below are optional
6268
+ command=["command"],
6269
+ depends_on=[batch.CfnJobDefinition.TaskContainerDependencyProperty(
6270
+ condition="condition",
6271
+ container_name="containerName"
6272
+ )],
6273
+ environment=[batch.CfnJobDefinition.EnvironmentProperty(
6274
+ name="name",
6275
+ value="value"
6276
+ )],
6277
+ essential=False,
6278
+ linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
6279
+ devices=[batch.CfnJobDefinition.DeviceProperty(
6280
+ container_path="containerPath",
6281
+ host_path="hostPath",
6282
+ permissions=["permissions"]
6283
+ )],
6284
+ init_process_enabled=False,
6285
+ max_swap=123,
6286
+ shared_memory_size=123,
6287
+ swappiness=123,
6288
+ tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
6289
+ container_path="containerPath",
6290
+ size=123,
6291
+
6292
+ # the properties below are optional
6293
+ mount_options=["mountOptions"]
6294
+ )]
6295
+ ),
6296
+ log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
6297
+ log_driver="logDriver",
6298
+
6299
+ # the properties below are optional
6300
+ options=options,
6301
+ secret_options=[batch.CfnJobDefinition.SecretProperty(
6302
+ name="name",
6303
+ value_from="valueFrom"
6304
+ )]
6305
+ ),
6306
+ mount_points=[batch.CfnJobDefinition.MountPointsProperty(
6307
+ container_path="containerPath",
6308
+ read_only=False,
6309
+ source_volume="sourceVolume"
6310
+ )],
6311
+ name="name",
6312
+ privileged=False,
6313
+ readonly_root_filesystem=False,
6314
+ repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
6315
+ credentials_parameter="credentialsParameter"
6316
+ ),
6317
+ resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
6318
+ type="type",
6319
+ value="value"
6320
+ )],
6321
+ secrets=[batch.CfnJobDefinition.SecretProperty(
6322
+ name="name",
6323
+ value_from="valueFrom"
6324
+ )],
6325
+ ulimits=[batch.CfnJobDefinition.UlimitProperty(
6326
+ hard_limit=123,
6327
+ name="name",
6328
+ soft_limit=123
6329
+ )],
6330
+ user="user"
6331
+ )],
6332
+ ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
6333
+ size_in_gi_b=123
6334
+ ),
6335
+ execution_role_arn="executionRoleArn",
6336
+ ipc_mode="ipcMode",
6337
+ network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
6338
+ assign_public_ip="assignPublicIp"
6339
+ ),
6340
+ pid_mode="pidMode",
6341
+ platform_version="platformVersion",
6342
+ runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
6343
+ cpu_architecture="cpuArchitecture",
6344
+ operating_system_family="operatingSystemFamily"
6345
+ ),
6346
+ task_role_arn="taskRoleArn",
6347
+ volumes=[batch.CfnJobDefinition.VolumesProperty(
6348
+ efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
6349
+ file_system_id="fileSystemId",
6350
+
6351
+ # the properties below are optional
6352
+ authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
6353
+ access_point_id="accessPointId",
6354
+ iam="iam"
6355
+ ),
6356
+ root_directory="rootDirectory",
6357
+ transit_encryption="transitEncryption",
6358
+ transit_encryption_port=123
6359
+ ),
6360
+ host=batch.CfnJobDefinition.VolumesHostProperty(
6361
+ source_path="sourcePath"
6362
+ ),
6363
+ name="name"
6364
+ )]
6365
+ )]
6366
+ ),
6367
+ instance_types=["instanceTypes"]
5891
6368
  )
5892
6369
  '''
5893
6370
  if __debug__:
5894
6371
  type_hints = typing.get_type_hints(_typecheckingstub__005c21025a81827c3f5ed456b171eb7ffdf652583c7da0ff6ff67186436afeee)
5895
6372
  check_type(argname="argument target_nodes", value=target_nodes, expected_type=type_hints["target_nodes"])
5896
6373
  check_type(argname="argument container", value=container, expected_type=type_hints["container"])
6374
+ check_type(argname="argument ecs_properties", value=ecs_properties, expected_type=type_hints["ecs_properties"])
6375
+ check_type(argname="argument instance_types", value=instance_types, expected_type=type_hints["instance_types"])
5897
6376
  self._values: typing.Dict[builtins.str, typing.Any] = {
5898
6377
  "target_nodes": target_nodes,
5899
6378
  }
5900
6379
  if container is not None:
5901
6380
  self._values["container"] = container
6381
+ if ecs_properties is not None:
6382
+ self._values["ecs_properties"] = ecs_properties
6383
+ if instance_types is not None:
6384
+ self._values["instance_types"] = instance_types
5902
6385
 
5903
6386
  @builtins.property
5904
6387
  def target_nodes(self) -> builtins.str:
@@ -5923,6 +6406,32 @@ class CfnJobDefinition(
5923
6406
  result = self._values.get("container")
5924
6407
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.ContainerPropertiesProperty"]], result)
5925
6408
 
6409
+ @builtins.property
6410
+ def ecs_properties(
6411
+ self,
6412
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsPropertiesProperty"]]:
6413
+ '''This is an object that represents the properties of the node range for a multi-node parallel job.
6414
+
6415
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-ecsproperties
6416
+ '''
6417
+ result = self._values.get("ecs_properties")
6418
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EcsPropertiesProperty"]], result)
6419
+
6420
+ @builtins.property
6421
+ def instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
6422
+ '''The instance types of the underlying host infrastructure of a multi-node parallel job.
6423
+
6424
+ .. epigraph::
6425
+
6426
+ This parameter isn't applicable to jobs that are running on Fargate resources.
6427
+
6428
+ In addition, this list object is currently limited to one element.
6429
+
6430
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-instancetypes
6431
+ '''
6432
+ result = self._values.get("instance_types")
6433
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
6434
+
5926
6435
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
5927
6436
  return isinstance(rhs, self.__class__) and rhs._values == self._values
5928
6437
 
@@ -5941,8 +6450,10 @@ class CfnJobDefinition(
5941
6450
  "containers": "containers",
5942
6451
  "dns_policy": "dnsPolicy",
5943
6452
  "host_network": "hostNetwork",
6453
+ "init_containers": "initContainers",
5944
6454
  "metadata": "metadata",
5945
6455
  "service_account_name": "serviceAccountName",
6456
+ "share_process_namespace": "shareProcessNamespace",
5946
6457
  "volumes": "volumes",
5947
6458
  },
5948
6459
  )
@@ -5953,8 +6464,10 @@ class CfnJobDefinition(
5953
6464
  containers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksContainerProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
5954
6465
  dns_policy: typing.Optional[builtins.str] = None,
5955
6466
  host_network: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
6467
+ init_containers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksContainerProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
5956
6468
  metadata: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.MetadataProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
5957
6469
  service_account_name: typing.Optional[builtins.str] = None,
6470
+ share_process_namespace: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
5958
6471
  volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EksVolumeProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
5959
6472
  ) -> None:
5960
6473
  '''The properties for the pod.
@@ -5962,8 +6475,10 @@ class CfnJobDefinition(
5962
6475
  :param containers: The properties of the container that's used on the Amazon EKS pod.
5963
6476
  :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``
5964
6477
  :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* .
6478
+ :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
5965
6479
  :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* .
5966
6480
  :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* .
6481
+ :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/>`_ .
5967
6482
  :param volumes: Specifies the volumes for a job definition that uses Amazon EKS resources.
5968
6483
 
5969
6484
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html
@@ -6013,10 +6528,42 @@ class CfnJobDefinition(
6013
6528
  )],
6014
6529
  dns_policy="dnsPolicy",
6015
6530
  host_network=False,
6531
+ init_containers=[batch.CfnJobDefinition.EksContainerProperty(
6532
+ image="image",
6533
+
6534
+ # the properties below are optional
6535
+ args=["args"],
6536
+ command=["command"],
6537
+ env=[batch.CfnJobDefinition.EksContainerEnvironmentVariableProperty(
6538
+ name="name",
6539
+
6540
+ # the properties below are optional
6541
+ value="value"
6542
+ )],
6543
+ image_pull_policy="imagePullPolicy",
6544
+ name="name",
6545
+ resources=batch.CfnJobDefinition.ResourcesProperty(
6546
+ limits=limits,
6547
+ requests=requests
6548
+ ),
6549
+ security_context=batch.CfnJobDefinition.SecurityContextProperty(
6550
+ privileged=False,
6551
+ read_only_root_filesystem=False,
6552
+ run_as_group=123,
6553
+ run_as_non_root=False,
6554
+ run_as_user=123
6555
+ ),
6556
+ volume_mounts=[batch.CfnJobDefinition.EksContainerVolumeMountProperty(
6557
+ mount_path="mountPath",
6558
+ name="name",
6559
+ read_only=False
6560
+ )]
6561
+ )],
6016
6562
  metadata=batch.CfnJobDefinition.MetadataProperty(
6017
6563
  labels=labels
6018
6564
  ),
6019
6565
  service_account_name="serviceAccountName",
6566
+ share_process_namespace=False,
6020
6567
  volumes=[batch.CfnJobDefinition.EksVolumeProperty(
6021
6568
  name="name",
6022
6569
 
@@ -6042,8 +6589,10 @@ class CfnJobDefinition(
6042
6589
  check_type(argname="argument containers", value=containers, expected_type=type_hints["containers"])
6043
6590
  check_type(argname="argument dns_policy", value=dns_policy, expected_type=type_hints["dns_policy"])
6044
6591
  check_type(argname="argument host_network", value=host_network, expected_type=type_hints["host_network"])
6592
+ check_type(argname="argument init_containers", value=init_containers, expected_type=type_hints["init_containers"])
6045
6593
  check_type(argname="argument metadata", value=metadata, expected_type=type_hints["metadata"])
6046
6594
  check_type(argname="argument service_account_name", value=service_account_name, expected_type=type_hints["service_account_name"])
6595
+ check_type(argname="argument share_process_namespace", value=share_process_namespace, expected_type=type_hints["share_process_namespace"])
6047
6596
  check_type(argname="argument volumes", value=volumes, expected_type=type_hints["volumes"])
6048
6597
  self._values: typing.Dict[builtins.str, typing.Any] = {}
6049
6598
  if containers is not None:
@@ -6052,10 +6601,14 @@ class CfnJobDefinition(
6052
6601
  self._values["dns_policy"] = dns_policy
6053
6602
  if host_network is not None:
6054
6603
  self._values["host_network"] = host_network
6604
+ if init_containers is not None:
6605
+ self._values["init_containers"] = init_containers
6055
6606
  if metadata is not None:
6056
6607
  self._values["metadata"] = metadata
6057
6608
  if service_account_name is not None:
6058
6609
  self._values["service_account_name"] = service_account_name
6610
+ if share_process_namespace is not None:
6611
+ self._values["share_process_namespace"] = share_process_namespace
6059
6612
  if volumes is not None:
6060
6613
  self._values["volumes"] = volumes
6061
6614
 
@@ -6096,6 +6649,22 @@ class CfnJobDefinition(
6096
6649
  result = self._values.get("host_network")
6097
6650
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
6098
6651
 
6652
+ @builtins.property
6653
+ def init_containers(
6654
+ self,
6655
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EksContainerProperty"]]]]:
6656
+ '''These containers run before application containers, always runs to completion, and must complete successfully before the next container starts.
6657
+
6658
+ 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* .
6659
+ .. epigraph::
6660
+
6661
+ This object is limited to 10 elements
6662
+
6663
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-initcontainers
6664
+ '''
6665
+ result = self._values.get("init_containers")
6666
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EksContainerProperty"]]]], result)
6667
+
6099
6668
  @builtins.property
6100
6669
  def metadata(
6101
6670
  self,
@@ -6120,6 +6689,19 @@ class CfnJobDefinition(
6120
6689
  result = self._values.get("service_account_name")
6121
6690
  return typing.cast(typing.Optional[builtins.str], result)
6122
6691
 
6692
+ @builtins.property
6693
+ def share_process_namespace(
6694
+ self,
6695
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
6696
+ '''Indicates if the processes in a container are shared, or visible, to other containers in the same pod.
6697
+
6698
+ 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/>`_ .
6699
+
6700
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-shareprocessnamespace
6701
+ '''
6702
+ result = self._values.get("share_process_namespace")
6703
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
6704
+
6123
6705
  @builtins.property
6124
6706
  def volumes(
6125
6707
  self,
@@ -6747,21 +7329,23 @@ class CfnJobDefinition(
6747
7329
  )
6748
7330
 
6749
7331
  @jsii.data_type(
6750
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.TimeoutProperty",
7332
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.TaskContainerDependencyProperty",
6751
7333
  jsii_struct_bases=[],
6752
- name_mapping={"attempt_duration_seconds": "attemptDurationSeconds"},
7334
+ name_mapping={"condition": "condition", "container_name": "containerName"},
6753
7335
  )
6754
- class TimeoutProperty:
7336
+ class TaskContainerDependencyProperty:
6755
7337
  def __init__(
6756
7338
  self,
6757
7339
  *,
6758
- attempt_duration_seconds: typing.Optional[jsii.Number] = None,
7340
+ condition: builtins.str,
7341
+ container_name: builtins.str,
6759
7342
  ) -> None:
6760
- '''An object that represents a job timeout configuration.
7343
+ '''A list of containers that this task depends on.
6761
7344
 
6762
- :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.
7345
+ :param condition: The dependency condition of the container. The following are the available conditions and their behavior:. - ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. - ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. - ``SUCCESS`` - This condition is the same as ``COMPLETE`` , but it also requires that the container exits with a zero status. This condition can't be set on an essential container.
7346
+ :param container_name: A unique identifier for the container.
6763
7347
 
6764
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html
7348
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerdependency.html
6765
7349
  :exampleMetadata: fixture=_generated
6766
7350
 
6767
7351
  Example::
@@ -6770,31 +7354,43 @@ class CfnJobDefinition(
6770
7354
  # The values are placeholders you should change.
6771
7355
  from aws_cdk import aws_batch as batch
6772
7356
 
6773
- timeout_property = batch.CfnJobDefinition.TimeoutProperty(
6774
- attempt_duration_seconds=123
7357
+ task_container_dependency_property = batch.CfnJobDefinition.TaskContainerDependencyProperty(
7358
+ condition="condition",
7359
+ container_name="containerName"
6775
7360
  )
6776
7361
  '''
6777
7362
  if __debug__:
6778
- type_hints = typing.get_type_hints(_typecheckingstub__5b035a85f593ff8b58d3fbc57a8614a7bc0d733c70f8504eab630022b6186187)
6779
- check_type(argname="argument attempt_duration_seconds", value=attempt_duration_seconds, expected_type=type_hints["attempt_duration_seconds"])
6780
- self._values: typing.Dict[builtins.str, typing.Any] = {}
6781
- if attempt_duration_seconds is not None:
6782
- self._values["attempt_duration_seconds"] = attempt_duration_seconds
7363
+ type_hints = typing.get_type_hints(_typecheckingstub__2f29cae294a8ef5e1db972a16fcfa25d5a4a34ac0b2cb14531b35c42dbf2d4e1)
7364
+ check_type(argname="argument condition", value=condition, expected_type=type_hints["condition"])
7365
+ check_type(argname="argument container_name", value=container_name, expected_type=type_hints["container_name"])
7366
+ self._values: typing.Dict[builtins.str, typing.Any] = {
7367
+ "condition": condition,
7368
+ "container_name": container_name,
7369
+ }
6783
7370
 
6784
7371
  @builtins.property
6785
- def attempt_duration_seconds(self) -> typing.Optional[jsii.Number]:
6786
- '''The job timeout time (in seconds) that's measured from the job attempt's ``startedAt`` timestamp.
7372
+ def condition(self) -> builtins.str:
7373
+ '''The dependency condition of the container. The following are the available conditions and their behavior:.
6787
7374
 
6788
- After this time passes, AWS Batch terminates your jobs if they aren't finished. The minimum value for the timeout is 60 seconds.
7375
+ - ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.
7376
+ - ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.
7377
+ - ``SUCCESS`` - This condition is the same as ``COMPLETE`` , but it also requires that the container exits with a zero status. This condition can't be set on an essential container.
6789
7378
 
6790
- For array jobs, the timeout applies to the child jobs, not to the parent array job.
7379
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerdependency.html#cfn-batch-jobdefinition-taskcontainerdependency-condition
7380
+ '''
7381
+ result = self._values.get("condition")
7382
+ assert result is not None, "Required property 'condition' is missing"
7383
+ return typing.cast(builtins.str, result)
6791
7384
 
6792
- For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the individual nodes.
7385
+ @builtins.property
7386
+ def container_name(self) -> builtins.str:
7387
+ '''A unique identifier for the container.
6793
7388
 
6794
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html#cfn-batch-jobdefinition-timeout-attemptdurationseconds
7389
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerdependency.html#cfn-batch-jobdefinition-taskcontainerdependency-containername
6795
7390
  '''
6796
- result = self._values.get("attempt_duration_seconds")
6797
- return typing.cast(typing.Optional[jsii.Number], result)
7391
+ result = self._values.get("container_name")
7392
+ assert result is not None, "Required property 'container_name' is missing"
7393
+ return typing.cast(builtins.str, result)
6798
7394
 
6799
7395
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
6800
7396
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -6803,38 +7399,75 @@ class CfnJobDefinition(
6803
7399
  return not (rhs == self)
6804
7400
 
6805
7401
  def __repr__(self) -> str:
6806
- return "TimeoutProperty(%s)" % ", ".join(
7402
+ return "TaskContainerDependencyProperty(%s)" % ", ".join(
6807
7403
  k + "=" + repr(v) for k, v in self._values.items()
6808
7404
  )
6809
7405
 
6810
7406
  @jsii.data_type(
6811
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.TmpfsProperty",
7407
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.TaskContainerPropertiesProperty",
6812
7408
  jsii_struct_bases=[],
6813
7409
  name_mapping={
6814
- "container_path": "containerPath",
6815
- "size": "size",
6816
- "mount_options": "mountOptions",
7410
+ "image": "image",
7411
+ "command": "command",
7412
+ "depends_on": "dependsOn",
7413
+ "environment": "environment",
7414
+ "essential": "essential",
7415
+ "linux_parameters": "linuxParameters",
7416
+ "log_configuration": "logConfiguration",
7417
+ "mount_points": "mountPoints",
7418
+ "name": "name",
7419
+ "privileged": "privileged",
7420
+ "readonly_root_filesystem": "readonlyRootFilesystem",
7421
+ "repository_credentials": "repositoryCredentials",
7422
+ "resource_requirements": "resourceRequirements",
7423
+ "secrets": "secrets",
7424
+ "ulimits": "ulimits",
7425
+ "user": "user",
6817
7426
  },
6818
7427
  )
6819
- class TmpfsProperty:
7428
+ class TaskContainerPropertiesProperty:
6820
7429
  def __init__(
6821
7430
  self,
6822
7431
  *,
6823
- container_path: builtins.str,
6824
- size: jsii.Number,
6825
- mount_options: typing.Optional[typing.Sequence[builtins.str]] = None,
6826
- ) -> None:
6827
- '''The container path, mount options, and size of the ``tmpfs`` mount.
6828
-
6829
- .. epigraph::
6830
-
6831
- This object isn't applicable to jobs that are running on Fargate resources.
6832
-
6833
- :param container_path: The absolute file path in the container where the ``tmpfs`` volume is mounted.
6834
- :param size: The size (in MiB) of the ``tmpfs`` volume.
6835
- :param mount_options: The list of ``tmpfs`` volume mount options. Valid values: " ``defaults`` " | " ``ro`` " | " ``rw`` " | " ``suid`` " | " ``nosuid`` " | " ``dev`` " | " ``nodev`` " | " ``exec`` " | " ``noexec`` " | " ``sync`` " | " ``async`` " | " ``dirsync`` " | " ``remount`` " | " ``mand`` " | " ``nomand`` " | " ``atime`` " | " ``noatime`` " | " ``diratime`` " | " ``nodiratime`` " | " ``bind`` " | " ``rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime`` " | " ``norelatime`` " | " ``strictatime`` " | " ``nostrictatime`` " | " ``mode`` " | " ``uid`` " | " ``gid`` " | " ``nr_inodes`` " | " ``nr_blocks`` " | " ``mpol`` "
7432
+ image: builtins.str,
7433
+ command: typing.Optional[typing.Sequence[builtins.str]] = None,
7434
+ depends_on: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.TaskContainerDependencyProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
7435
+ environment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EnvironmentProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
7436
+ essential: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7437
+ linux_parameters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.LinuxParametersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7438
+ log_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.LogConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7439
+ 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,
7440
+ name: typing.Optional[builtins.str] = None,
7441
+ privileged: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7442
+ readonly_root_filesystem: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7443
+ repository_credentials: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.RepositoryCredentialsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7444
+ resource_requirements: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.ResourceRequirementProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
7445
+ secrets: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.SecretProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
7446
+ ulimits: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.UlimitProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
7447
+ user: typing.Optional[builtins.str] = None,
7448
+ ) -> None:
7449
+ '''Container properties are used for Amazon ECS-based job definitions.
6836
7450
 
6837
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html
7451
+ These properties to describe the container that's launched as part of a job.
7452
+
7453
+ :param image: The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest`` . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` 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 ``IMAGE`` parameter of the `*docker run* <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ .
7454
+ :param command: The command that's passed to the container. This parameter maps to ``Cmd`` 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 ``COMMAND`` parameter to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/>`_ . For more information, see `Dockerfile reference: CMD <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd>`_ .
7455
+ :param depends_on: A list of containers that this container depends on.
7456
+ :param environment: The environment variables to pass to a container. This parameter maps to Env inthe `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 ``--env`` parameter to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/>`_ . .. epigraph:: We don't recommend using plaintext environment variables for sensitive information, such as credential data. > Environment variables cannot start with ``AWS_BATCH`` . This naming convention is reserved for variables that AWS Batch sets.
7457
+ :param essential: If the essential parameter of a container is marked as ``true`` , and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the ``essential`` parameter of a container is marked as false, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All jobs must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see `Application Architecture <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
7458
+ :param linux_parameters: Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information, see `KernelCapabilities <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html>`_ .
7459
+ :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.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--log-driver`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . By default, containers use the same logging driver that the Docker daemon uses. However the container can 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 about 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:: Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the ``LogConfiguration`` data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. 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 ``--format '{{.Server.APIVersion}}'`` .. 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* .
7460
+ :param mount_points: The mount points for data volumes in your container. 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>`_ . Windows containers can mount whole directories on the same drive as ``$env:ProgramData`` . Windows containers can't mount directories on a different drive, and mount point can't be across drives.
7461
+ :param name: The name of a container. The name can be used as a unique identifier to target your ``dependsOn`` and ``Overrides`` objects.
7462
+ :param privileged: When this parameter is ``true`` , the container is given elevated privileges on the host container instance (similar to the ``root`` user). This parameter maps to ``Privileged`` 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 ``--privileged`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . .. epigraph:: This parameter is not supported for Windows containers or tasks run on Fargate.
7463
+ :param readonly_root_filesystem: When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ``ReadonlyRootfs`` 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 ``--read-only`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . .. epigraph:: This parameter is not supported for Windows containers.
7464
+ :param repository_credentials: The private repository authentication credentials to use.
7465
+ :param resource_requirements: The type and amount of a resource to assign to a container. The only supported resource is a GPU.
7466
+ :param secrets: The secrets to pass to the container. For more information, see `Specifying Sensitive Data <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html>`_ in the Amazon Elastic Container Service Developer Guide.
7467
+ :param ulimits: A list of ``ulimits`` to set in the container. If a ``ulimit`` value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to ``Ulimits`` 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 ``--ulimit`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The ``nofile`` resource limit sets a restriction on the number of open files that a container can use. The default ``nofile`` soft limit is ``1024`` and the default hard limit is ``65535`` . 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 ``--format '{{.Server.APIVersion}}'`` .. epigraph:: This parameter is not supported for Windows containers.
7468
+ :param user: The user to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run. .. epigraph:: When running tasks using the ``host`` network mode, don't run containers using the ``root user (UID 0)`` . We recommend using a non-root user for better security. You can specify the ``user`` using the following formats. If specifying a UID or GID, you must specify it as a positive integer. - ``user`` - ``user:group`` - ``uid`` - ``uid:gid`` - ``user:gi`` - ``uid:group`` .. epigraph:: This parameter is not supported for Windows containers.
7469
+
7470
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html
6838
7471
  :exampleMetadata: fixture=_generated
6839
7472
 
6840
7473
  Example::
@@ -6843,152 +7476,371 @@ class CfnJobDefinition(
6843
7476
  # The values are placeholders you should change.
6844
7477
  from aws_cdk import aws_batch as batch
6845
7478
 
6846
- tmpfs_property = batch.CfnJobDefinition.TmpfsProperty(
6847
- container_path="containerPath",
6848
- size=123,
7479
+ # options: Any
7480
+
7481
+ task_container_properties_property = batch.CfnJobDefinition.TaskContainerPropertiesProperty(
7482
+ image="image",
6849
7483
 
6850
7484
  # the properties below are optional
6851
- mount_options=["mountOptions"]
7485
+ command=["command"],
7486
+ depends_on=[batch.CfnJobDefinition.TaskContainerDependencyProperty(
7487
+ condition="condition",
7488
+ container_name="containerName"
7489
+ )],
7490
+ environment=[batch.CfnJobDefinition.EnvironmentProperty(
7491
+ name="name",
7492
+ value="value"
7493
+ )],
7494
+ essential=False,
7495
+ linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
7496
+ devices=[batch.CfnJobDefinition.DeviceProperty(
7497
+ container_path="containerPath",
7498
+ host_path="hostPath",
7499
+ permissions=["permissions"]
7500
+ )],
7501
+ init_process_enabled=False,
7502
+ max_swap=123,
7503
+ shared_memory_size=123,
7504
+ swappiness=123,
7505
+ tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
7506
+ container_path="containerPath",
7507
+ size=123,
7508
+
7509
+ # the properties below are optional
7510
+ mount_options=["mountOptions"]
7511
+ )]
7512
+ ),
7513
+ log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
7514
+ log_driver="logDriver",
7515
+
7516
+ # the properties below are optional
7517
+ options=options,
7518
+ secret_options=[batch.CfnJobDefinition.SecretProperty(
7519
+ name="name",
7520
+ value_from="valueFrom"
7521
+ )]
7522
+ ),
7523
+ mount_points=[batch.CfnJobDefinition.MountPointsProperty(
7524
+ container_path="containerPath",
7525
+ read_only=False,
7526
+ source_volume="sourceVolume"
7527
+ )],
7528
+ name="name",
7529
+ privileged=False,
7530
+ readonly_root_filesystem=False,
7531
+ repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
7532
+ credentials_parameter="credentialsParameter"
7533
+ ),
7534
+ resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
7535
+ type="type",
7536
+ value="value"
7537
+ )],
7538
+ secrets=[batch.CfnJobDefinition.SecretProperty(
7539
+ name="name",
7540
+ value_from="valueFrom"
7541
+ )],
7542
+ ulimits=[batch.CfnJobDefinition.UlimitProperty(
7543
+ hard_limit=123,
7544
+ name="name",
7545
+ soft_limit=123
7546
+ )],
7547
+ user="user"
6852
7548
  )
6853
7549
  '''
6854
7550
  if __debug__:
6855
- type_hints = typing.get_type_hints(_typecheckingstub__7c16bfb0295986db06cd649d9ca6994f1d86d2d884185ad1eda92e6da68041e0)
6856
- check_type(argname="argument container_path", value=container_path, expected_type=type_hints["container_path"])
6857
- check_type(argname="argument size", value=size, expected_type=type_hints["size"])
6858
- check_type(argname="argument mount_options", value=mount_options, expected_type=type_hints["mount_options"])
7551
+ type_hints = typing.get_type_hints(_typecheckingstub__4946f5f042ef067bff74424b1b71c92ab13e52a7f47a4271e028110521b8a1ae)
7552
+ check_type(argname="argument image", value=image, expected_type=type_hints["image"])
7553
+ check_type(argname="argument command", value=command, expected_type=type_hints["command"])
7554
+ check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
7555
+ check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
7556
+ check_type(argname="argument essential", value=essential, expected_type=type_hints["essential"])
7557
+ check_type(argname="argument linux_parameters", value=linux_parameters, expected_type=type_hints["linux_parameters"])
7558
+ check_type(argname="argument log_configuration", value=log_configuration, expected_type=type_hints["log_configuration"])
7559
+ check_type(argname="argument mount_points", value=mount_points, expected_type=type_hints["mount_points"])
7560
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
7561
+ check_type(argname="argument privileged", value=privileged, expected_type=type_hints["privileged"])
7562
+ check_type(argname="argument readonly_root_filesystem", value=readonly_root_filesystem, expected_type=type_hints["readonly_root_filesystem"])
7563
+ check_type(argname="argument repository_credentials", value=repository_credentials, expected_type=type_hints["repository_credentials"])
7564
+ check_type(argname="argument resource_requirements", value=resource_requirements, expected_type=type_hints["resource_requirements"])
7565
+ check_type(argname="argument secrets", value=secrets, expected_type=type_hints["secrets"])
7566
+ check_type(argname="argument ulimits", value=ulimits, expected_type=type_hints["ulimits"])
7567
+ check_type(argname="argument user", value=user, expected_type=type_hints["user"])
6859
7568
  self._values: typing.Dict[builtins.str, typing.Any] = {
6860
- "container_path": container_path,
6861
- "size": size,
7569
+ "image": image,
6862
7570
  }
6863
- if mount_options is not None:
6864
- self._values["mount_options"] = mount_options
7571
+ if command is not None:
7572
+ self._values["command"] = command
7573
+ if depends_on is not None:
7574
+ self._values["depends_on"] = depends_on
7575
+ if environment is not None:
7576
+ self._values["environment"] = environment
7577
+ if essential is not None:
7578
+ self._values["essential"] = essential
7579
+ if linux_parameters is not None:
7580
+ self._values["linux_parameters"] = linux_parameters
7581
+ if log_configuration is not None:
7582
+ self._values["log_configuration"] = log_configuration
7583
+ if mount_points is not None:
7584
+ self._values["mount_points"] = mount_points
7585
+ if name is not None:
7586
+ self._values["name"] = name
7587
+ if privileged is not None:
7588
+ self._values["privileged"] = privileged
7589
+ if readonly_root_filesystem is not None:
7590
+ self._values["readonly_root_filesystem"] = readonly_root_filesystem
7591
+ if repository_credentials is not None:
7592
+ self._values["repository_credentials"] = repository_credentials
7593
+ if resource_requirements is not None:
7594
+ self._values["resource_requirements"] = resource_requirements
7595
+ if secrets is not None:
7596
+ self._values["secrets"] = secrets
7597
+ if ulimits is not None:
7598
+ self._values["ulimits"] = ulimits
7599
+ if user is not None:
7600
+ self._values["user"] = user
6865
7601
 
6866
7602
  @builtins.property
6867
- def container_path(self) -> builtins.str:
6868
- '''The absolute file path in the container where the ``tmpfs`` volume is mounted.
6869
-
6870
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-containerpath
6871
- '''
6872
- result = self._values.get("container_path")
6873
- assert result is not None, "Required property 'container_path' is missing"
6874
- return typing.cast(builtins.str, result)
7603
+ def image(self) -> builtins.str:
7604
+ '''The image used to start a container.
6875
7605
 
6876
- @builtins.property
6877
- def size(self) -> jsii.Number:
6878
- '''The size (in MiB) of the ``tmpfs`` volume.
7606
+ This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest`` . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` 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 ``IMAGE`` parameter of the `*docker run* <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ .
6879
7607
 
6880
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-size
7608
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-image
6881
7609
  '''
6882
- result = self._values.get("size")
6883
- assert result is not None, "Required property 'size' is missing"
6884
- return typing.cast(jsii.Number, result)
7610
+ result = self._values.get("image")
7611
+ assert result is not None, "Required property 'image' is missing"
7612
+ return typing.cast(builtins.str, result)
6885
7613
 
6886
7614
  @builtins.property
6887
- def mount_options(self) -> typing.Optional[typing.List[builtins.str]]:
6888
- '''The list of ``tmpfs`` volume mount options.
7615
+ def command(self) -> typing.Optional[typing.List[builtins.str]]:
7616
+ '''The command that's passed to the container.
6889
7617
 
6890
- Valid values: " ``defaults`` " | " ``ro`` " | " ``rw`` " | " ``suid`` " | " ``nosuid`` " | " ``dev`` " | " ``nodev`` " | " ``exec`` " | " ``noexec`` " | " ``sync`` " | " ``async`` " | " ``dirsync`` " | " ``remount`` " | " ``mand`` " | " ``nomand`` " | " ``atime`` " | " ``noatime`` " | " ``diratime`` " | " ``nodiratime`` " | " ``bind`` " | " ``rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime`` " | " ``norelatime`` " | " ``strictatime`` " | " ``nostrictatime`` " | " ``mode`` " | " ``uid`` " | " ``gid`` " | " ``nr_inodes`` " | " ``nr_blocks`` " | " ``mpol`` "
7618
+ This parameter maps to ``Cmd`` 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 ``COMMAND`` parameter to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/>`_ . For more information, see `Dockerfile reference: CMD <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd>`_ .
6891
7619
 
6892
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-mountoptions
7620
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-command
6893
7621
  '''
6894
- result = self._values.get("mount_options")
7622
+ result = self._values.get("command")
6895
7623
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
6896
7624
 
6897
- def __eq__(self, rhs: typing.Any) -> builtins.bool:
6898
- return isinstance(rhs, self.__class__) and rhs._values == self._values
6899
-
6900
- def __ne__(self, rhs: typing.Any) -> builtins.bool:
6901
- return not (rhs == self)
7625
+ @builtins.property
7626
+ def depends_on(
7627
+ self,
7628
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.TaskContainerDependencyProperty"]]]]:
7629
+ '''A list of containers that this container depends on.
6902
7630
 
6903
- def __repr__(self) -> str:
6904
- return "TmpfsProperty(%s)" % ", ".join(
6905
- k + "=" + repr(v) for k, v in self._values.items()
6906
- )
7631
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-dependson
7632
+ '''
7633
+ result = self._values.get("depends_on")
7634
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.TaskContainerDependencyProperty"]]]], result)
6907
7635
 
6908
- @jsii.data_type(
6909
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.UlimitProperty",
6910
- jsii_struct_bases=[],
6911
- name_mapping={
6912
- "hard_limit": "hardLimit",
6913
- "name": "name",
6914
- "soft_limit": "softLimit",
6915
- },
6916
- )
6917
- class UlimitProperty:
6918
- def __init__(
7636
+ @builtins.property
7637
+ def environment(
6919
7638
  self,
6920
- *,
6921
- hard_limit: jsii.Number,
6922
- name: builtins.str,
6923
- soft_limit: jsii.Number,
6924
- ) -> None:
6925
- '''The ``ulimit`` settings to pass to the container. For more information, see `Ulimit <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html>`_ .
7639
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EnvironmentProperty"]]]]:
7640
+ '''The environment variables to pass to a container.
6926
7641
 
7642
+ This parameter maps to Env inthe `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 ``--env`` parameter to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/>`_ .
6927
7643
  .. epigraph::
6928
7644
 
6929
- This object isn't applicable to jobs that are running on Fargate resources.
7645
+ We don't recommend using plaintext environment variables for sensitive information, such as credential data. > Environment variables cannot start with ``AWS_BATCH`` . This naming convention is reserved for variables that AWS Batch sets.
6930
7646
 
6931
- :param hard_limit: The hard limit for the ``ulimit`` type.
6932
- :param name: The ``type`` of the ``ulimit`` . Valid values are: ``core`` | ``cpu`` | ``data`` | ``fsize`` | ``locks`` | ``memlock`` | ``msgqueue`` | ``nice`` | ``nofile`` | ``nproc`` | ``rss`` | ``rtprio`` | ``rttime`` | ``sigpending`` | ``stack`` .
6933
- :param soft_limit: The soft limit for the ``ulimit`` type.
7647
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-environment
7648
+ '''
7649
+ result = self._values.get("environment")
7650
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EnvironmentProperty"]]]], result)
6934
7651
 
6935
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html
6936
- :exampleMetadata: fixture=_generated
7652
+ @builtins.property
7653
+ def essential(
7654
+ self,
7655
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
7656
+ '''If the essential parameter of a container is marked as ``true`` , and that container fails or stops for any reason, all other containers that are part of the task are stopped.
6937
7657
 
6938
- Example::
7658
+ If the ``essential`` parameter of a container is marked as false, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.
6939
7659
 
6940
- # The code below shows an example of how to instantiate this type.
6941
- # The values are placeholders you should change.
6942
- from aws_cdk import aws_batch as batch
6943
-
6944
- ulimit_property = batch.CfnJobDefinition.UlimitProperty(
6945
- hard_limit=123,
6946
- name="name",
6947
- soft_limit=123
6948
- )
7660
+ All jobs must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see `Application Architecture <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
7661
+
7662
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-essential
6949
7663
  '''
6950
- if __debug__:
6951
- type_hints = typing.get_type_hints(_typecheckingstub__9422053e6f2d5b223ad6edca9c1d424075ea7f34d3f55f01ed34ea8f4b51e8d4)
6952
- check_type(argname="argument hard_limit", value=hard_limit, expected_type=type_hints["hard_limit"])
6953
- check_type(argname="argument name", value=name, expected_type=type_hints["name"])
6954
- check_type(argname="argument soft_limit", value=soft_limit, expected_type=type_hints["soft_limit"])
6955
- self._values: typing.Dict[builtins.str, typing.Any] = {
6956
- "hard_limit": hard_limit,
6957
- "name": name,
6958
- "soft_limit": soft_limit,
6959
- }
7664
+ result = self._values.get("essential")
7665
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
6960
7666
 
6961
7667
  @builtins.property
6962
- def hard_limit(self) -> jsii.Number:
6963
- '''The hard limit for the ``ulimit`` type.
7668
+ def linux_parameters(
7669
+ self,
7670
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.LinuxParametersProperty"]]:
7671
+ '''Linux-specific modifications that are applied to the container, such as Linux kernel capabilities.
6964
7672
 
6965
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-hardlimit
7673
+ For more information, see `KernelCapabilities <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html>`_ .
7674
+
7675
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-linuxparameters
6966
7676
  '''
6967
- result = self._values.get("hard_limit")
6968
- assert result is not None, "Required property 'hard_limit' is missing"
6969
- return typing.cast(jsii.Number, result)
7677
+ result = self._values.get("linux_parameters")
7678
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.LinuxParametersProperty"]], result)
6970
7679
 
6971
7680
  @builtins.property
6972
- def name(self) -> builtins.str:
6973
- '''The ``type`` of the ``ulimit`` .
7681
+ def log_configuration(
7682
+ self,
7683
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.LogConfigurationProperty"]]:
7684
+ '''The log configuration specification for the container.
6974
7685
 
6975
- Valid values are: ``core`` | ``cpu`` | ``data`` | ``fsize`` | ``locks`` | ``memlock`` | ``msgqueue`` | ``nice`` | ``nofile`` | ``nproc`` | ``rss`` | ``rtprio`` | ``rttime`` | ``sigpending`` | ``stack`` .
7686
+ This parameter maps to ``LogConfig`` 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 ``--log-driver`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ .
6976
7687
 
6977
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-name
6978
- '''
6979
- result = self._values.get("name")
6980
- assert result is not None, "Required property 'name' is missing"
6981
- return typing.cast(builtins.str, result)
7688
+ By default, containers use the same logging driver that the Docker daemon uses. However the container can 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 about 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* .
7689
+ .. epigraph::
6982
7690
 
6983
- @builtins.property
6984
- def soft_limit(self) -> jsii.Number:
6985
- '''The soft limit for the ``ulimit`` type.
7691
+ Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the ``LogConfiguration`` data type). Additional log drivers may be available in future releases of the Amazon ECS container agent.
6986
7692
 
6987
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-softlimit
7693
+ 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 ``--format '{{.Server.APIVersion}}'``
7694
+ .. epigraph::
7695
+
7696
+ 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* .
7697
+
7698
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-logconfiguration
6988
7699
  '''
6989
- result = self._values.get("soft_limit")
6990
- assert result is not None, "Required property 'soft_limit' is missing"
6991
- return typing.cast(jsii.Number, result)
7700
+ result = self._values.get("log_configuration")
7701
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.LogConfigurationProperty"]], result)
7702
+
7703
+ @builtins.property
7704
+ def mount_points(
7705
+ self,
7706
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MountPointsProperty"]]]]:
7707
+ '''The mount points for data volumes in your container.
7708
+
7709
+ 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>`_ .
7710
+
7711
+ Windows containers can mount whole directories on the same drive as ``$env:ProgramData`` . Windows containers can't mount directories on a different drive, and mount point can't be across drives.
7712
+
7713
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-mountpoints
7714
+ '''
7715
+ result = self._values.get("mount_points")
7716
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.MountPointsProperty"]]]], result)
7717
+
7718
+ @builtins.property
7719
+ def name(self) -> typing.Optional[builtins.str]:
7720
+ '''The name of a container.
7721
+
7722
+ The name can be used as a unique identifier to target your ``dependsOn`` and ``Overrides`` objects.
7723
+
7724
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-name
7725
+ '''
7726
+ result = self._values.get("name")
7727
+ return typing.cast(typing.Optional[builtins.str], result)
7728
+
7729
+ @builtins.property
7730
+ def privileged(
7731
+ self,
7732
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
7733
+ '''When this parameter is ``true`` , the container is given elevated privileges on the host container instance (similar to the ``root`` user).
7734
+
7735
+ This parameter maps to ``Privileged`` 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 ``--privileged`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ .
7736
+ .. epigraph::
7737
+
7738
+ This parameter is not supported for Windows containers or tasks run on Fargate.
7739
+
7740
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-privileged
7741
+ '''
7742
+ result = self._values.get("privileged")
7743
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
7744
+
7745
+ @builtins.property
7746
+ def readonly_root_filesystem(
7747
+ self,
7748
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
7749
+ '''When this parameter is true, the container is given read-only access to its root file system.
7750
+
7751
+ This parameter maps to ``ReadonlyRootfs`` 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 ``--read-only`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ .
7752
+ .. epigraph::
7753
+
7754
+ This parameter is not supported for Windows containers.
7755
+
7756
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-readonlyrootfilesystem
7757
+ '''
7758
+ result = self._values.get("readonly_root_filesystem")
7759
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
7760
+
7761
+ @builtins.property
7762
+ def repository_credentials(
7763
+ self,
7764
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.RepositoryCredentialsProperty"]]:
7765
+ '''The private repository authentication credentials to use.
7766
+
7767
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-repositorycredentials
7768
+ '''
7769
+ result = self._values.get("repository_credentials")
7770
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.RepositoryCredentialsProperty"]], result)
7771
+
7772
+ @builtins.property
7773
+ def resource_requirements(
7774
+ self,
7775
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.ResourceRequirementProperty"]]]]:
7776
+ '''The type and amount of a resource to assign to a container.
7777
+
7778
+ The only supported resource is a GPU.
7779
+
7780
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-resourcerequirements
7781
+ '''
7782
+ result = self._values.get("resource_requirements")
7783
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.ResourceRequirementProperty"]]]], result)
7784
+
7785
+ @builtins.property
7786
+ def secrets(
7787
+ self,
7788
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.SecretProperty"]]]]:
7789
+ '''The secrets to pass to the container.
7790
+
7791
+ For more information, see `Specifying Sensitive Data <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html>`_ in the Amazon Elastic Container Service Developer Guide.
7792
+
7793
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-secrets
7794
+ '''
7795
+ result = self._values.get("secrets")
7796
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.SecretProperty"]]]], result)
7797
+
7798
+ @builtins.property
7799
+ def ulimits(
7800
+ self,
7801
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.UlimitProperty"]]]]:
7802
+ '''A list of ``ulimits`` to set in the container.
7803
+
7804
+ If a ``ulimit`` value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to ``Ulimits`` 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 ``--ulimit`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ .
7805
+
7806
+ Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The ``nofile`` resource limit sets a restriction on the number of open files that a container can use. The default ``nofile`` soft limit is ``1024`` and the default hard limit is ``65535`` .
7807
+
7808
+ 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 ``--format '{{.Server.APIVersion}}'``
7809
+ .. epigraph::
7810
+
7811
+ This parameter is not supported for Windows containers.
7812
+
7813
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-ulimits
7814
+ '''
7815
+ result = self._values.get("ulimits")
7816
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.UlimitProperty"]]]], result)
7817
+
7818
+ @builtins.property
7819
+ def user(self) -> typing.Optional[builtins.str]:
7820
+ '''The user to use inside the container.
7821
+
7822
+ This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.
7823
+ .. epigraph::
7824
+
7825
+ When running tasks using the ``host`` network mode, don't run containers using the ``root user (UID 0)`` . We recommend using a non-root user for better security.
7826
+
7827
+ You can specify the ``user`` using the following formats. If specifying a UID or GID, you must specify it as a positive integer.
7828
+
7829
+ - ``user``
7830
+ - ``user:group``
7831
+ - ``uid``
7832
+ - ``uid:gid``
7833
+ - ``user:gi``
7834
+ - ``uid:group``
7835
+
7836
+ .. epigraph::
7837
+
7838
+ This parameter is not supported for Windows containers.
7839
+
7840
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-user
7841
+ '''
7842
+ result = self._values.get("user")
7843
+ return typing.cast(typing.Optional[builtins.str], result)
6992
7844
 
6993
7845
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
6994
7846
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -6997,28 +7849,26 @@ class CfnJobDefinition(
6997
7849
  return not (rhs == self)
6998
7850
 
6999
7851
  def __repr__(self) -> str:
7000
- return "UlimitProperty(%s)" % ", ".join(
7852
+ return "TaskContainerPropertiesProperty(%s)" % ", ".join(
7001
7853
  k + "=" + repr(v) for k, v in self._values.items()
7002
7854
  )
7003
7855
 
7004
7856
  @jsii.data_type(
7005
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.VolumesHostProperty",
7857
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.TimeoutProperty",
7006
7858
  jsii_struct_bases=[],
7007
- name_mapping={"source_path": "sourcePath"},
7859
+ name_mapping={"attempt_duration_seconds": "attemptDurationSeconds"},
7008
7860
  )
7009
- class VolumesHostProperty:
7861
+ class TimeoutProperty:
7010
7862
  def __init__(
7011
7863
  self,
7012
7864
  *,
7013
- source_path: typing.Optional[builtins.str] = None,
7865
+ attempt_duration_seconds: typing.Optional[jsii.Number] = None,
7014
7866
  ) -> None:
7015
- '''Determine whether your data volume persists on the host container instance and where it's stored.
7016
-
7017
- 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.
7867
+ '''An object that represents a job timeout configuration.
7018
7868
 
7019
- :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.
7869
+ :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.
7020
7870
 
7021
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html
7871
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html
7022
7872
  :exampleMetadata: fixture=_generated
7023
7873
 
7024
7874
  Example::
@@ -7027,30 +7877,31 @@ class CfnJobDefinition(
7027
7877
  # The values are placeholders you should change.
7028
7878
  from aws_cdk import aws_batch as batch
7029
7879
 
7030
- volumes_host_property = batch.CfnJobDefinition.VolumesHostProperty(
7031
- source_path="sourcePath"
7880
+ timeout_property = batch.CfnJobDefinition.TimeoutProperty(
7881
+ attempt_duration_seconds=123
7032
7882
  )
7033
7883
  '''
7034
7884
  if __debug__:
7035
- type_hints = typing.get_type_hints(_typecheckingstub__1af85cd0eadb4e77501a8751a1c3fc18ec19311f49db5d0f921588460010456a)
7036
- check_type(argname="argument source_path", value=source_path, expected_type=type_hints["source_path"])
7885
+ type_hints = typing.get_type_hints(_typecheckingstub__5b035a85f593ff8b58d3fbc57a8614a7bc0d733c70f8504eab630022b6186187)
7886
+ check_type(argname="argument attempt_duration_seconds", value=attempt_duration_seconds, expected_type=type_hints["attempt_duration_seconds"])
7037
7887
  self._values: typing.Dict[builtins.str, typing.Any] = {}
7038
- if source_path is not None:
7039
- self._values["source_path"] = source_path
7888
+ if attempt_duration_seconds is not None:
7889
+ self._values["attempt_duration_seconds"] = attempt_duration_seconds
7040
7890
 
7041
7891
  @builtins.property
7042
- def source_path(self) -> typing.Optional[builtins.str]:
7043
- '''The path on the host container instance that's presented to the container.
7892
+ def attempt_duration_seconds(self) -> typing.Optional[jsii.Number]:
7893
+ '''The job timeout time (in seconds) that's measured from the job attempt's ``startedAt`` timestamp.
7044
7894
 
7045
- 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.
7046
- .. epigraph::
7895
+ After this time passes, AWS Batch terminates your jobs if they aren't finished. The minimum value for the timeout is 60 seconds.
7047
7896
 
7048
- This parameter isn't applicable to jobs that run on Fargate resources. Don't provide this for these jobs.
7897
+ For array jobs, the timeout applies to the child jobs, not to the parent array job.
7049
7898
 
7050
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html#cfn-batch-jobdefinition-volumeshost-sourcepath
7899
+ For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the individual nodes.
7900
+
7901
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html#cfn-batch-jobdefinition-timeout-attemptdurationseconds
7051
7902
  '''
7052
- result = self._values.get("source_path")
7053
- return typing.cast(typing.Optional[builtins.str], result)
7903
+ result = self._values.get("attempt_duration_seconds")
7904
+ return typing.cast(typing.Optional[jsii.Number], result)
7054
7905
 
7055
7906
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
7056
7907
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -7059,34 +7910,38 @@ class CfnJobDefinition(
7059
7910
  return not (rhs == self)
7060
7911
 
7061
7912
  def __repr__(self) -> str:
7062
- return "VolumesHostProperty(%s)" % ", ".join(
7913
+ return "TimeoutProperty(%s)" % ", ".join(
7063
7914
  k + "=" + repr(v) for k, v in self._values.items()
7064
7915
  )
7065
7916
 
7066
7917
  @jsii.data_type(
7067
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.VolumesProperty",
7918
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.TmpfsProperty",
7068
7919
  jsii_struct_bases=[],
7069
7920
  name_mapping={
7070
- "efs_volume_configuration": "efsVolumeConfiguration",
7071
- "host": "host",
7072
- "name": "name",
7921
+ "container_path": "containerPath",
7922
+ "size": "size",
7923
+ "mount_options": "mountOptions",
7073
7924
  },
7074
7925
  )
7075
- class VolumesProperty:
7926
+ class TmpfsProperty:
7076
7927
  def __init__(
7077
7928
  self,
7078
7929
  *,
7079
- efs_volume_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EfsVolumeConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7080
- host: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.VolumesHostProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7081
- name: typing.Optional[builtins.str] = None,
7930
+ container_path: builtins.str,
7931
+ size: jsii.Number,
7932
+ mount_options: typing.Optional[typing.Sequence[builtins.str]] = None,
7082
7933
  ) -> None:
7083
- '''A list of volumes that are associated with the job.
7934
+ '''The container path, mount options, and size of the ``tmpfs`` mount.
7084
7935
 
7085
- :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* .
7086
- :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.
7087
- :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`` .
7936
+ .. epigraph::
7088
7937
 
7089
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html
7938
+ This object isn't applicable to jobs that are running on Fargate resources.
7939
+
7940
+ :param container_path: The absolute file path in the container where the ``tmpfs`` volume is mounted.
7941
+ :param size: The size (in MiB) of the ``tmpfs`` volume.
7942
+ :param mount_options: The list of ``tmpfs`` volume mount options. Valid values: " ``defaults`` " | " ``ro`` " | " ``rw`` " | " ``suid`` " | " ``nosuid`` " | " ``dev`` " | " ``nodev`` " | " ``exec`` " | " ``noexec`` " | " ``sync`` " | " ``async`` " | " ``dirsync`` " | " ``remount`` " | " ``mand`` " | " ``nomand`` " | " ``atime`` " | " ``noatime`` " | " ``diratime`` " | " ``nodiratime`` " | " ``bind`` " | " ``rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime`` " | " ``norelatime`` " | " ``strictatime`` " | " ``nostrictatime`` " | " ``mode`` " | " ``uid`` " | " ``gid`` " | " ``nr_inodes`` " | " ``nr_blocks`` " | " ``mpol`` "
7943
+
7944
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html
7090
7945
  :exampleMetadata: fixture=_generated
7091
7946
 
7092
7947
  Example::
@@ -7095,77 +7950,152 @@ class CfnJobDefinition(
7095
7950
  # The values are placeholders you should change.
7096
7951
  from aws_cdk import aws_batch as batch
7097
7952
 
7098
- volumes_property = batch.CfnJobDefinition.VolumesProperty(
7099
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
7100
- file_system_id="fileSystemId",
7953
+ tmpfs_property = batch.CfnJobDefinition.TmpfsProperty(
7954
+ container_path="containerPath",
7955
+ size=123,
7101
7956
 
7102
- # the properties below are optional
7103
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
7104
- access_point_id="accessPointId",
7105
- iam="iam"
7106
- ),
7107
- root_directory="rootDirectory",
7108
- transit_encryption="transitEncryption",
7109
- transit_encryption_port=123
7110
- ),
7111
- host=batch.CfnJobDefinition.VolumesHostProperty(
7112
- source_path="sourcePath"
7113
- ),
7114
- name="name"
7957
+ # the properties below are optional
7958
+ mount_options=["mountOptions"]
7115
7959
  )
7116
7960
  '''
7117
7961
  if __debug__:
7118
- type_hints = typing.get_type_hints(_typecheckingstub__a4a9d90db8477ca586c3c89fb2ce5a548e9a3bb699ae625a80a8a105b02a362e)
7119
- check_type(argname="argument efs_volume_configuration", value=efs_volume_configuration, expected_type=type_hints["efs_volume_configuration"])
7120
- check_type(argname="argument host", value=host, expected_type=type_hints["host"])
7121
- check_type(argname="argument name", value=name, expected_type=type_hints["name"])
7122
- self._values: typing.Dict[builtins.str, typing.Any] = {}
7123
- if efs_volume_configuration is not None:
7124
- self._values["efs_volume_configuration"] = efs_volume_configuration
7125
- if host is not None:
7126
- self._values["host"] = host
7127
- if name is not None:
7128
- self._values["name"] = name
7962
+ type_hints = typing.get_type_hints(_typecheckingstub__7c16bfb0295986db06cd649d9ca6994f1d86d2d884185ad1eda92e6da68041e0)
7963
+ check_type(argname="argument container_path", value=container_path, expected_type=type_hints["container_path"])
7964
+ check_type(argname="argument size", value=size, expected_type=type_hints["size"])
7965
+ check_type(argname="argument mount_options", value=mount_options, expected_type=type_hints["mount_options"])
7966
+ self._values: typing.Dict[builtins.str, typing.Any] = {
7967
+ "container_path": container_path,
7968
+ "size": size,
7969
+ }
7970
+ if mount_options is not None:
7971
+ self._values["mount_options"] = mount_options
7129
7972
 
7130
7973
  @builtins.property
7131
- def efs_volume_configuration(
7132
- self,
7133
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EfsVolumeConfigurationProperty"]]:
7134
- '''This is used when you're using an Amazon Elastic File System file system for job storage.
7135
-
7136
- For more information, see `Amazon EFS Volumes <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html>`_ in the *AWS Batch User Guide* .
7974
+ def container_path(self) -> builtins.str:
7975
+ '''The absolute file path in the container where the ``tmpfs`` volume is mounted.
7137
7976
 
7138
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-efsvolumeconfiguration
7977
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-containerpath
7139
7978
  '''
7140
- result = self._values.get("efs_volume_configuration")
7141
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EfsVolumeConfigurationProperty"]], result)
7979
+ result = self._values.get("container_path")
7980
+ assert result is not None, "Required property 'container_path' is missing"
7981
+ return typing.cast(builtins.str, result)
7142
7982
 
7143
7983
  @builtins.property
7144
- def host(
7145
- self,
7146
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesHostProperty"]]:
7147
- '''The contents of the ``host`` parameter determine whether your data volume persists on the host container instance and where it's stored.
7148
-
7149
- 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.
7984
+ def size(self) -> jsii.Number:
7985
+ '''The size (in MiB) of the ``tmpfs`` volume.
7986
+
7987
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-size
7988
+ '''
7989
+ result = self._values.get("size")
7990
+ assert result is not None, "Required property 'size' is missing"
7991
+ return typing.cast(jsii.Number, result)
7992
+
7993
+ @builtins.property
7994
+ def mount_options(self) -> typing.Optional[typing.List[builtins.str]]:
7995
+ '''The list of ``tmpfs`` volume mount options.
7996
+
7997
+ Valid values: " ``defaults`` " | " ``ro`` " | " ``rw`` " | " ``suid`` " | " ``nosuid`` " | " ``dev`` " | " ``nodev`` " | " ``exec`` " | " ``noexec`` " | " ``sync`` " | " ``async`` " | " ``dirsync`` " | " ``remount`` " | " ``mand`` " | " ``nomand`` " | " ``atime`` " | " ``noatime`` " | " ``diratime`` " | " ``nodiratime`` " | " ``bind`` " | " ``rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime`` " | " ``norelatime`` " | " ``strictatime`` " | " ``nostrictatime`` " | " ``mode`` " | " ``uid`` " | " ``gid`` " | " ``nr_inodes`` " | " ``nr_blocks`` " | " ``mpol`` "
7998
+
7999
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-mountoptions
8000
+ '''
8001
+ result = self._values.get("mount_options")
8002
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
8003
+
8004
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
8005
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
8006
+
8007
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
8008
+ return not (rhs == self)
8009
+
8010
+ def __repr__(self) -> str:
8011
+ return "TmpfsProperty(%s)" % ", ".join(
8012
+ k + "=" + repr(v) for k, v in self._values.items()
8013
+ )
8014
+
8015
+ @jsii.data_type(
8016
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.UlimitProperty",
8017
+ jsii_struct_bases=[],
8018
+ name_mapping={
8019
+ "hard_limit": "hardLimit",
8020
+ "name": "name",
8021
+ "soft_limit": "softLimit",
8022
+ },
8023
+ )
8024
+ class UlimitProperty:
8025
+ def __init__(
8026
+ self,
8027
+ *,
8028
+ hard_limit: jsii.Number,
8029
+ name: builtins.str,
8030
+ soft_limit: jsii.Number,
8031
+ ) -> None:
8032
+ '''The ``ulimit`` settings to pass to the container. For more information, see `Ulimit <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html>`_ .
8033
+
7150
8034
  .. epigraph::
7151
8035
 
7152
- This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.
8036
+ This object isn't applicable to jobs that are running on Fargate resources.
7153
8037
 
7154
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-host
8038
+ :param hard_limit: The hard limit for the ``ulimit`` type.
8039
+ :param name: The ``type`` of the ``ulimit`` . Valid values are: ``core`` | ``cpu`` | ``data`` | ``fsize`` | ``locks`` | ``memlock`` | ``msgqueue`` | ``nice`` | ``nofile`` | ``nproc`` | ``rss`` | ``rtprio`` | ``rttime`` | ``sigpending`` | ``stack`` .
8040
+ :param soft_limit: The soft limit for the ``ulimit`` type.
8041
+
8042
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html
8043
+ :exampleMetadata: fixture=_generated
8044
+
8045
+ Example::
8046
+
8047
+ # The code below shows an example of how to instantiate this type.
8048
+ # The values are placeholders you should change.
8049
+ from aws_cdk import aws_batch as batch
8050
+
8051
+ ulimit_property = batch.CfnJobDefinition.UlimitProperty(
8052
+ hard_limit=123,
8053
+ name="name",
8054
+ soft_limit=123
8055
+ )
7155
8056
  '''
7156
- result = self._values.get("host")
7157
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesHostProperty"]], result)
8057
+ if __debug__:
8058
+ type_hints = typing.get_type_hints(_typecheckingstub__9422053e6f2d5b223ad6edca9c1d424075ea7f34d3f55f01ed34ea8f4b51e8d4)
8059
+ check_type(argname="argument hard_limit", value=hard_limit, expected_type=type_hints["hard_limit"])
8060
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
8061
+ check_type(argname="argument soft_limit", value=soft_limit, expected_type=type_hints["soft_limit"])
8062
+ self._values: typing.Dict[builtins.str, typing.Any] = {
8063
+ "hard_limit": hard_limit,
8064
+ "name": name,
8065
+ "soft_limit": soft_limit,
8066
+ }
7158
8067
 
7159
8068
  @builtins.property
7160
- def name(self) -> typing.Optional[builtins.str]:
7161
- '''The name of the volume.
8069
+ def hard_limit(self) -> jsii.Number:
8070
+ '''The hard limit for the ``ulimit`` type.
7162
8071
 
7163
- 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`` .
8072
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-hardlimit
8073
+ '''
8074
+ result = self._values.get("hard_limit")
8075
+ assert result is not None, "Required property 'hard_limit' is missing"
8076
+ return typing.cast(jsii.Number, result)
7164
8077
 
7165
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-name
8078
+ @builtins.property
8079
+ def name(self) -> builtins.str:
8080
+ '''The ``type`` of the ``ulimit`` .
8081
+
8082
+ Valid values are: ``core`` | ``cpu`` | ``data`` | ``fsize`` | ``locks`` | ``memlock`` | ``msgqueue`` | ``nice`` | ``nofile`` | ``nproc`` | ``rss`` | ``rtprio`` | ``rttime`` | ``sigpending`` | ``stack`` .
8083
+
8084
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-name
7166
8085
  '''
7167
8086
  result = self._values.get("name")
7168
- return typing.cast(typing.Optional[builtins.str], result)
8087
+ assert result is not None, "Required property 'name' is missing"
8088
+ return typing.cast(builtins.str, result)
8089
+
8090
+ @builtins.property
8091
+ def soft_limit(self) -> jsii.Number:
8092
+ '''The soft limit for the ``ulimit`` type.
8093
+
8094
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-softlimit
8095
+ '''
8096
+ result = self._values.get("soft_limit")
8097
+ assert result is not None, "Required property 'soft_limit' is missing"
8098
+ return typing.cast(jsii.Number, result)
7169
8099
 
7170
8100
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
7171
8101
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -7174,371 +8104,253 @@ class CfnJobDefinition(
7174
8104
  return not (rhs == self)
7175
8105
 
7176
8106
  def __repr__(self) -> str:
7177
- return "VolumesProperty(%s)" % ", ".join(
8107
+ return "UlimitProperty(%s)" % ", ".join(
7178
8108
  k + "=" + repr(v) for k, v in self._values.items()
7179
8109
  )
7180
8110
 
8111
+ @jsii.data_type(
8112
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.VolumesHostProperty",
8113
+ jsii_struct_bases=[],
8114
+ name_mapping={"source_path": "sourcePath"},
8115
+ )
8116
+ class VolumesHostProperty:
8117
+ def __init__(
8118
+ self,
8119
+ *,
8120
+ source_path: typing.Optional[builtins.str] = None,
8121
+ ) -> None:
8122
+ '''Determine whether your data volume persists on the host container instance and where it's stored.
7181
8123
 
7182
- @jsii.data_type(
7183
- jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinitionProps",
7184
- jsii_struct_bases=[],
7185
- name_mapping={
7186
- "type": "type",
7187
- "container_properties": "containerProperties",
7188
- "eks_properties": "eksProperties",
7189
- "job_definition_name": "jobDefinitionName",
7190
- "node_properties": "nodeProperties",
7191
- "parameters": "parameters",
7192
- "platform_capabilities": "platformCapabilities",
7193
- "propagate_tags": "propagateTags",
7194
- "retry_strategy": "retryStrategy",
7195
- "scheduling_priority": "schedulingPriority",
7196
- "tags": "tags",
7197
- "timeout": "timeout",
7198
- },
7199
- )
7200
- class CfnJobDefinitionProps:
7201
- def __init__(
7202
- self,
7203
- *,
7204
- type: builtins.str,
7205
- container_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ContainerPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7206
- eks_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EksPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7207
- job_definition_name: typing.Optional[builtins.str] = None,
7208
- node_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.NodePropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7209
- parameters: typing.Any = None,
7210
- platform_capabilities: typing.Optional[typing.Sequence[builtins.str]] = None,
7211
- propagate_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7212
- retry_strategy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.RetryStrategyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7213
- scheduling_priority: typing.Optional[jsii.Number] = None,
7214
- tags: typing.Any = None,
7215
- timeout: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.TimeoutProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7216
- ) -> None:
7217
- '''Properties for defining a ``CfnJobDefinition``.
8124
+ 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.
7218
8125
 
7219
- :param type: The type of job definition. For more information about multi-node parallel jobs, see `Creating a multi-node parallel job definition <https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html>`_ in the *AWS Batch User Guide* . - If the value is ``container`` , then one of the following is required: ``containerProperties`` , ``ecsProperties`` , or ``eksProperties`` . - If the value is ``multinode`` , then ``nodeProperties`` is required. .. epigraph:: If the job is run on Fargate resources, then ``multinode`` isn't supported.
7220
- :param container_properties: An object with properties specific to Amazon ECS-based jobs. When ``containerProperties`` is used in the job definition, it can't be used in addition to ``eksProperties`` , ``ecsProperties`` , or ``nodeProperties`` .
7221
- :param eks_properties: An object with properties that are specific to Amazon EKS-based jobs. When ``eksProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``ecsProperties`` , or ``nodeProperties`` .
7222
- :param job_definition_name: The name of the job definition.
7223
- :param node_properties: An object with properties that are specific to multi-node parallel jobs. When ``nodeProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``ecsProperties`` , or ``eksProperties`` . .. epigraph:: If the job runs on Fargate resources, don't specify ``nodeProperties`` . Use ``containerProperties`` instead.
7224
- :param parameters: Default parameters or parameter substitution placeholders that are set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a ``SubmitJob`` request override any corresponding parameter defaults from the job definition. For more information about specifying parameters, see `Job definition parameters <https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html>`_ in the *AWS Batch User Guide* .
7225
- :param platform_capabilities: The platform capabilities required by the job definition. If no value is specified, it defaults to ``EC2`` . Jobs run on Fargate resources specify ``FARGATE`` .
7226
- :param propagate_tags: Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the ``FAILED`` state.
7227
- :param retry_strategy: The retry strategy to use for failed jobs that are submitted with this job definition.
7228
- :param scheduling_priority: The scheduling priority of the job definition. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.
7229
- :param tags: The tags that are applied to the job definition.
7230
- :param timeout: The timeout time for jobs that are submitted with this job definition. After the amount of time you specify passes, AWS Batch terminates your jobs if they aren't finished.
8126
+ :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.
7231
8127
 
7232
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html
7233
- :exampleMetadata: fixture=_generated
8128
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html
8129
+ :exampleMetadata: fixture=_generated
7234
8130
 
7235
- Example::
8131
+ Example::
7236
8132
 
7237
- # The code below shows an example of how to instantiate this type.
7238
- # The values are placeholders you should change.
7239
- from aws_cdk import aws_batch as batch
7240
-
7241
- # labels: Any
7242
- # limits: Any
7243
- # options: Any
7244
- # parameters: Any
7245
- # requests: Any
7246
- # tags: Any
7247
-
7248
- cfn_job_definition_props = batch.CfnJobDefinitionProps(
7249
- type="type",
7250
-
7251
- # the properties below are optional
7252
- container_properties=batch.CfnJobDefinition.ContainerPropertiesProperty(
7253
- image="image",
7254
-
7255
- # the properties below are optional
7256
- command=["command"],
7257
- environment=[batch.CfnJobDefinition.EnvironmentProperty(
7258
- name="name",
7259
- value="value"
7260
- )],
7261
- ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
7262
- size_in_gi_b=123
7263
- ),
7264
- execution_role_arn="executionRoleArn",
7265
- fargate_platform_configuration=batch.CfnJobDefinition.FargatePlatformConfigurationProperty(
7266
- platform_version="platformVersion"
7267
- ),
7268
- instance_type="instanceType",
7269
- job_role_arn="jobRoleArn",
7270
- linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
7271
- devices=[batch.CfnJobDefinition.DeviceProperty(
7272
- container_path="containerPath",
7273
- host_path="hostPath",
7274
- permissions=["permissions"]
7275
- )],
7276
- init_process_enabled=False,
7277
- max_swap=123,
7278
- shared_memory_size=123,
7279
- swappiness=123,
7280
- tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
7281
- container_path="containerPath",
7282
- size=123,
7283
-
7284
- # the properties below are optional
7285
- mount_options=["mountOptions"]
7286
- )]
7287
- ),
7288
- log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
7289
- log_driver="logDriver",
7290
-
7291
- # the properties below are optional
7292
- options=options,
7293
- secret_options=[batch.CfnJobDefinition.SecretProperty(
7294
- name="name",
7295
- value_from="valueFrom"
7296
- )]
7297
- ),
7298
- memory=123,
7299
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
7300
- container_path="containerPath",
7301
- read_only=False,
7302
- source_volume="sourceVolume"
7303
- )],
7304
- network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
7305
- assign_public_ip="assignPublicIp"
7306
- ),
7307
- privileged=False,
7308
- readonly_root_filesystem=False,
7309
- repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
7310
- credentials_parameter="credentialsParameter"
7311
- ),
7312
- resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
7313
- type="type",
7314
- value="value"
7315
- )],
7316
- runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
7317
- cpu_architecture="cpuArchitecture",
7318
- operating_system_family="operatingSystemFamily"
7319
- ),
7320
- secrets=[batch.CfnJobDefinition.SecretProperty(
7321
- name="name",
7322
- value_from="valueFrom"
7323
- )],
7324
- ulimits=[batch.CfnJobDefinition.UlimitProperty(
7325
- hard_limit=123,
7326
- name="name",
7327
- soft_limit=123
7328
- )],
7329
- user="user",
7330
- vcpus=123,
7331
- volumes=[batch.CfnJobDefinition.VolumesProperty(
7332
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
7333
- file_system_id="fileSystemId",
7334
-
7335
- # the properties below are optional
7336
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
7337
- access_point_id="accessPointId",
7338
- iam="iam"
7339
- ),
7340
- root_directory="rootDirectory",
7341
- transit_encryption="transitEncryption",
7342
- transit_encryption_port=123
7343
- ),
7344
- host=batch.CfnJobDefinition.VolumesHostProperty(
7345
- source_path="sourcePath"
7346
- ),
7347
- name="name"
7348
- )]
7349
- ),
7350
- eks_properties=batch.CfnJobDefinition.EksPropertiesProperty(
7351
- pod_properties=batch.CfnJobDefinition.PodPropertiesProperty(
7352
- containers=[batch.CfnJobDefinition.EksContainerProperty(
7353
- image="image",
7354
-
7355
- # the properties below are optional
7356
- args=["args"],
7357
- command=["command"],
7358
- env=[batch.CfnJobDefinition.EksContainerEnvironmentVariableProperty(
7359
- name="name",
7360
-
7361
- # the properties below are optional
7362
- value="value"
7363
- )],
7364
- image_pull_policy="imagePullPolicy",
7365
- name="name",
7366
- resources=batch.CfnJobDefinition.ResourcesProperty(
7367
- limits=limits,
7368
- requests=requests
7369
- ),
7370
- security_context=batch.CfnJobDefinition.SecurityContextProperty(
7371
- privileged=False,
7372
- read_only_root_filesystem=False,
7373
- run_as_group=123,
7374
- run_as_non_root=False,
7375
- run_as_user=123
7376
- ),
7377
- volume_mounts=[batch.CfnJobDefinition.EksContainerVolumeMountProperty(
7378
- mount_path="mountPath",
7379
- name="name",
7380
- read_only=False
7381
- )]
7382
- )],
7383
- dns_policy="dnsPolicy",
7384
- host_network=False,
7385
- metadata=batch.CfnJobDefinition.MetadataProperty(
7386
- labels=labels
7387
- ),
7388
- service_account_name="serviceAccountName",
7389
- volumes=[batch.CfnJobDefinition.EksVolumeProperty(
7390
- name="name",
7391
-
7392
- # the properties below are optional
7393
- empty_dir=batch.CfnJobDefinition.EmptyDirProperty(
7394
- medium="medium",
7395
- size_limit="sizeLimit"
7396
- ),
7397
- host_path=batch.CfnJobDefinition.HostPathProperty(
7398
- path="path"
7399
- ),
7400
- secret=batch.CfnJobDefinition.EksSecretProperty(
7401
- secret_name="secretName",
7402
-
7403
- # the properties below are optional
7404
- optional=False
7405
- )
7406
- )]
7407
- )
7408
- ),
7409
- job_definition_name="jobDefinitionName",
7410
- node_properties=batch.CfnJobDefinition.NodePropertiesProperty(
7411
- main_node=123,
7412
- node_range_properties=[batch.CfnJobDefinition.NodeRangePropertyProperty(
7413
- target_nodes="targetNodes",
7414
-
7415
- # the properties below are optional
7416
- container=batch.CfnJobDefinition.ContainerPropertiesProperty(
7417
- image="image",
7418
-
7419
- # the properties below are optional
7420
- command=["command"],
7421
- environment=[batch.CfnJobDefinition.EnvironmentProperty(
7422
- name="name",
7423
- value="value"
7424
- )],
7425
- ephemeral_storage=batch.CfnJobDefinition.EphemeralStorageProperty(
7426
- size_in_gi_b=123
7427
- ),
7428
- execution_role_arn="executionRoleArn",
7429
- fargate_platform_configuration=batch.CfnJobDefinition.FargatePlatformConfigurationProperty(
7430
- platform_version="platformVersion"
7431
- ),
7432
- instance_type="instanceType",
7433
- job_role_arn="jobRoleArn",
7434
- linux_parameters=batch.CfnJobDefinition.LinuxParametersProperty(
7435
- devices=[batch.CfnJobDefinition.DeviceProperty(
7436
- container_path="containerPath",
7437
- host_path="hostPath",
7438
- permissions=["permissions"]
7439
- )],
7440
- init_process_enabled=False,
7441
- max_swap=123,
7442
- shared_memory_size=123,
7443
- swappiness=123,
7444
- tmpfs=[batch.CfnJobDefinition.TmpfsProperty(
7445
- container_path="containerPath",
7446
- size=123,
7447
-
7448
- # the properties below are optional
7449
- mount_options=["mountOptions"]
7450
- )]
7451
- ),
7452
- log_configuration=batch.CfnJobDefinition.LogConfigurationProperty(
7453
- log_driver="logDriver",
7454
-
7455
- # the properties below are optional
7456
- options=options,
7457
- secret_options=[batch.CfnJobDefinition.SecretProperty(
7458
- name="name",
7459
- value_from="valueFrom"
7460
- )]
7461
- ),
7462
- memory=123,
7463
- mount_points=[batch.CfnJobDefinition.MountPointsProperty(
7464
- container_path="containerPath",
7465
- read_only=False,
7466
- source_volume="sourceVolume"
7467
- )],
7468
- network_configuration=batch.CfnJobDefinition.NetworkConfigurationProperty(
7469
- assign_public_ip="assignPublicIp"
7470
- ),
7471
- privileged=False,
7472
- readonly_root_filesystem=False,
7473
- repository_credentials=batch.CfnJobDefinition.RepositoryCredentialsProperty(
7474
- credentials_parameter="credentialsParameter"
7475
- ),
7476
- resource_requirements=[batch.CfnJobDefinition.ResourceRequirementProperty(
7477
- type="type",
7478
- value="value"
7479
- )],
7480
- runtime_platform=batch.CfnJobDefinition.RuntimePlatformProperty(
7481
- cpu_architecture="cpuArchitecture",
7482
- operating_system_family="operatingSystemFamily"
7483
- ),
7484
- secrets=[batch.CfnJobDefinition.SecretProperty(
7485
- name="name",
7486
- value_from="valueFrom"
7487
- )],
7488
- ulimits=[batch.CfnJobDefinition.UlimitProperty(
7489
- hard_limit=123,
7490
- name="name",
7491
- soft_limit=123
7492
- )],
7493
- user="user",
7494
- vcpus=123,
7495
- volumes=[batch.CfnJobDefinition.VolumesProperty(
7496
- efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
7497
- file_system_id="fileSystemId",
7498
-
7499
- # the properties below are optional
7500
- authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
7501
- access_point_id="accessPointId",
7502
- iam="iam"
7503
- ),
7504
- root_directory="rootDirectory",
7505
- transit_encryption="transitEncryption",
7506
- transit_encryption_port=123
7507
- ),
7508
- host=batch.CfnJobDefinition.VolumesHostProperty(
7509
- source_path="sourcePath"
7510
- ),
7511
- name="name"
7512
- )]
7513
- )
7514
- )],
7515
- num_nodes=123
7516
- ),
7517
- parameters=parameters,
7518
- platform_capabilities=["platformCapabilities"],
7519
- propagate_tags=False,
7520
- retry_strategy=batch.CfnJobDefinition.RetryStrategyProperty(
7521
- attempts=123,
7522
- evaluate_on_exit=[batch.CfnJobDefinition.EvaluateOnExitProperty(
7523
- action="action",
7524
-
8133
+ # The code below shows an example of how to instantiate this type.
8134
+ # The values are placeholders you should change.
8135
+ from aws_cdk import aws_batch as batch
8136
+
8137
+ volumes_host_property = batch.CfnJobDefinition.VolumesHostProperty(
8138
+ source_path="sourcePath"
8139
+ )
8140
+ '''
8141
+ if __debug__:
8142
+ type_hints = typing.get_type_hints(_typecheckingstub__1af85cd0eadb4e77501a8751a1c3fc18ec19311f49db5d0f921588460010456a)
8143
+ check_type(argname="argument source_path", value=source_path, expected_type=type_hints["source_path"])
8144
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
8145
+ if source_path is not None:
8146
+ self._values["source_path"] = source_path
8147
+
8148
+ @builtins.property
8149
+ def source_path(self) -> typing.Optional[builtins.str]:
8150
+ '''The path on the host container instance that's presented to the container.
8151
+
8152
+ 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.
8153
+ .. epigraph::
8154
+
8155
+ This parameter isn't applicable to jobs that run on Fargate resources. Don't provide this for these jobs.
8156
+
8157
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html#cfn-batch-jobdefinition-volumeshost-sourcepath
8158
+ '''
8159
+ result = self._values.get("source_path")
8160
+ return typing.cast(typing.Optional[builtins.str], result)
8161
+
8162
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
8163
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
8164
+
8165
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
8166
+ return not (rhs == self)
8167
+
8168
+ def __repr__(self) -> str:
8169
+ return "VolumesHostProperty(%s)" % ", ".join(
8170
+ k + "=" + repr(v) for k, v in self._values.items()
8171
+ )
8172
+
8173
+ @jsii.data_type(
8174
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinition.VolumesProperty",
8175
+ jsii_struct_bases=[],
8176
+ name_mapping={
8177
+ "efs_volume_configuration": "efsVolumeConfiguration",
8178
+ "host": "host",
8179
+ "name": "name",
8180
+ },
8181
+ )
8182
+ class VolumesProperty:
8183
+ def __init__(
8184
+ self,
8185
+ *,
8186
+ efs_volume_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.EfsVolumeConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8187
+ host: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobDefinition.VolumesHostProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8188
+ name: typing.Optional[builtins.str] = None,
8189
+ ) -> None:
8190
+ '''A list of volumes that are associated with the job.
8191
+
8192
+ :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* .
8193
+ :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.
8194
+ :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`` .
8195
+
8196
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html
8197
+ :exampleMetadata: fixture=_generated
8198
+
8199
+ Example::
8200
+
8201
+ # The code below shows an example of how to instantiate this type.
8202
+ # The values are placeholders you should change.
8203
+ from aws_cdk import aws_batch as batch
8204
+
8205
+ volumes_property = batch.CfnJobDefinition.VolumesProperty(
8206
+ efs_volume_configuration=batch.CfnJobDefinition.EfsVolumeConfigurationProperty(
8207
+ file_system_id="fileSystemId",
8208
+
7525
8209
  # the properties below are optional
7526
- on_exit_code="onExitCode",
7527
- on_reason="onReason",
7528
- on_status_reason="onStatusReason"
7529
- )]
7530
- ),
7531
- scheduling_priority=123,
7532
- tags=tags,
7533
- timeout=batch.CfnJobDefinition.TimeoutProperty(
7534
- attempt_duration_seconds=123
8210
+ authorization_config=batch.CfnJobDefinition.AuthorizationConfigProperty(
8211
+ access_point_id="accessPointId",
8212
+ iam="iam"
8213
+ ),
8214
+ root_directory="rootDirectory",
8215
+ transit_encryption="transitEncryption",
8216
+ transit_encryption_port=123
8217
+ ),
8218
+ host=batch.CfnJobDefinition.VolumesHostProperty(
8219
+ source_path="sourcePath"
8220
+ ),
8221
+ name="name"
7535
8222
  )
8223
+ '''
8224
+ if __debug__:
8225
+ type_hints = typing.get_type_hints(_typecheckingstub__a4a9d90db8477ca586c3c89fb2ce5a548e9a3bb699ae625a80a8a105b02a362e)
8226
+ check_type(argname="argument efs_volume_configuration", value=efs_volume_configuration, expected_type=type_hints["efs_volume_configuration"])
8227
+ check_type(argname="argument host", value=host, expected_type=type_hints["host"])
8228
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
8229
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
8230
+ if efs_volume_configuration is not None:
8231
+ self._values["efs_volume_configuration"] = efs_volume_configuration
8232
+ if host is not None:
8233
+ self._values["host"] = host
8234
+ if name is not None:
8235
+ self._values["name"] = name
8236
+
8237
+ @builtins.property
8238
+ def efs_volume_configuration(
8239
+ self,
8240
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EfsVolumeConfigurationProperty"]]:
8241
+ '''This is used when you're using an Amazon Elastic File System file system for job storage.
8242
+
8243
+ For more information, see `Amazon EFS Volumes <https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html>`_ in the *AWS Batch User Guide* .
8244
+
8245
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-efsvolumeconfiguration
8246
+ '''
8247
+ result = self._values.get("efs_volume_configuration")
8248
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.EfsVolumeConfigurationProperty"]], result)
8249
+
8250
+ @builtins.property
8251
+ def host(
8252
+ self,
8253
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesHostProperty"]]:
8254
+ '''The contents of the ``host`` parameter determine whether your data volume persists on the host container instance and where it's stored.
8255
+
8256
+ 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.
8257
+ .. epigraph::
8258
+
8259
+ This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.
8260
+
8261
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-host
8262
+ '''
8263
+ result = self._values.get("host")
8264
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnJobDefinition.VolumesHostProperty"]], result)
8265
+
8266
+ @builtins.property
8267
+ def name(self) -> typing.Optional[builtins.str]:
8268
+ '''The name of the volume.
8269
+
8270
+ 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`` .
8271
+
8272
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-name
8273
+ '''
8274
+ result = self._values.get("name")
8275
+ return typing.cast(typing.Optional[builtins.str], result)
8276
+
8277
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
8278
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
8279
+
8280
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
8281
+ return not (rhs == self)
8282
+
8283
+ def __repr__(self) -> str:
8284
+ return "VolumesProperty(%s)" % ", ".join(
8285
+ k + "=" + repr(v) for k, v in self._values.items()
7536
8286
  )
8287
+
8288
+
8289
+ @jsii.data_type(
8290
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobDefinitionProps",
8291
+ jsii_struct_bases=[],
8292
+ name_mapping={
8293
+ "type": "type",
8294
+ "container_properties": "containerProperties",
8295
+ "ecs_properties": "ecsProperties",
8296
+ "eks_properties": "eksProperties",
8297
+ "job_definition_name": "jobDefinitionName",
8298
+ "node_properties": "nodeProperties",
8299
+ "parameters": "parameters",
8300
+ "platform_capabilities": "platformCapabilities",
8301
+ "propagate_tags": "propagateTags",
8302
+ "retry_strategy": "retryStrategy",
8303
+ "scheduling_priority": "schedulingPriority",
8304
+ "tags": "tags",
8305
+ "timeout": "timeout",
8306
+ },
8307
+ )
8308
+ class CfnJobDefinitionProps:
8309
+ def __init__(
8310
+ self,
8311
+ *,
8312
+ type: builtins.str,
8313
+ container_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ContainerPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8314
+ ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EcsPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8315
+ eks_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EksPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8316
+ job_definition_name: typing.Optional[builtins.str] = None,
8317
+ node_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.NodePropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8318
+ parameters: typing.Any = None,
8319
+ platform_capabilities: typing.Optional[typing.Sequence[builtins.str]] = None,
8320
+ propagate_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
8321
+ retry_strategy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.RetryStrategyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8322
+ scheduling_priority: typing.Optional[jsii.Number] = None,
8323
+ tags: typing.Any = None,
8324
+ timeout: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.TimeoutProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8325
+ ) -> None:
8326
+ '''Properties for defining a ``CfnJobDefinition``.
8327
+
8328
+ :param type: The type of job definition. For more information about multi-node parallel jobs, see `Creating a multi-node parallel job definition <https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html>`_ in the *AWS Batch User Guide* . - If the value is ``container`` , then one of the following is required: ``containerProperties`` , ``ecsProperties`` , or ``eksProperties`` . - If the value is ``multinode`` , then ``nodeProperties`` is required. .. epigraph:: If the job is run on Fargate resources, then ``multinode`` isn't supported.
8329
+ :param container_properties: An object with properties specific to Amazon ECS-based jobs. When ``containerProperties`` is used in the job definition, it can't be used in addition to ``eksProperties`` , ``ecsProperties`` , or ``nodeProperties`` .
8330
+ :param ecs_properties: An object that contains the properties for the Amazon ECS resources of a job.When ``ecsProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``eksProperties`` , or ``nodeProperties`` .
8331
+ :param eks_properties: An object with properties that are specific to Amazon EKS-based jobs. When ``eksProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``ecsProperties`` , or ``nodeProperties`` .
8332
+ :param job_definition_name: The name of the job definition.
8333
+ :param node_properties: An object with properties that are specific to multi-node parallel jobs. When ``nodeProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``ecsProperties`` , or ``eksProperties`` . .. epigraph:: If the job runs on Fargate resources, don't specify ``nodeProperties`` . Use ``containerProperties`` instead.
8334
+ :param parameters: Default parameters or parameter substitution placeholders that are set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a ``SubmitJob`` request override any corresponding parameter defaults from the job definition. For more information about specifying parameters, see `Job definition parameters <https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html>`_ in the *AWS Batch User Guide* .
8335
+ :param platform_capabilities: The platform capabilities required by the job definition. If no value is specified, it defaults to ``EC2`` . Jobs run on Fargate resources specify ``FARGATE`` .
8336
+ :param propagate_tags: Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the ``FAILED`` state.
8337
+ :param retry_strategy: The retry strategy to use for failed jobs that are submitted with this job definition.
8338
+ :param scheduling_priority: The scheduling priority of the job definition. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.
8339
+ :param tags: The tags that are applied to the job definition.
8340
+ :param timeout: The timeout time for jobs that are submitted with this job definition. After the amount of time you specify passes, AWS Batch terminates your jobs if they aren't finished.
8341
+
8342
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html
8343
+ :exampleMetadata: fixture=_generated
8344
+
8345
+ Example::
8346
+
8347
+
7537
8348
  '''
7538
8349
  if __debug__:
7539
8350
  type_hints = typing.get_type_hints(_typecheckingstub__ed150d027b29486332c3fd2205a51f3c6f64c25946114fb86a6eba38434e87c9)
7540
8351
  check_type(argname="argument type", value=type, expected_type=type_hints["type"])
7541
8352
  check_type(argname="argument container_properties", value=container_properties, expected_type=type_hints["container_properties"])
8353
+ check_type(argname="argument ecs_properties", value=ecs_properties, expected_type=type_hints["ecs_properties"])
7542
8354
  check_type(argname="argument eks_properties", value=eks_properties, expected_type=type_hints["eks_properties"])
7543
8355
  check_type(argname="argument job_definition_name", value=job_definition_name, expected_type=type_hints["job_definition_name"])
7544
8356
  check_type(argname="argument node_properties", value=node_properties, expected_type=type_hints["node_properties"])
@@ -7554,6 +8366,8 @@ class CfnJobDefinitionProps:
7554
8366
  }
7555
8367
  if container_properties is not None:
7556
8368
  self._values["container_properties"] = container_properties
8369
+ if ecs_properties is not None:
8370
+ self._values["ecs_properties"] = ecs_properties
7557
8371
  if eks_properties is not None:
7558
8372
  self._values["eks_properties"] = eks_properties
7559
8373
  if job_definition_name is not None:
@@ -7607,6 +8421,17 @@ class CfnJobDefinitionProps:
7607
8421
  result = self._values.get("container_properties")
7608
8422
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.ContainerPropertiesProperty]], result)
7609
8423
 
8424
+ @builtins.property
8425
+ def ecs_properties(
8426
+ self,
8427
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.EcsPropertiesProperty]]:
8428
+ '''An object that contains the properties for the Amazon ECS resources of a job.When ``ecsProperties`` is used in the job definition, it can't be used in addition to ``containerProperties`` , ``eksProperties`` , or ``nodeProperties`` .
8429
+
8430
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties
8431
+ '''
8432
+ result = self._values.get("ecs_properties")
8433
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.EcsPropertiesProperty]], result)
8434
+
7610
8435
  @builtins.property
7611
8436
  def eks_properties(
7612
8437
  self,
@@ -7765,6 +8590,12 @@ class CfnJobQueue(
7765
8590
 
7766
8591
  # the properties below are optional
7767
8592
  job_queue_name="jobQueueName",
8593
+ job_state_time_limit_actions=[batch.CfnJobQueue.JobStateTimeLimitActionProperty(
8594
+ action="action",
8595
+ max_time_seconds=123,
8596
+ reason="reason",
8597
+ state="state"
8598
+ )],
7768
8599
  scheduling_policy_arn="schedulingPolicyArn",
7769
8600
  state="state",
7770
8601
  tags={
@@ -7781,6 +8612,7 @@ class CfnJobQueue(
7781
8612
  compute_environment_order: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobQueue.ComputeEnvironmentOrderProperty", typing.Dict[builtins.str, typing.Any]]]]],
7782
8613
  priority: jsii.Number,
7783
8614
  job_queue_name: typing.Optional[builtins.str] = None,
8615
+ job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnJobQueue.JobStateTimeLimitActionProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
7784
8616
  scheduling_policy_arn: typing.Optional[builtins.str] = None,
7785
8617
  state: typing.Optional[builtins.str] = None,
7786
8618
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
@@ -7791,6 +8623,7 @@ class CfnJobQueue(
7791
8623
  :param compute_environment_order: The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the ``VALID`` state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed. .. epigraph:: All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue.
7792
8624
  :param priority: The priority of the job queue. Job queues with a higher priority (or a higher integer value for the ``priority`` parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of ``10`` is given scheduling preference over a job queue with a priority value of ``1`` . All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed.
7793
8625
  :param job_queue_name: The name of the job queue. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
8626
+ :param job_state_time_limit_actions: The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in the specified state longer than specified times. AWS Batch will perform each action after ``maxTimeSeconds`` has passed.
7794
8627
  :param scheduling_policy_arn: The Amazon Resource Name (ARN) of the scheduling policy. The format is ``aws: *Partition* :batch: *Region* : *Account* :scheduling-policy/ *Name*`` . For example, ``aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy`` .
7795
8628
  :param state: The state of the job queue. If the job queue state is ``ENABLED`` , it is able to accept jobs. If the job queue state is ``DISABLED`` , new jobs can't be added to the queue, but jobs already in the queue can finish.
7796
8629
  :param tags: The tags that are applied to the job queue. For more information, see `Tagging your AWS Batch resources <https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html>`_ in *AWS Batch User Guide* .
@@ -7803,6 +8636,7 @@ class CfnJobQueue(
7803
8636
  compute_environment_order=compute_environment_order,
7804
8637
  priority=priority,
7805
8638
  job_queue_name=job_queue_name,
8639
+ job_state_time_limit_actions=job_state_time_limit_actions,
7806
8640
  scheduling_policy_arn=scheduling_policy_arn,
7807
8641
  state=state,
7808
8642
  tags=tags,
@@ -7904,6 +8738,24 @@ class CfnJobQueue(
7904
8738
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
7905
8739
  jsii.set(self, "jobQueueName", value)
7906
8740
 
8741
+ @builtins.property
8742
+ @jsii.member(jsii_name="jobStateTimeLimitActions")
8743
+ def job_state_time_limit_actions(
8744
+ self,
8745
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.JobStateTimeLimitActionProperty"]]]]:
8746
+ '''The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in the specified state longer than specified times.'''
8747
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.JobStateTimeLimitActionProperty"]]]], jsii.get(self, "jobStateTimeLimitActions"))
8748
+
8749
+ @job_state_time_limit_actions.setter
8750
+ def job_state_time_limit_actions(
8751
+ self,
8752
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnJobQueue.JobStateTimeLimitActionProperty"]]]],
8753
+ ) -> None:
8754
+ if __debug__:
8755
+ type_hints = typing.get_type_hints(_typecheckingstub__6e248d0029fc3043fabb974edf0f06b8f9f721a8f13ce794fd6c39b5ae3bb91e)
8756
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
8757
+ jsii.set(self, "jobStateTimeLimitActions", value)
8758
+
7907
8759
  @builtins.property
7908
8760
  @jsii.member(jsii_name="schedulingPolicyArn")
7909
8761
  def scheduling_policy_arn(self) -> typing.Optional[builtins.str]:
@@ -8024,6 +8876,118 @@ class CfnJobQueue(
8024
8876
  k + "=" + repr(v) for k, v in self._values.items()
8025
8877
  )
8026
8878
 
8879
+ @jsii.data_type(
8880
+ jsii_type="aws-cdk-lib.aws_batch.CfnJobQueue.JobStateTimeLimitActionProperty",
8881
+ jsii_struct_bases=[],
8882
+ name_mapping={
8883
+ "action": "action",
8884
+ "max_time_seconds": "maxTimeSeconds",
8885
+ "reason": "reason",
8886
+ "state": "state",
8887
+ },
8888
+ )
8889
+ class JobStateTimeLimitActionProperty:
8890
+ def __init__(
8891
+ self,
8892
+ *,
8893
+ action: builtins.str,
8894
+ max_time_seconds: jsii.Number,
8895
+ reason: builtins.str,
8896
+ state: builtins.str,
8897
+ ) -> None:
8898
+ '''Specifies an action that AWS Batch will take after the job has remained at the head of the queue in the specified state for longer than the specified time.
8899
+
8900
+ :param action: The action to take when a job is at the head of the job queue in the specified state for the specified period of time. The only supported value is ``CANCEL`` , which will cancel the job.
8901
+ :param max_time_seconds: The approximate amount of time, in seconds, that must pass with the job in the specified state before the action is taken. The minimum value is 600 (10 minutes) and the maximum value is 86,400 (24 hours).
8902
+ :param reason: The reason to log for the action being taken.
8903
+ :param state: The state of the job needed to trigger the action. The only supported value is ``RUNNABLE`` .
8904
+
8905
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html
8906
+ :exampleMetadata: fixture=_generated
8907
+
8908
+ Example::
8909
+
8910
+ # The code below shows an example of how to instantiate this type.
8911
+ # The values are placeholders you should change.
8912
+ from aws_cdk import aws_batch as batch
8913
+
8914
+ job_state_time_limit_action_property = batch.CfnJobQueue.JobStateTimeLimitActionProperty(
8915
+ action="action",
8916
+ max_time_seconds=123,
8917
+ reason="reason",
8918
+ state="state"
8919
+ )
8920
+ '''
8921
+ if __debug__:
8922
+ type_hints = typing.get_type_hints(_typecheckingstub__78ff35092216cfb2ffd2106f7da574c86c17494e3404a6f2ccdc020cc2de0437)
8923
+ check_type(argname="argument action", value=action, expected_type=type_hints["action"])
8924
+ check_type(argname="argument max_time_seconds", value=max_time_seconds, expected_type=type_hints["max_time_seconds"])
8925
+ check_type(argname="argument reason", value=reason, expected_type=type_hints["reason"])
8926
+ check_type(argname="argument state", value=state, expected_type=type_hints["state"])
8927
+ self._values: typing.Dict[builtins.str, typing.Any] = {
8928
+ "action": action,
8929
+ "max_time_seconds": max_time_seconds,
8930
+ "reason": reason,
8931
+ "state": state,
8932
+ }
8933
+
8934
+ @builtins.property
8935
+ def action(self) -> builtins.str:
8936
+ '''The action to take when a job is at the head of the job queue in the specified state for the specified period of time.
8937
+
8938
+ The only supported value is ``CANCEL`` , which will cancel the job.
8939
+
8940
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-action
8941
+ '''
8942
+ result = self._values.get("action")
8943
+ assert result is not None, "Required property 'action' is missing"
8944
+ return typing.cast(builtins.str, result)
8945
+
8946
+ @builtins.property
8947
+ def max_time_seconds(self) -> jsii.Number:
8948
+ '''The approximate amount of time, in seconds, that must pass with the job in the specified state before the action is taken.
8949
+
8950
+ The minimum value is 600 (10 minutes) and the maximum value is 86,400 (24 hours).
8951
+
8952
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-maxtimeseconds
8953
+ '''
8954
+ result = self._values.get("max_time_seconds")
8955
+ assert result is not None, "Required property 'max_time_seconds' is missing"
8956
+ return typing.cast(jsii.Number, result)
8957
+
8958
+ @builtins.property
8959
+ def reason(self) -> builtins.str:
8960
+ '''The reason to log for the action being taken.
8961
+
8962
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-reason
8963
+ '''
8964
+ result = self._values.get("reason")
8965
+ assert result is not None, "Required property 'reason' is missing"
8966
+ return typing.cast(builtins.str, result)
8967
+
8968
+ @builtins.property
8969
+ def state(self) -> builtins.str:
8970
+ '''The state of the job needed to trigger the action.
8971
+
8972
+ The only supported value is ``RUNNABLE`` .
8973
+
8974
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-state
8975
+ '''
8976
+ result = self._values.get("state")
8977
+ assert result is not None, "Required property 'state' is missing"
8978
+ return typing.cast(builtins.str, result)
8979
+
8980
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
8981
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
8982
+
8983
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
8984
+ return not (rhs == self)
8985
+
8986
+ def __repr__(self) -> str:
8987
+ return "JobStateTimeLimitActionProperty(%s)" % ", ".join(
8988
+ k + "=" + repr(v) for k, v in self._values.items()
8989
+ )
8990
+
8027
8991
 
8028
8992
  @jsii.data_type(
8029
8993
  jsii_type="aws-cdk-lib.aws_batch.CfnJobQueueProps",
@@ -8032,6 +8996,7 @@ class CfnJobQueue(
8032
8996
  "compute_environment_order": "computeEnvironmentOrder",
8033
8997
  "priority": "priority",
8034
8998
  "job_queue_name": "jobQueueName",
8999
+ "job_state_time_limit_actions": "jobStateTimeLimitActions",
8035
9000
  "scheduling_policy_arn": "schedulingPolicyArn",
8036
9001
  "state": "state",
8037
9002
  "tags": "tags",
@@ -8044,6 +9009,7 @@ class CfnJobQueueProps:
8044
9009
  compute_environment_order: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]],
8045
9010
  priority: jsii.Number,
8046
9011
  job_queue_name: typing.Optional[builtins.str] = None,
9012
+ job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.JobStateTimeLimitActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
8047
9013
  scheduling_policy_arn: typing.Optional[builtins.str] = None,
8048
9014
  state: typing.Optional[builtins.str] = None,
8049
9015
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
@@ -8053,6 +9019,7 @@ class CfnJobQueueProps:
8053
9019
  :param compute_environment_order: The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the ``VALID`` state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed. .. epigraph:: All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue.
8054
9020
  :param priority: The priority of the job queue. Job queues with a higher priority (or a higher integer value for the ``priority`` parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of ``10`` is given scheduling preference over a job queue with a priority value of ``1`` . All of the compute environments must be either EC2 ( ``EC2`` or ``SPOT`` ) or Fargate ( ``FARGATE`` or ``FARGATE_SPOT`` ); EC2 and Fargate compute environments can't be mixed.
8055
9021
  :param job_queue_name: The name of the job queue. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).
9022
+ :param job_state_time_limit_actions: The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in the specified state longer than specified times. AWS Batch will perform each action after ``maxTimeSeconds`` has passed.
8056
9023
  :param scheduling_policy_arn: The Amazon Resource Name (ARN) of the scheduling policy. The format is ``aws: *Partition* :batch: *Region* : *Account* :scheduling-policy/ *Name*`` . For example, ``aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy`` .
8057
9024
  :param state: The state of the job queue. If the job queue state is ``ENABLED`` , it is able to accept jobs. If the job queue state is ``DISABLED`` , new jobs can't be added to the queue, but jobs already in the queue can finish.
8058
9025
  :param tags: The tags that are applied to the job queue. For more information, see `Tagging your AWS Batch resources <https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html>`_ in *AWS Batch User Guide* .
@@ -8075,6 +9042,12 @@ class CfnJobQueueProps:
8075
9042
 
8076
9043
  # the properties below are optional
8077
9044
  job_queue_name="jobQueueName",
9045
+ job_state_time_limit_actions=[batch.CfnJobQueue.JobStateTimeLimitActionProperty(
9046
+ action="action",
9047
+ max_time_seconds=123,
9048
+ reason="reason",
9049
+ state="state"
9050
+ )],
8078
9051
  scheduling_policy_arn="schedulingPolicyArn",
8079
9052
  state="state",
8080
9053
  tags={
@@ -8087,6 +9060,7 @@ class CfnJobQueueProps:
8087
9060
  check_type(argname="argument compute_environment_order", value=compute_environment_order, expected_type=type_hints["compute_environment_order"])
8088
9061
  check_type(argname="argument priority", value=priority, expected_type=type_hints["priority"])
8089
9062
  check_type(argname="argument job_queue_name", value=job_queue_name, expected_type=type_hints["job_queue_name"])
9063
+ check_type(argname="argument job_state_time_limit_actions", value=job_state_time_limit_actions, expected_type=type_hints["job_state_time_limit_actions"])
8090
9064
  check_type(argname="argument scheduling_policy_arn", value=scheduling_policy_arn, expected_type=type_hints["scheduling_policy_arn"])
8091
9065
  check_type(argname="argument state", value=state, expected_type=type_hints["state"])
8092
9066
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
@@ -8096,6 +9070,8 @@ class CfnJobQueueProps:
8096
9070
  }
8097
9071
  if job_queue_name is not None:
8098
9072
  self._values["job_queue_name"] = job_queue_name
9073
+ if job_state_time_limit_actions is not None:
9074
+ self._values["job_state_time_limit_actions"] = job_state_time_limit_actions
8099
9075
  if scheduling_policy_arn is not None:
8100
9076
  self._values["scheduling_policy_arn"] = scheduling_policy_arn
8101
9077
  if state is not None:
@@ -8143,6 +9119,19 @@ class CfnJobQueueProps:
8143
9119
  result = self._values.get("job_queue_name")
8144
9120
  return typing.cast(typing.Optional[builtins.str], result)
8145
9121
 
9122
+ @builtins.property
9123
+ def job_state_time_limit_actions(
9124
+ self,
9125
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.JobStateTimeLimitActionProperty]]]]:
9126
+ '''The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in the specified state longer than specified times.
9127
+
9128
+ AWS Batch will perform each action after ``maxTimeSeconds`` has passed.
9129
+
9130
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions
9131
+ '''
9132
+ result = self._values.get("job_state_time_limit_actions")
9133
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.JobStateTimeLimitActionProperty]]]], result)
9134
+
8146
9135
  @builtins.property
8147
9136
  def scheduling_policy_arn(self) -> typing.Optional[builtins.str]:
8148
9137
  '''The Amazon Resource Name (ARN) of the scheduling policy.
@@ -21837,6 +22826,7 @@ def _typecheckingstub__37959c68856ab28ea1a57515db976bc2215806d52c75f6166834df6ae
21837
22826
  *,
21838
22827
  type: builtins.str,
21839
22828
  container_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ContainerPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22829
+ ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EcsPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21840
22830
  eks_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EksPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21841
22831
  job_definition_name: typing.Optional[builtins.str] = None,
21842
22832
  node_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.NodePropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -21875,6 +22865,12 @@ def _typecheckingstub__f69a394e899a3c712c6499f6fcffa98702eb3ab7de5e4489e6e69fb85
21875
22865
  """Type checking stubs"""
21876
22866
  pass
21877
22867
 
22868
+ def _typecheckingstub__0f93a9bec3d893845bf7cf59752d55dcec2df30819130514b48897371c2ec224(
22869
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.EcsPropertiesProperty]],
22870
+ ) -> None:
22871
+ """Type checking stubs"""
22872
+ pass
22873
+
21878
22874
  def _typecheckingstub__ca04be0ba694eb2f262cad48402ba7bf94953530d02c650e2679b1f91498c346(
21879
22875
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnJobDefinition.EksPropertiesProperty]],
21880
22876
  ) -> None:
@@ -21981,6 +22977,29 @@ def _typecheckingstub__adbf78805f7f3d50af2c331ead7e1f53e092ea7a76782151236bad4f3
21981
22977
  """Type checking stubs"""
21982
22978
  pass
21983
22979
 
22980
+ def _typecheckingstub__6153a950309796a66c44ef3a234e02ed7ff91444107709427ae345e4f0e64828(
22981
+ *,
22982
+ task_properties: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EcsTaskPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]]],
22983
+ ) -> None:
22984
+ """Type checking stubs"""
22985
+ pass
22986
+
22987
+ def _typecheckingstub__8e8c39be2b840a158045732ea20d964bf03d380304bbcd66936cb862e6cc2a8e(
22988
+ *,
22989
+ containers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.TaskContainerPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22990
+ ephemeral_storage: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EphemeralStorageProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22991
+ execution_role_arn: typing.Optional[builtins.str] = None,
22992
+ ipc_mode: typing.Optional[builtins.str] = None,
22993
+ network_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.NetworkConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22994
+ pid_mode: typing.Optional[builtins.str] = None,
22995
+ platform_version: typing.Optional[builtins.str] = None,
22996
+ runtime_platform: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.RuntimePlatformProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22997
+ task_role_arn: typing.Optional[builtins.str] = None,
22998
+ volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.VolumesProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22999
+ ) -> None:
23000
+ """Type checking stubs"""
23001
+ pass
23002
+
21984
23003
  def _typecheckingstub__f673b085b46133477cd372799511104e89e28bf34ac0f6255020b20ef8b7e3e0(
21985
23004
  *,
21986
23005
  file_system_id: builtins.str,
@@ -22153,6 +23172,8 @@ def _typecheckingstub__005c21025a81827c3f5ed456b171eb7ffdf652583c7da0ff6ff671864
22153
23172
  *,
22154
23173
  target_nodes: builtins.str,
22155
23174
  container: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ContainerPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23175
+ ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EcsPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23176
+ instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
22156
23177
  ) -> None:
22157
23178
  """Type checking stubs"""
22158
23179
  pass
@@ -22162,8 +23183,10 @@ def _typecheckingstub__75127ae5a1697c34be5f24dcb69fa5c36a3498e1b2c284babc814c444
22162
23183
  containers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EksContainerProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22163
23184
  dns_policy: typing.Optional[builtins.str] = None,
22164
23185
  host_network: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
23186
+ init_containers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EksContainerProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22165
23187
  metadata: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.MetadataProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22166
23188
  service_account_name: typing.Optional[builtins.str] = None,
23189
+ share_process_namespace: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
22167
23190
  volumes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EksVolumeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22168
23191
  ) -> None:
22169
23192
  """Type checking stubs"""
@@ -22227,6 +23250,36 @@ def _typecheckingstub__ecf4bfd8ece80e1bc3ee0536353fc145f3c5b08f62a604a53b62e7d25
22227
23250
  """Type checking stubs"""
22228
23251
  pass
22229
23252
 
23253
+ def _typecheckingstub__2f29cae294a8ef5e1db972a16fcfa25d5a4a34ac0b2cb14531b35c42dbf2d4e1(
23254
+ *,
23255
+ condition: builtins.str,
23256
+ container_name: builtins.str,
23257
+ ) -> None:
23258
+ """Type checking stubs"""
23259
+ pass
23260
+
23261
+ def _typecheckingstub__4946f5f042ef067bff74424b1b71c92ab13e52a7f47a4271e028110521b8a1ae(
23262
+ *,
23263
+ image: builtins.str,
23264
+ command: typing.Optional[typing.Sequence[builtins.str]] = None,
23265
+ depends_on: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.TaskContainerDependencyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
23266
+ environment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EnvironmentProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
23267
+ essential: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
23268
+ linux_parameters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.LinuxParametersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23269
+ log_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.LogConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23270
+ 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,
23271
+ name: typing.Optional[builtins.str] = None,
23272
+ privileged: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
23273
+ readonly_root_filesystem: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
23274
+ repository_credentials: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.RepositoryCredentialsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23275
+ resource_requirements: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ResourceRequirementProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
23276
+ secrets: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.SecretProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
23277
+ ulimits: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.UlimitProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
23278
+ user: typing.Optional[builtins.str] = None,
23279
+ ) -> None:
23280
+ """Type checking stubs"""
23281
+ pass
23282
+
22230
23283
  def _typecheckingstub__5b035a85f593ff8b58d3fbc57a8614a7bc0d733c70f8504eab630022b6186187(
22231
23284
  *,
22232
23285
  attempt_duration_seconds: typing.Optional[jsii.Number] = None,
@@ -22272,6 +23325,7 @@ def _typecheckingstub__ed150d027b29486332c3fd2205a51f3c6f64c25946114fb86a6eba384
22272
23325
  *,
22273
23326
  type: builtins.str,
22274
23327
  container_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.ContainerPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23328
+ ecs_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EcsPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22275
23329
  eks_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.EksPropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22276
23330
  job_definition_name: typing.Optional[builtins.str] = None,
22277
23331
  node_properties: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobDefinition.NodePropertiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -22293,6 +23347,7 @@ def _typecheckingstub__6480ab252bc515b2cdb6dc0c833877438fd473fd39eadf6b8a064969a
22293
23347
  compute_environment_order: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]],
22294
23348
  priority: jsii.Number,
22295
23349
  job_queue_name: typing.Optional[builtins.str] = None,
23350
+ job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.JobStateTimeLimitActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22296
23351
  scheduling_policy_arn: typing.Optional[builtins.str] = None,
22297
23352
  state: typing.Optional[builtins.str] = None,
22298
23353
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
@@ -22330,6 +23385,12 @@ def _typecheckingstub__3b88e27e62b46f1049263a61bb14f62674a8121083de64c2db32d5856
22330
23385
  """Type checking stubs"""
22331
23386
  pass
22332
23387
 
23388
+ def _typecheckingstub__6e248d0029fc3043fabb974edf0f06b8f9f721a8f13ce794fd6c39b5ae3bb91e(
23389
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnJobQueue.JobStateTimeLimitActionProperty]]]],
23390
+ ) -> None:
23391
+ """Type checking stubs"""
23392
+ pass
23393
+
22333
23394
  def _typecheckingstub__48a6952b4a8d4426554895a52085bf8c88701735f3f94a3426e81e56ab8a5761(
22334
23395
  value: typing.Optional[builtins.str],
22335
23396
  ) -> None:
@@ -22356,11 +23417,22 @@ def _typecheckingstub__939623842116ecc366f7e36591fb2bdd35bd47aacc55c0a794ff81ec2
22356
23417
  """Type checking stubs"""
22357
23418
  pass
22358
23419
 
23420
+ def _typecheckingstub__78ff35092216cfb2ffd2106f7da574c86c17494e3404a6f2ccdc020cc2de0437(
23421
+ *,
23422
+ action: builtins.str,
23423
+ max_time_seconds: jsii.Number,
23424
+ reason: builtins.str,
23425
+ state: builtins.str,
23426
+ ) -> None:
23427
+ """Type checking stubs"""
23428
+ pass
23429
+
22359
23430
  def _typecheckingstub__009d6d384b1b723169e64875095e05fe852ae3931adf5ba2004d22475a76caa9(
22360
23431
  *,
22361
23432
  compute_environment_order: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.ComputeEnvironmentOrderProperty, typing.Dict[builtins.str, typing.Any]]]]],
22362
23433
  priority: jsii.Number,
22363
23434
  job_queue_name: typing.Optional[builtins.str] = None,
23435
+ job_state_time_limit_actions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnJobQueue.JobStateTimeLimitActionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22364
23436
  scheduling_policy_arn: typing.Optional[builtins.str] = None,
22365
23437
  state: typing.Optional[builtins.str] = None,
22366
23438
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,