aws-cdk-lib 2.173.4__py3-none-any.whl → 2.174.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (91) hide show
  1. aws_cdk/__init__.py +210 -181
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.173.4.jsii.tgz → aws-cdk-lib@2.174.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +18 -0
  5. aws_cdk/aws_apigateway/__init__.py +127 -168
  6. aws_cdk/aws_appconfig/__init__.py +498 -1
  7. aws_cdk/aws_applicationautoscaling/__init__.py +4 -1
  8. aws_cdk/aws_appsync/__init__.py +4 -0
  9. aws_cdk/aws_autoscaling/__init__.py +96 -0
  10. aws_cdk/aws_batch/__init__.py +662 -237
  11. aws_cdk/aws_bedrock/__init__.py +2122 -181
  12. aws_cdk/aws_cassandra/__init__.py +476 -4
  13. aws_cdk/aws_cleanrooms/__init__.py +1227 -20
  14. aws_cdk/aws_cloudformation/__init__.py +172 -169
  15. aws_cdk/aws_cloudfront/__init__.py +773 -26
  16. aws_cdk/aws_cloudtrail/__init__.py +8 -2
  17. aws_cdk/aws_codebuild/__init__.py +83 -0
  18. aws_cdk/aws_codepipeline/__init__.py +2 -1
  19. aws_cdk/aws_cognito/__init__.py +232 -200
  20. aws_cdk/aws_connect/__init__.py +187 -36
  21. aws_cdk/aws_connectcampaignsv2/__init__.py +106 -12
  22. aws_cdk/aws_databrew/__init__.py +69 -1
  23. aws_cdk/aws_datasync/__init__.py +33 -28
  24. aws_cdk/aws_datazone/__init__.py +141 -41
  25. aws_cdk/aws_dlm/__init__.py +20 -10
  26. aws_cdk/aws_dms/__init__.py +736 -22
  27. aws_cdk/aws_docdb/__init__.py +134 -0
  28. aws_cdk/aws_dynamodb/__init__.py +76 -4
  29. aws_cdk/aws_ec2/__init__.py +1233 -65
  30. aws_cdk/aws_ecr/__init__.py +31 -0
  31. aws_cdk/aws_ecr_assets/__init__.py +5 -0
  32. aws_cdk/aws_ecs/__init__.py +88 -11
  33. aws_cdk/aws_efs/__init__.py +15 -8
  34. aws_cdk/aws_eks/__init__.py +114 -45
  35. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  36. aws_cdk/aws_emrserverless/__init__.py +143 -0
  37. aws_cdk/aws_events/__init__.py +50 -30
  38. aws_cdk/aws_fis/__init__.py +33 -33
  39. aws_cdk/aws_fsx/__init__.py +20 -10
  40. aws_cdk/aws_glue/__init__.py +34 -11
  41. aws_cdk/aws_greengrass/__init__.py +8 -8
  42. aws_cdk/aws_guardduty/__init__.py +1 -1
  43. aws_cdk/aws_imagebuilder/__init__.py +45 -47
  44. aws_cdk/aws_internetmonitor/__init__.py +3 -3
  45. aws_cdk/aws_invoicing/__init__.py +55 -30
  46. aws_cdk/aws_iot/__init__.py +1117 -4
  47. aws_cdk/aws_iot1click/__init__.py +17 -7
  48. aws_cdk/aws_kendra/__init__.py +4 -6
  49. aws_cdk/aws_lambda/__init__.py +15 -1
  50. aws_cdk/aws_logs/__init__.py +4011 -86
  51. aws_cdk/aws_m2/__init__.py +41 -0
  52. aws_cdk/aws_mediaconnect/__init__.py +202 -7
  53. aws_cdk/aws_mediaconvert/__init__.py +39 -0
  54. aws_cdk/aws_memorydb/__init__.py +22 -22
  55. aws_cdk/aws_networkmanager/__init__.py +758 -0
  56. aws_cdk/aws_opensearchservice/__init__.py +222 -0
  57. aws_cdk/aws_organizations/__init__.py +5 -3
  58. aws_cdk/aws_pcs/__init__.py +3038 -0
  59. aws_cdk/aws_pipes/__init__.py +10 -10
  60. aws_cdk/aws_qbusiness/__init__.py +415 -140
  61. aws_cdk/aws_quicksight/__init__.py +59795 -49748
  62. aws_cdk/aws_ram/__init__.py +5 -11
  63. aws_cdk/aws_rbin/__init__.py +28 -16
  64. aws_cdk/aws_rds/__init__.py +186 -31
  65. aws_cdk/aws_redshiftserverless/__init__.py +156 -0
  66. aws_cdk/aws_resiliencehub/__init__.py +2 -1
  67. aws_cdk/aws_route53_targets/__init__.py +5 -5
  68. aws_cdk/aws_s3/__init__.py +25 -15
  69. aws_cdk/aws_s3express/__init__.py +7 -7
  70. aws_cdk/aws_s3tables/__init__.py +683 -0
  71. aws_cdk/aws_sagemaker/__init__.py +580 -195
  72. aws_cdk/aws_secretsmanager/__init__.py +2 -0
  73. aws_cdk/aws_securityhub/__init__.py +41 -165
  74. aws_cdk/aws_servicediscovery/__init__.py +10 -3
  75. aws_cdk/aws_ses/__init__.py +190 -5
  76. aws_cdk/aws_sns/__init__.py +7 -3
  77. aws_cdk/aws_synthetics/__init__.py +29 -4
  78. aws_cdk/aws_transfer/__init__.py +8 -0
  79. aws_cdk/aws_vpclattice/__init__.py +147 -77
  80. aws_cdk/aws_wafv2/__init__.py +20 -8
  81. aws_cdk/aws_wisdom/__init__.py +162 -111
  82. aws_cdk/aws_workspaces/__init__.py +10 -4
  83. aws_cdk/cloud_assembly_schema/__init__.py +22 -0
  84. aws_cdk/custom_resources/__init__.py +31 -0
  85. aws_cdk/cx_api/__init__.py +19 -0
  86. {aws_cdk_lib-2.173.4.dist-info → aws_cdk_lib-2.174.1.dist-info}/LICENSE +1 -1
  87. {aws_cdk_lib-2.173.4.dist-info → aws_cdk_lib-2.174.1.dist-info}/METADATA +2 -2
  88. {aws_cdk_lib-2.173.4.dist-info → aws_cdk_lib-2.174.1.dist-info}/NOTICE +1 -1
  89. {aws_cdk_lib-2.173.4.dist-info → aws_cdk_lib-2.174.1.dist-info}/RECORD +91 -89
  90. {aws_cdk_lib-2.173.4.dist-info → aws_cdk_lib-2.174.1.dist-info}/WHEEL +0 -0
  91. {aws_cdk_lib-2.173.4.dist-info → aws_cdk_lib-2.174.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,3038 @@
1
+ r'''
2
+ # AWS::PCS Construct Library
3
+
4
+ <!--BEGIN STABILITY BANNER-->---
5
+
6
+
7
+ ![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)
8
+
9
+ > All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) are always stable and safe to use.
10
+
11
+ ---
12
+ <!--END STABILITY BANNER-->
13
+
14
+ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.
15
+
16
+ ```python
17
+ import aws_cdk.aws_pcs as pcs
18
+ ```
19
+
20
+ <!--BEGIN CFNONLY DISCLAIMER-->
21
+
22
+ There are no official hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet. Here are some suggestions on how to proceed:
23
+
24
+ * Search [Construct Hub for PCS construct libraries](https://constructs.dev/search?q=pcs)
25
+ * Use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, in the same way you would use [the CloudFormation AWS::PCS resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_PCS.html) directly.
26
+
27
+ <!--BEGIN CFNONLY DISCLAIMER-->
28
+
29
+ There are no hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet.
30
+ However, you can still use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, and use this service exactly as you would using CloudFormation directly.
31
+
32
+ For more information on the resources and properties available for this service, see the [CloudFormation documentation for AWS::PCS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_PCS.html).
33
+
34
+ (Read the [CDK Contributing Guide](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and submit an RFC if you are interested in contributing to this construct library.)
35
+
36
+ <!--END CFNONLY DISCLAIMER-->
37
+ '''
38
+ from pkgutil import extend_path
39
+ __path__ = extend_path(__path__, __name__)
40
+
41
+ import abc
42
+ import builtins
43
+ import datetime
44
+ import enum
45
+ import typing
46
+
47
+ import jsii
48
+ import publication
49
+ import typing_extensions
50
+
51
+ import typeguard
52
+ from importlib.metadata import version as _metadata_package_version
53
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
54
+
55
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
56
+ if TYPEGUARD_MAJOR_VERSION <= 2:
57
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
58
+ else:
59
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
60
+ pass
61
+ else:
62
+ if TYPEGUARD_MAJOR_VERSION == 3:
63
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
64
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
65
+ else:
66
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
67
+
68
+ from .._jsii import *
69
+
70
+ import constructs as _constructs_77d1e7e8
71
+ from .. import (
72
+ CfnResource as _CfnResource_9df397a6,
73
+ IInspectable as _IInspectable_c2943556,
74
+ IResolvable as _IResolvable_da3f097b,
75
+ ITaggableV2 as _ITaggableV2_4e6798f8,
76
+ TagManager as _TagManager_0a598cb3,
77
+ TreeInspector as _TreeInspector_488e0dd5,
78
+ )
79
+
80
+
81
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
82
+ class CfnCluster(
83
+ _CfnResource_9df397a6,
84
+ metaclass=jsii.JSIIMeta,
85
+ jsii_type="aws-cdk-lib.aws_pcs.CfnCluster",
86
+ ):
87
+ '''The ``AWS::PCS::Cluster`` resource creates an AWS PCS cluster.
88
+
89
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html
90
+ :cloudformationResource: AWS::PCS::Cluster
91
+ :exampleMetadata: fixture=_generated
92
+
93
+ Example::
94
+
95
+ # The code below shows an example of how to instantiate this type.
96
+ # The values are placeholders you should change.
97
+ from aws_cdk import aws_pcs as pcs
98
+
99
+ cfn_cluster = pcs.CfnCluster(self, "MyCfnCluster",
100
+ networking=pcs.CfnCluster.NetworkingProperty(
101
+ security_group_ids=["securityGroupIds"],
102
+ subnet_ids=["subnetIds"]
103
+ ),
104
+ scheduler=pcs.CfnCluster.SchedulerProperty(
105
+ type="type",
106
+ version="version"
107
+ ),
108
+ size="size",
109
+
110
+ # the properties below are optional
111
+ name="name",
112
+ slurm_configuration=pcs.CfnCluster.SlurmConfigurationProperty(
113
+ auth_key=pcs.CfnCluster.AuthKeyProperty(
114
+ secret_arn="secretArn",
115
+ secret_version="secretVersion"
116
+ ),
117
+ scale_down_idle_time_in_seconds=123,
118
+ slurm_custom_settings=[pcs.CfnCluster.SlurmCustomSettingProperty(
119
+ parameter_name="parameterName",
120
+ parameter_value="parameterValue"
121
+ )]
122
+ ),
123
+ tags={
124
+ "tags_key": "tags"
125
+ }
126
+ )
127
+ '''
128
+
129
+ def __init__(
130
+ self,
131
+ scope: _constructs_77d1e7e8.Construct,
132
+ id: builtins.str,
133
+ *,
134
+ networking: typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.NetworkingProperty", typing.Dict[builtins.str, typing.Any]]],
135
+ scheduler: typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.SchedulerProperty", typing.Dict[builtins.str, typing.Any]]],
136
+ size: builtins.str,
137
+ name: typing.Optional[builtins.str] = None,
138
+ slurm_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.SlurmConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
139
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
140
+ ) -> None:
141
+ '''
142
+ :param scope: Scope in which this resource is defined.
143
+ :param id: Construct identifier for this resource (unique in its scope).
144
+ :param networking: The networking configuration for the cluster's control plane.
145
+ :param scheduler: The cluster management and job scheduling software associated with the cluster.
146
+ :param size: The size of the cluster.
147
+ :param name: The name that identifies the cluster.
148
+ :param slurm_configuration: Additional options related to the Slurm scheduler.
149
+ :param tags: 1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
150
+ '''
151
+ if __debug__:
152
+ type_hints = typing.get_type_hints(_typecheckingstub__f3eeeaf566612baca2013a4f6d5c60484ee36ebc0edd307d32ef21991c170b65)
153
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
154
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
155
+ props = CfnClusterProps(
156
+ networking=networking,
157
+ scheduler=scheduler,
158
+ size=size,
159
+ name=name,
160
+ slurm_configuration=slurm_configuration,
161
+ tags=tags,
162
+ )
163
+
164
+ jsii.create(self.__class__, self, [scope, id, props])
165
+
166
+ @jsii.member(jsii_name="inspect")
167
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
168
+ '''Examines the CloudFormation resource and discloses attributes.
169
+
170
+ :param inspector: tree inspector to collect and process attributes.
171
+ '''
172
+ if __debug__:
173
+ type_hints = typing.get_type_hints(_typecheckingstub__ad41b9587f0f8c306a5663de2a8a6102111fcb7fc8d0e9a53a589055d6beaedc)
174
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
175
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
176
+
177
+ @jsii.member(jsii_name="renderProperties")
178
+ def _render_properties(
179
+ self,
180
+ props: typing.Mapping[builtins.str, typing.Any],
181
+ ) -> typing.Mapping[builtins.str, typing.Any]:
182
+ '''
183
+ :param props: -
184
+ '''
185
+ if __debug__:
186
+ type_hints = typing.get_type_hints(_typecheckingstub__6de5406d3a652bc9f44810e2ec4b074eabc97b2d888228c1ef6aa15a9be62dd7)
187
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
188
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
189
+
190
+ @jsii.python.classproperty
191
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
192
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
193
+ '''The CloudFormation resource type name for this resource class.'''
194
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
195
+
196
+ @builtins.property
197
+ @jsii.member(jsii_name="attrArn")
198
+ def attr_arn(self) -> builtins.str:
199
+ '''The unique Amazon Resource Name (ARN) of the cluster.
200
+
201
+ :cloudformationAttribute: Arn
202
+ '''
203
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
204
+
205
+ @builtins.property
206
+ @jsii.member(jsii_name="attrEndpoints")
207
+ def attr_endpoints(self) -> _IResolvable_da3f097b:
208
+ '''The list of endpoints available for interaction with the scheduler.
209
+
210
+ :cloudformationAttribute: Endpoints
211
+ '''
212
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrEndpoints"))
213
+
214
+ @builtins.property
215
+ @jsii.member(jsii_name="attrErrorInfo")
216
+ def attr_error_info(self) -> _IResolvable_da3f097b:
217
+ '''The list of errors that occurred during cluster provisioning.
218
+
219
+ :cloudformationAttribute: ErrorInfo
220
+ '''
221
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrErrorInfo"))
222
+
223
+ @builtins.property
224
+ @jsii.member(jsii_name="attrId")
225
+ def attr_id(self) -> builtins.str:
226
+ '''The generated unique ID of the cluster.
227
+
228
+ :cloudformationAttribute: Id
229
+ '''
230
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
231
+
232
+ @builtins.property
233
+ @jsii.member(jsii_name="attrStatus")
234
+ def attr_status(self) -> builtins.str:
235
+ '''The provisioning status of the cluster.
236
+
237
+ The provisioning status doesn't indicate the overall health of the cluster.
238
+
239
+ :cloudformationAttribute: Status
240
+ '''
241
+ return typing.cast(builtins.str, jsii.get(self, "attrStatus"))
242
+
243
+ @builtins.property
244
+ @jsii.member(jsii_name="cdkTagManager")
245
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
246
+ '''Tag Manager which manages the tags for this resource.'''
247
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
248
+
249
+ @builtins.property
250
+ @jsii.member(jsii_name="cfnProperties")
251
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
252
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
253
+
254
+ @builtins.property
255
+ @jsii.member(jsii_name="networking")
256
+ def networking(
257
+ self,
258
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnCluster.NetworkingProperty"]:
259
+ '''The networking configuration for the cluster's control plane.'''
260
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnCluster.NetworkingProperty"], jsii.get(self, "networking"))
261
+
262
+ @networking.setter
263
+ def networking(
264
+ self,
265
+ value: typing.Union[_IResolvable_da3f097b, "CfnCluster.NetworkingProperty"],
266
+ ) -> None:
267
+ if __debug__:
268
+ type_hints = typing.get_type_hints(_typecheckingstub__55c1ec55aa513ac3501a36d2ae996a234035f2352cdef00bfd71db7d9a57e50c)
269
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
270
+ jsii.set(self, "networking", value) # pyright: ignore[reportArgumentType]
271
+
272
+ @builtins.property
273
+ @jsii.member(jsii_name="scheduler")
274
+ def scheduler(
275
+ self,
276
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnCluster.SchedulerProperty"]:
277
+ '''The cluster management and job scheduling software associated with the cluster.'''
278
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnCluster.SchedulerProperty"], jsii.get(self, "scheduler"))
279
+
280
+ @scheduler.setter
281
+ def scheduler(
282
+ self,
283
+ value: typing.Union[_IResolvable_da3f097b, "CfnCluster.SchedulerProperty"],
284
+ ) -> None:
285
+ if __debug__:
286
+ type_hints = typing.get_type_hints(_typecheckingstub__d56c39b86f5541062b8866fd13a6f0b7c91e0e765586d45abea04f33cc267998)
287
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
288
+ jsii.set(self, "scheduler", value) # pyright: ignore[reportArgumentType]
289
+
290
+ @builtins.property
291
+ @jsii.member(jsii_name="size")
292
+ def size(self) -> builtins.str:
293
+ '''The size of the cluster.'''
294
+ return typing.cast(builtins.str, jsii.get(self, "size"))
295
+
296
+ @size.setter
297
+ def size(self, value: builtins.str) -> None:
298
+ if __debug__:
299
+ type_hints = typing.get_type_hints(_typecheckingstub__991109fd44c9cf1840f37fe27f8e8d0dd425a7d35c40957d93e9cd3eda6960f7)
300
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
301
+ jsii.set(self, "size", value) # pyright: ignore[reportArgumentType]
302
+
303
+ @builtins.property
304
+ @jsii.member(jsii_name="name")
305
+ def name(self) -> typing.Optional[builtins.str]:
306
+ '''The name that identifies the cluster.'''
307
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "name"))
308
+
309
+ @name.setter
310
+ def name(self, value: typing.Optional[builtins.str]) -> None:
311
+ if __debug__:
312
+ type_hints = typing.get_type_hints(_typecheckingstub__02af9af912d0a7aca1a803881152b3dd95a43c257523e7b9af7a7e20581e9a9e)
313
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
314
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
315
+
316
+ @builtins.property
317
+ @jsii.member(jsii_name="slurmConfiguration")
318
+ def slurm_configuration(
319
+ self,
320
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.SlurmConfigurationProperty"]]:
321
+ '''Additional options related to the Slurm scheduler.'''
322
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.SlurmConfigurationProperty"]], jsii.get(self, "slurmConfiguration"))
323
+
324
+ @slurm_configuration.setter
325
+ def slurm_configuration(
326
+ self,
327
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.SlurmConfigurationProperty"]],
328
+ ) -> None:
329
+ if __debug__:
330
+ type_hints = typing.get_type_hints(_typecheckingstub__d87e1a23a15695700ae0058f31b0dfa9d42571eb71c777bac50f89be58cf34fe)
331
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
332
+ jsii.set(self, "slurmConfiguration", value) # pyright: ignore[reportArgumentType]
333
+
334
+ @builtins.property
335
+ @jsii.member(jsii_name="tags")
336
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
337
+ '''1 or more tags added to the resource.'''
338
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "tags"))
339
+
340
+ @tags.setter
341
+ def tags(
342
+ self,
343
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
344
+ ) -> None:
345
+ if __debug__:
346
+ type_hints = typing.get_type_hints(_typecheckingstub__b386ea2d0b46e98dda569b5edccc0da74b6c12d09181731c93163fcad15cefbf)
347
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
348
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
349
+
350
+ @jsii.data_type(
351
+ jsii_type="aws-cdk-lib.aws_pcs.CfnCluster.AuthKeyProperty",
352
+ jsii_struct_bases=[],
353
+ name_mapping={"secret_arn": "secretArn", "secret_version": "secretVersion"},
354
+ )
355
+ class AuthKeyProperty:
356
+ def __init__(
357
+ self,
358
+ *,
359
+ secret_arn: builtins.str,
360
+ secret_version: builtins.str,
361
+ ) -> None:
362
+ '''The shared Slurm key for authentication, also known as the *cluster secret* .
363
+
364
+ :param secret_arn: The Amazon Resource Name (ARN) of the shared Slurm key.
365
+ :param secret_version: The version of the shared Slurm key.
366
+
367
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-authkey.html
368
+ :exampleMetadata: fixture=_generated
369
+
370
+ Example::
371
+
372
+ # The code below shows an example of how to instantiate this type.
373
+ # The values are placeholders you should change.
374
+ from aws_cdk import aws_pcs as pcs
375
+
376
+ auth_key_property = pcs.CfnCluster.AuthKeyProperty(
377
+ secret_arn="secretArn",
378
+ secret_version="secretVersion"
379
+ )
380
+ '''
381
+ if __debug__:
382
+ type_hints = typing.get_type_hints(_typecheckingstub__1864f71bcded956851b861671a045d1c7d6402331c1d756c5ac88d21e9fe823c)
383
+ check_type(argname="argument secret_arn", value=secret_arn, expected_type=type_hints["secret_arn"])
384
+ check_type(argname="argument secret_version", value=secret_version, expected_type=type_hints["secret_version"])
385
+ self._values: typing.Dict[builtins.str, typing.Any] = {
386
+ "secret_arn": secret_arn,
387
+ "secret_version": secret_version,
388
+ }
389
+
390
+ @builtins.property
391
+ def secret_arn(self) -> builtins.str:
392
+ '''The Amazon Resource Name (ARN) of the shared Slurm key.
393
+
394
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-authkey.html#cfn-pcs-cluster-authkey-secretarn
395
+ '''
396
+ result = self._values.get("secret_arn")
397
+ assert result is not None, "Required property 'secret_arn' is missing"
398
+ return typing.cast(builtins.str, result)
399
+
400
+ @builtins.property
401
+ def secret_version(self) -> builtins.str:
402
+ '''The version of the shared Slurm key.
403
+
404
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-authkey.html#cfn-pcs-cluster-authkey-secretversion
405
+ '''
406
+ result = self._values.get("secret_version")
407
+ assert result is not None, "Required property 'secret_version' is missing"
408
+ return typing.cast(builtins.str, result)
409
+
410
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
411
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
412
+
413
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
414
+ return not (rhs == self)
415
+
416
+ def __repr__(self) -> str:
417
+ return "AuthKeyProperty(%s)" % ", ".join(
418
+ k + "=" + repr(v) for k, v in self._values.items()
419
+ )
420
+
421
+ @jsii.data_type(
422
+ jsii_type="aws-cdk-lib.aws_pcs.CfnCluster.EndpointProperty",
423
+ jsii_struct_bases=[],
424
+ name_mapping={
425
+ "port": "port",
426
+ "private_ip_address": "privateIpAddress",
427
+ "type": "type",
428
+ "public_ip_address": "publicIpAddress",
429
+ },
430
+ )
431
+ class EndpointProperty:
432
+ def __init__(
433
+ self,
434
+ *,
435
+ port: builtins.str,
436
+ private_ip_address: builtins.str,
437
+ type: builtins.str,
438
+ public_ip_address: typing.Optional[builtins.str] = None,
439
+ ) -> None:
440
+ '''An endpoint available for interaction with the scheduler.
441
+
442
+ :param port: The endpoint's connection port number.
443
+ :param private_ip_address: The endpoint's private IP address.
444
+ :param type: Indicates the type of endpoint running at the specific IP address.
445
+ :param public_ip_address: The endpoint's public IP address.
446
+
447
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-endpoint.html
448
+ :exampleMetadata: fixture=_generated
449
+
450
+ Example::
451
+
452
+ # The code below shows an example of how to instantiate this type.
453
+ # The values are placeholders you should change.
454
+ from aws_cdk import aws_pcs as pcs
455
+
456
+ endpoint_property = pcs.CfnCluster.EndpointProperty(
457
+ port="port",
458
+ private_ip_address="privateIpAddress",
459
+ type="type",
460
+
461
+ # the properties below are optional
462
+ public_ip_address="publicIpAddress"
463
+ )
464
+ '''
465
+ if __debug__:
466
+ type_hints = typing.get_type_hints(_typecheckingstub__fb46faa4736fd5bede060ea1460c35898193ef49ace1726974a1db8958312929)
467
+ check_type(argname="argument port", value=port, expected_type=type_hints["port"])
468
+ check_type(argname="argument private_ip_address", value=private_ip_address, expected_type=type_hints["private_ip_address"])
469
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
470
+ check_type(argname="argument public_ip_address", value=public_ip_address, expected_type=type_hints["public_ip_address"])
471
+ self._values: typing.Dict[builtins.str, typing.Any] = {
472
+ "port": port,
473
+ "private_ip_address": private_ip_address,
474
+ "type": type,
475
+ }
476
+ if public_ip_address is not None:
477
+ self._values["public_ip_address"] = public_ip_address
478
+
479
+ @builtins.property
480
+ def port(self) -> builtins.str:
481
+ '''The endpoint's connection port number.
482
+
483
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-endpoint.html#cfn-pcs-cluster-endpoint-port
484
+ '''
485
+ result = self._values.get("port")
486
+ assert result is not None, "Required property 'port' is missing"
487
+ return typing.cast(builtins.str, result)
488
+
489
+ @builtins.property
490
+ def private_ip_address(self) -> builtins.str:
491
+ '''The endpoint's private IP address.
492
+
493
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-endpoint.html#cfn-pcs-cluster-endpoint-privateipaddress
494
+ '''
495
+ result = self._values.get("private_ip_address")
496
+ assert result is not None, "Required property 'private_ip_address' is missing"
497
+ return typing.cast(builtins.str, result)
498
+
499
+ @builtins.property
500
+ def type(self) -> builtins.str:
501
+ '''Indicates the type of endpoint running at the specific IP address.
502
+
503
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-endpoint.html#cfn-pcs-cluster-endpoint-type
504
+ '''
505
+ result = self._values.get("type")
506
+ assert result is not None, "Required property 'type' is missing"
507
+ return typing.cast(builtins.str, result)
508
+
509
+ @builtins.property
510
+ def public_ip_address(self) -> typing.Optional[builtins.str]:
511
+ '''The endpoint's public IP address.
512
+
513
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-endpoint.html#cfn-pcs-cluster-endpoint-publicipaddress
514
+ '''
515
+ result = self._values.get("public_ip_address")
516
+ return typing.cast(typing.Optional[builtins.str], result)
517
+
518
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
519
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
520
+
521
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
522
+ return not (rhs == self)
523
+
524
+ def __repr__(self) -> str:
525
+ return "EndpointProperty(%s)" % ", ".join(
526
+ k + "=" + repr(v) for k, v in self._values.items()
527
+ )
528
+
529
+ @jsii.data_type(
530
+ jsii_type="aws-cdk-lib.aws_pcs.CfnCluster.ErrorInfoProperty",
531
+ jsii_struct_bases=[],
532
+ name_mapping={"code": "code", "message": "message"},
533
+ )
534
+ class ErrorInfoProperty:
535
+ def __init__(
536
+ self,
537
+ *,
538
+ code: typing.Optional[builtins.str] = None,
539
+ message: typing.Optional[builtins.str] = None,
540
+ ) -> None:
541
+ '''An error that occurred during resource provisioning.
542
+
543
+ :param code: The short-form error code.
544
+ :param message: The detailed error information.
545
+
546
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-errorinfo.html
547
+ :exampleMetadata: fixture=_generated
548
+
549
+ Example::
550
+
551
+ # The code below shows an example of how to instantiate this type.
552
+ # The values are placeholders you should change.
553
+ from aws_cdk import aws_pcs as pcs
554
+
555
+ error_info_property = pcs.CfnCluster.ErrorInfoProperty(
556
+ code="code",
557
+ message="message"
558
+ )
559
+ '''
560
+ if __debug__:
561
+ type_hints = typing.get_type_hints(_typecheckingstub__b9e127e61b0ea75f45a99bba1dcc51875a9ecf36ea91f697889ebe4cb4a8e301)
562
+ check_type(argname="argument code", value=code, expected_type=type_hints["code"])
563
+ check_type(argname="argument message", value=message, expected_type=type_hints["message"])
564
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
565
+ if code is not None:
566
+ self._values["code"] = code
567
+ if message is not None:
568
+ self._values["message"] = message
569
+
570
+ @builtins.property
571
+ def code(self) -> typing.Optional[builtins.str]:
572
+ '''The short-form error code.
573
+
574
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-errorinfo.html#cfn-pcs-cluster-errorinfo-code
575
+ '''
576
+ result = self._values.get("code")
577
+ return typing.cast(typing.Optional[builtins.str], result)
578
+
579
+ @builtins.property
580
+ def message(self) -> typing.Optional[builtins.str]:
581
+ '''The detailed error information.
582
+
583
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-errorinfo.html#cfn-pcs-cluster-errorinfo-message
584
+ '''
585
+ result = self._values.get("message")
586
+ return typing.cast(typing.Optional[builtins.str], result)
587
+
588
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
589
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
590
+
591
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
592
+ return not (rhs == self)
593
+
594
+ def __repr__(self) -> str:
595
+ return "ErrorInfoProperty(%s)" % ", ".join(
596
+ k + "=" + repr(v) for k, v in self._values.items()
597
+ )
598
+
599
+ @jsii.data_type(
600
+ jsii_type="aws-cdk-lib.aws_pcs.CfnCluster.NetworkingProperty",
601
+ jsii_struct_bases=[],
602
+ name_mapping={
603
+ "security_group_ids": "securityGroupIds",
604
+ "subnet_ids": "subnetIds",
605
+ },
606
+ )
607
+ class NetworkingProperty:
608
+ def __init__(
609
+ self,
610
+ *,
611
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
612
+ subnet_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
613
+ ) -> None:
614
+ '''TThe networking configuration for the cluster's control plane.
615
+
616
+ :param security_group_ids: The list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.
617
+ :param subnet_ids: The list of subnet IDs where AWS PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and AWS PCS resources. The subnet must have an available IP address, cannot reside in AWS Outposts, AWS Wavelength, or an AWS Local Zone. AWS PCS currently supports only 1 subnet in this list.
618
+
619
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-networking.html
620
+ :exampleMetadata: fixture=_generated
621
+
622
+ Example::
623
+
624
+ # The code below shows an example of how to instantiate this type.
625
+ # The values are placeholders you should change.
626
+ from aws_cdk import aws_pcs as pcs
627
+
628
+ networking_property = pcs.CfnCluster.NetworkingProperty(
629
+ security_group_ids=["securityGroupIds"],
630
+ subnet_ids=["subnetIds"]
631
+ )
632
+ '''
633
+ if __debug__:
634
+ type_hints = typing.get_type_hints(_typecheckingstub__82c7f3d28e2ed0d063467ea787c6cfc31c28d4c5f26ef1ddf71940887dea9d1f)
635
+ check_type(argname="argument security_group_ids", value=security_group_ids, expected_type=type_hints["security_group_ids"])
636
+ check_type(argname="argument subnet_ids", value=subnet_ids, expected_type=type_hints["subnet_ids"])
637
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
638
+ if security_group_ids is not None:
639
+ self._values["security_group_ids"] = security_group_ids
640
+ if subnet_ids is not None:
641
+ self._values["subnet_ids"] = subnet_ids
642
+
643
+ @builtins.property
644
+ def security_group_ids(self) -> typing.Optional[typing.List[builtins.str]]:
645
+ '''The list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.
646
+
647
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-networking.html#cfn-pcs-cluster-networking-securitygroupids
648
+ '''
649
+ result = self._values.get("security_group_ids")
650
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
651
+
652
+ @builtins.property
653
+ def subnet_ids(self) -> typing.Optional[typing.List[builtins.str]]:
654
+ '''The list of subnet IDs where AWS PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and AWS PCS resources.
655
+
656
+ The subnet must have an available IP address, cannot reside in AWS Outposts, AWS Wavelength, or an AWS Local Zone. AWS PCS currently supports only 1 subnet in this list.
657
+
658
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-networking.html#cfn-pcs-cluster-networking-subnetids
659
+ '''
660
+ result = self._values.get("subnet_ids")
661
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
662
+
663
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
664
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
665
+
666
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
667
+ return not (rhs == self)
668
+
669
+ def __repr__(self) -> str:
670
+ return "NetworkingProperty(%s)" % ", ".join(
671
+ k + "=" + repr(v) for k, v in self._values.items()
672
+ )
673
+
674
+ @jsii.data_type(
675
+ jsii_type="aws-cdk-lib.aws_pcs.CfnCluster.SchedulerProperty",
676
+ jsii_struct_bases=[],
677
+ name_mapping={"type": "type", "version": "version"},
678
+ )
679
+ class SchedulerProperty:
680
+ def __init__(self, *, type: builtins.str, version: builtins.str) -> None:
681
+ '''The cluster management and job scheduling software associated with the cluster.
682
+
683
+ :param type: The software AWS PCS uses to manage cluster scaling and job scheduling.
684
+ :param version: The version of the specified scheduling software that AWS PCS uses to manage cluster scaling and job scheduling.
685
+
686
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-scheduler.html
687
+ :exampleMetadata: fixture=_generated
688
+
689
+ Example::
690
+
691
+ # The code below shows an example of how to instantiate this type.
692
+ # The values are placeholders you should change.
693
+ from aws_cdk import aws_pcs as pcs
694
+
695
+ scheduler_property = pcs.CfnCluster.SchedulerProperty(
696
+ type="type",
697
+ version="version"
698
+ )
699
+ '''
700
+ if __debug__:
701
+ type_hints = typing.get_type_hints(_typecheckingstub__fe24d9f1c44d1db4489549227b033216d5b6490b74f43ce9c2871e34c4d886ce)
702
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
703
+ check_type(argname="argument version", value=version, expected_type=type_hints["version"])
704
+ self._values: typing.Dict[builtins.str, typing.Any] = {
705
+ "type": type,
706
+ "version": version,
707
+ }
708
+
709
+ @builtins.property
710
+ def type(self) -> builtins.str:
711
+ '''The software AWS PCS uses to manage cluster scaling and job scheduling.
712
+
713
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-scheduler.html#cfn-pcs-cluster-scheduler-type
714
+ '''
715
+ result = self._values.get("type")
716
+ assert result is not None, "Required property 'type' is missing"
717
+ return typing.cast(builtins.str, result)
718
+
719
+ @builtins.property
720
+ def version(self) -> builtins.str:
721
+ '''The version of the specified scheduling software that AWS PCS uses to manage cluster scaling and job scheduling.
722
+
723
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-scheduler.html#cfn-pcs-cluster-scheduler-version
724
+ '''
725
+ result = self._values.get("version")
726
+ assert result is not None, "Required property 'version' is missing"
727
+ return typing.cast(builtins.str, result)
728
+
729
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
730
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
731
+
732
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
733
+ return not (rhs == self)
734
+
735
+ def __repr__(self) -> str:
736
+ return "SchedulerProperty(%s)" % ", ".join(
737
+ k + "=" + repr(v) for k, v in self._values.items()
738
+ )
739
+
740
+ @jsii.data_type(
741
+ jsii_type="aws-cdk-lib.aws_pcs.CfnCluster.SlurmConfigurationProperty",
742
+ jsii_struct_bases=[],
743
+ name_mapping={
744
+ "auth_key": "authKey",
745
+ "scale_down_idle_time_in_seconds": "scaleDownIdleTimeInSeconds",
746
+ "slurm_custom_settings": "slurmCustomSettings",
747
+ },
748
+ )
749
+ class SlurmConfigurationProperty:
750
+ def __init__(
751
+ self,
752
+ *,
753
+ auth_key: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.AuthKeyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
754
+ scale_down_idle_time_in_seconds: typing.Optional[jsii.Number] = None,
755
+ slurm_custom_settings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.SlurmCustomSettingProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
756
+ ) -> None:
757
+ '''Additional options related to the Slurm scheduler.
758
+
759
+ :param auth_key: The shared Slurm key for authentication, also known as the cluster secret.
760
+ :param scale_down_idle_time_in_seconds: The time before an idle node is scaled down.
761
+ :param slurm_custom_settings: Additional Slurm-specific configuration that directly maps to Slurm settings.
762
+
763
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-slurmconfiguration.html
764
+ :exampleMetadata: fixture=_generated
765
+
766
+ Example::
767
+
768
+ # The code below shows an example of how to instantiate this type.
769
+ # The values are placeholders you should change.
770
+ from aws_cdk import aws_pcs as pcs
771
+
772
+ slurm_configuration_property = pcs.CfnCluster.SlurmConfigurationProperty(
773
+ auth_key=pcs.CfnCluster.AuthKeyProperty(
774
+ secret_arn="secretArn",
775
+ secret_version="secretVersion"
776
+ ),
777
+ scale_down_idle_time_in_seconds=123,
778
+ slurm_custom_settings=[pcs.CfnCluster.SlurmCustomSettingProperty(
779
+ parameter_name="parameterName",
780
+ parameter_value="parameterValue"
781
+ )]
782
+ )
783
+ '''
784
+ if __debug__:
785
+ type_hints = typing.get_type_hints(_typecheckingstub__e6bb8855a5cf237041c92e56f09fd1b1d2d40c49f363bfde280100fbfd6f137f)
786
+ check_type(argname="argument auth_key", value=auth_key, expected_type=type_hints["auth_key"])
787
+ check_type(argname="argument scale_down_idle_time_in_seconds", value=scale_down_idle_time_in_seconds, expected_type=type_hints["scale_down_idle_time_in_seconds"])
788
+ check_type(argname="argument slurm_custom_settings", value=slurm_custom_settings, expected_type=type_hints["slurm_custom_settings"])
789
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
790
+ if auth_key is not None:
791
+ self._values["auth_key"] = auth_key
792
+ if scale_down_idle_time_in_seconds is not None:
793
+ self._values["scale_down_idle_time_in_seconds"] = scale_down_idle_time_in_seconds
794
+ if slurm_custom_settings is not None:
795
+ self._values["slurm_custom_settings"] = slurm_custom_settings
796
+
797
+ @builtins.property
798
+ def auth_key(
799
+ self,
800
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.AuthKeyProperty"]]:
801
+ '''The shared Slurm key for authentication, also known as the cluster secret.
802
+
803
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-slurmconfiguration.html#cfn-pcs-cluster-slurmconfiguration-authkey
804
+ '''
805
+ result = self._values.get("auth_key")
806
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.AuthKeyProperty"]], result)
807
+
808
+ @builtins.property
809
+ def scale_down_idle_time_in_seconds(self) -> typing.Optional[jsii.Number]:
810
+ '''The time before an idle node is scaled down.
811
+
812
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-slurmconfiguration.html#cfn-pcs-cluster-slurmconfiguration-scaledownidletimeinseconds
813
+ '''
814
+ result = self._values.get("scale_down_idle_time_in_seconds")
815
+ return typing.cast(typing.Optional[jsii.Number], result)
816
+
817
+ @builtins.property
818
+ def slurm_custom_settings(
819
+ self,
820
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCluster.SlurmCustomSettingProperty"]]]]:
821
+ '''Additional Slurm-specific configuration that directly maps to Slurm settings.
822
+
823
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-slurmconfiguration.html#cfn-pcs-cluster-slurmconfiguration-slurmcustomsettings
824
+ '''
825
+ result = self._values.get("slurm_custom_settings")
826
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCluster.SlurmCustomSettingProperty"]]]], result)
827
+
828
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
829
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
830
+
831
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
832
+ return not (rhs == self)
833
+
834
+ def __repr__(self) -> str:
835
+ return "SlurmConfigurationProperty(%s)" % ", ".join(
836
+ k + "=" + repr(v) for k, v in self._values.items()
837
+ )
838
+
839
+ @jsii.data_type(
840
+ jsii_type="aws-cdk-lib.aws_pcs.CfnCluster.SlurmCustomSettingProperty",
841
+ jsii_struct_bases=[],
842
+ name_mapping={
843
+ "parameter_name": "parameterName",
844
+ "parameter_value": "parameterValue",
845
+ },
846
+ )
847
+ class SlurmCustomSettingProperty:
848
+ def __init__(
849
+ self,
850
+ *,
851
+ parameter_name: builtins.str,
852
+ parameter_value: builtins.str,
853
+ ) -> None:
854
+ '''Additional settings that directly map to Slurm settings.
855
+
856
+ :param parameter_name: AWS PCS supports configuration of the following Slurm parameters:. - For *clusters* - ```Prolog`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Prolog_1>`_ - ```Epilog`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog_1>`_ - ```SelectTypeParameters`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_SelectTypeParameters>`_ - For *compute node groups* - ```Weight`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Weight>`_ - ```RealMemory`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Weight>`_
857
+ :param parameter_value: The values for the configured Slurm settings.
858
+
859
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-slurmcustomsetting.html
860
+ :exampleMetadata: fixture=_generated
861
+
862
+ Example::
863
+
864
+ # The code below shows an example of how to instantiate this type.
865
+ # The values are placeholders you should change.
866
+ from aws_cdk import aws_pcs as pcs
867
+
868
+ slurm_custom_setting_property = pcs.CfnCluster.SlurmCustomSettingProperty(
869
+ parameter_name="parameterName",
870
+ parameter_value="parameterValue"
871
+ )
872
+ '''
873
+ if __debug__:
874
+ type_hints = typing.get_type_hints(_typecheckingstub__b9d168abcd7adc19d99485fc5db81c30bba87bb255608ac3a4487d1a1028fd33)
875
+ check_type(argname="argument parameter_name", value=parameter_name, expected_type=type_hints["parameter_name"])
876
+ check_type(argname="argument parameter_value", value=parameter_value, expected_type=type_hints["parameter_value"])
877
+ self._values: typing.Dict[builtins.str, typing.Any] = {
878
+ "parameter_name": parameter_name,
879
+ "parameter_value": parameter_value,
880
+ }
881
+
882
+ @builtins.property
883
+ def parameter_name(self) -> builtins.str:
884
+ '''AWS PCS supports configuration of the following Slurm parameters:.
885
+
886
+ - For *clusters*
887
+ - ```Prolog`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Prolog_1>`_
888
+ - ```Epilog`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog_1>`_
889
+ - ```SelectTypeParameters`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_SelectTypeParameters>`_
890
+ - For *compute node groups*
891
+ - ```Weight`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Weight>`_
892
+ - ```RealMemory`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Weight>`_
893
+
894
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-slurmcustomsetting.html#cfn-pcs-cluster-slurmcustomsetting-parametername
895
+ '''
896
+ result = self._values.get("parameter_name")
897
+ assert result is not None, "Required property 'parameter_name' is missing"
898
+ return typing.cast(builtins.str, result)
899
+
900
+ @builtins.property
901
+ def parameter_value(self) -> builtins.str:
902
+ '''The values for the configured Slurm settings.
903
+
904
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-cluster-slurmcustomsetting.html#cfn-pcs-cluster-slurmcustomsetting-parametervalue
905
+ '''
906
+ result = self._values.get("parameter_value")
907
+ assert result is not None, "Required property 'parameter_value' is missing"
908
+ return typing.cast(builtins.str, result)
909
+
910
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
911
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
912
+
913
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
914
+ return not (rhs == self)
915
+
916
+ def __repr__(self) -> str:
917
+ return "SlurmCustomSettingProperty(%s)" % ", ".join(
918
+ k + "=" + repr(v) for k, v in self._values.items()
919
+ )
920
+
921
+
922
+ @jsii.data_type(
923
+ jsii_type="aws-cdk-lib.aws_pcs.CfnClusterProps",
924
+ jsii_struct_bases=[],
925
+ name_mapping={
926
+ "networking": "networking",
927
+ "scheduler": "scheduler",
928
+ "size": "size",
929
+ "name": "name",
930
+ "slurm_configuration": "slurmConfiguration",
931
+ "tags": "tags",
932
+ },
933
+ )
934
+ class CfnClusterProps:
935
+ def __init__(
936
+ self,
937
+ *,
938
+ networking: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.NetworkingProperty, typing.Dict[builtins.str, typing.Any]]],
939
+ scheduler: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.SchedulerProperty, typing.Dict[builtins.str, typing.Any]]],
940
+ size: builtins.str,
941
+ name: typing.Optional[builtins.str] = None,
942
+ slurm_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.SlurmConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
943
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
944
+ ) -> None:
945
+ '''Properties for defining a ``CfnCluster``.
946
+
947
+ :param networking: The networking configuration for the cluster's control plane.
948
+ :param scheduler: The cluster management and job scheduling software associated with the cluster.
949
+ :param size: The size of the cluster.
950
+ :param name: The name that identifies the cluster.
951
+ :param slurm_configuration: Additional options related to the Slurm scheduler.
952
+ :param tags: 1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
953
+
954
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html
955
+ :exampleMetadata: fixture=_generated
956
+
957
+ Example::
958
+
959
+ # The code below shows an example of how to instantiate this type.
960
+ # The values are placeholders you should change.
961
+ from aws_cdk import aws_pcs as pcs
962
+
963
+ cfn_cluster_props = pcs.CfnClusterProps(
964
+ networking=pcs.CfnCluster.NetworkingProperty(
965
+ security_group_ids=["securityGroupIds"],
966
+ subnet_ids=["subnetIds"]
967
+ ),
968
+ scheduler=pcs.CfnCluster.SchedulerProperty(
969
+ type="type",
970
+ version="version"
971
+ ),
972
+ size="size",
973
+
974
+ # the properties below are optional
975
+ name="name",
976
+ slurm_configuration=pcs.CfnCluster.SlurmConfigurationProperty(
977
+ auth_key=pcs.CfnCluster.AuthKeyProperty(
978
+ secret_arn="secretArn",
979
+ secret_version="secretVersion"
980
+ ),
981
+ scale_down_idle_time_in_seconds=123,
982
+ slurm_custom_settings=[pcs.CfnCluster.SlurmCustomSettingProperty(
983
+ parameter_name="parameterName",
984
+ parameter_value="parameterValue"
985
+ )]
986
+ ),
987
+ tags={
988
+ "tags_key": "tags"
989
+ }
990
+ )
991
+ '''
992
+ if __debug__:
993
+ type_hints = typing.get_type_hints(_typecheckingstub__1acc8d7c41893eaa3f211b6514471817eb607a349cab301161899ae592f0bdf0)
994
+ check_type(argname="argument networking", value=networking, expected_type=type_hints["networking"])
995
+ check_type(argname="argument scheduler", value=scheduler, expected_type=type_hints["scheduler"])
996
+ check_type(argname="argument size", value=size, expected_type=type_hints["size"])
997
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
998
+ check_type(argname="argument slurm_configuration", value=slurm_configuration, expected_type=type_hints["slurm_configuration"])
999
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1000
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1001
+ "networking": networking,
1002
+ "scheduler": scheduler,
1003
+ "size": size,
1004
+ }
1005
+ if name is not None:
1006
+ self._values["name"] = name
1007
+ if slurm_configuration is not None:
1008
+ self._values["slurm_configuration"] = slurm_configuration
1009
+ if tags is not None:
1010
+ self._values["tags"] = tags
1011
+
1012
+ @builtins.property
1013
+ def networking(
1014
+ self,
1015
+ ) -> typing.Union[_IResolvable_da3f097b, CfnCluster.NetworkingProperty]:
1016
+ '''The networking configuration for the cluster's control plane.
1017
+
1018
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html#cfn-pcs-cluster-networking
1019
+ '''
1020
+ result = self._values.get("networking")
1021
+ assert result is not None, "Required property 'networking' is missing"
1022
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnCluster.NetworkingProperty], result)
1023
+
1024
+ @builtins.property
1025
+ def scheduler(
1026
+ self,
1027
+ ) -> typing.Union[_IResolvable_da3f097b, CfnCluster.SchedulerProperty]:
1028
+ '''The cluster management and job scheduling software associated with the cluster.
1029
+
1030
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html#cfn-pcs-cluster-scheduler
1031
+ '''
1032
+ result = self._values.get("scheduler")
1033
+ assert result is not None, "Required property 'scheduler' is missing"
1034
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnCluster.SchedulerProperty], result)
1035
+
1036
+ @builtins.property
1037
+ def size(self) -> builtins.str:
1038
+ '''The size of the cluster.
1039
+
1040
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html#cfn-pcs-cluster-size
1041
+ '''
1042
+ result = self._values.get("size")
1043
+ assert result is not None, "Required property 'size' is missing"
1044
+ return typing.cast(builtins.str, result)
1045
+
1046
+ @builtins.property
1047
+ def name(self) -> typing.Optional[builtins.str]:
1048
+ '''The name that identifies the cluster.
1049
+
1050
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html#cfn-pcs-cluster-name
1051
+ '''
1052
+ result = self._values.get("name")
1053
+ return typing.cast(typing.Optional[builtins.str], result)
1054
+
1055
+ @builtins.property
1056
+ def slurm_configuration(
1057
+ self,
1058
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.SlurmConfigurationProperty]]:
1059
+ '''Additional options related to the Slurm scheduler.
1060
+
1061
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html#cfn-pcs-cluster-slurmconfiguration
1062
+ '''
1063
+ result = self._values.get("slurm_configuration")
1064
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.SlurmConfigurationProperty]], result)
1065
+
1066
+ @builtins.property
1067
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
1068
+ '''1 or more tags added to the resource.
1069
+
1070
+ Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
1071
+
1072
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-cluster.html#cfn-pcs-cluster-tags
1073
+ '''
1074
+ result = self._values.get("tags")
1075
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
1076
+
1077
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1078
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1079
+
1080
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1081
+ return not (rhs == self)
1082
+
1083
+ def __repr__(self) -> str:
1084
+ return "CfnClusterProps(%s)" % ", ".join(
1085
+ k + "=" + repr(v) for k, v in self._values.items()
1086
+ )
1087
+
1088
+
1089
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
1090
+ class CfnComputeNodeGroup(
1091
+ _CfnResource_9df397a6,
1092
+ metaclass=jsii.JSIIMeta,
1093
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroup",
1094
+ ):
1095
+ '''The ``AWS::PCS::ComputeNodeGroup`` resource creates an AWS PCS compute node group.
1096
+
1097
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html
1098
+ :cloudformationResource: AWS::PCS::ComputeNodeGroup
1099
+ :exampleMetadata: fixture=_generated
1100
+
1101
+ Example::
1102
+
1103
+ # The code below shows an example of how to instantiate this type.
1104
+ # The values are placeholders you should change.
1105
+ from aws_cdk import aws_pcs as pcs
1106
+
1107
+ cfn_compute_node_group = pcs.CfnComputeNodeGroup(self, "MyCfnComputeNodeGroup",
1108
+ cluster_id="clusterId",
1109
+ custom_launch_template=pcs.CfnComputeNodeGroup.CustomLaunchTemplateProperty(
1110
+ id="id",
1111
+ version="version"
1112
+ ),
1113
+ iam_instance_profile_arn="iamInstanceProfileArn",
1114
+ instance_configs=[pcs.CfnComputeNodeGroup.InstanceConfigProperty(
1115
+ instance_type="instanceType"
1116
+ )],
1117
+ scaling_configuration=pcs.CfnComputeNodeGroup.ScalingConfigurationProperty(
1118
+ max_instance_count=123,
1119
+ min_instance_count=123
1120
+ ),
1121
+ subnet_ids=["subnetIds"],
1122
+
1123
+ # the properties below are optional
1124
+ ami_id="amiId",
1125
+ name="name",
1126
+ purchase_option="purchaseOption",
1127
+ slurm_configuration=pcs.CfnComputeNodeGroup.SlurmConfigurationProperty(
1128
+ slurm_custom_settings=[pcs.CfnComputeNodeGroup.SlurmCustomSettingProperty(
1129
+ parameter_name="parameterName",
1130
+ parameter_value="parameterValue"
1131
+ )]
1132
+ ),
1133
+ spot_options=pcs.CfnComputeNodeGroup.SpotOptionsProperty(
1134
+ allocation_strategy="allocationStrategy"
1135
+ ),
1136
+ tags={
1137
+ "tags_key": "tags"
1138
+ }
1139
+ )
1140
+ '''
1141
+
1142
+ def __init__(
1143
+ self,
1144
+ scope: _constructs_77d1e7e8.Construct,
1145
+ id: builtins.str,
1146
+ *,
1147
+ cluster_id: builtins.str,
1148
+ custom_launch_template: typing.Union[_IResolvable_da3f097b, typing.Union["CfnComputeNodeGroup.CustomLaunchTemplateProperty", typing.Dict[builtins.str, typing.Any]]],
1149
+ iam_instance_profile_arn: builtins.str,
1150
+ instance_configs: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnComputeNodeGroup.InstanceConfigProperty", typing.Dict[builtins.str, typing.Any]]]]],
1151
+ scaling_configuration: typing.Union[_IResolvable_da3f097b, typing.Union["CfnComputeNodeGroup.ScalingConfigurationProperty", typing.Dict[builtins.str, typing.Any]]],
1152
+ subnet_ids: typing.Sequence[builtins.str],
1153
+ ami_id: typing.Optional[builtins.str] = None,
1154
+ name: typing.Optional[builtins.str] = None,
1155
+ purchase_option: typing.Optional[builtins.str] = None,
1156
+ slurm_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnComputeNodeGroup.SlurmConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1157
+ spot_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnComputeNodeGroup.SpotOptionsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1158
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1159
+ ) -> None:
1160
+ '''
1161
+ :param scope: Scope in which this resource is defined.
1162
+ :param id: Construct identifier for this resource (unique in its scope).
1163
+ :param cluster_id: The ID of the cluster of the compute node group.
1164
+ :param custom_launch_template: An Amazon EC2 launch template AWS PCS uses to launch compute nodes.
1165
+ :param iam_instance_profile_arn: The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have pcs:RegisterComputeNodeGroupInstance permissions attached to provision instances correctly.
1166
+ :param instance_configs: A list of EC2 instance configurations that AWS PCS can provision in the compute node group.
1167
+ :param scaling_configuration: Specifies the boundaries of the compute node group auto scaling.
1168
+ :param subnet_ids: The list of subnet IDs where instances are provisioned by the compute node group. The subnets must be in the same VPC as the cluster.
1169
+ :param ami_id: The ID of the Amazon Machine Image (AMI) that AWS PCS uses to launch instances. If not provided, AWS PCS uses the AMI ID specified in the custom launch template.
1170
+ :param name: The name that identifies the compute node group.
1171
+ :param purchase_option: Specifies how EC2 instances are purchased on your behalf. AWS PCS supports On-Demand and Spot instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.
1172
+ :param slurm_configuration: Additional options related to the Slurm scheduler.
1173
+ :param spot_options: Additional configuration when you specify ``SPOT`` as the ``purchaseOption`` .
1174
+ :param tags: 1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
1175
+ '''
1176
+ if __debug__:
1177
+ type_hints = typing.get_type_hints(_typecheckingstub__5d74625cecbce8d2048b29b24f3148123fb31c64b330ed51fd45d2b2c42d1c20)
1178
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1179
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1180
+ props = CfnComputeNodeGroupProps(
1181
+ cluster_id=cluster_id,
1182
+ custom_launch_template=custom_launch_template,
1183
+ iam_instance_profile_arn=iam_instance_profile_arn,
1184
+ instance_configs=instance_configs,
1185
+ scaling_configuration=scaling_configuration,
1186
+ subnet_ids=subnet_ids,
1187
+ ami_id=ami_id,
1188
+ name=name,
1189
+ purchase_option=purchase_option,
1190
+ slurm_configuration=slurm_configuration,
1191
+ spot_options=spot_options,
1192
+ tags=tags,
1193
+ )
1194
+
1195
+ jsii.create(self.__class__, self, [scope, id, props])
1196
+
1197
+ @jsii.member(jsii_name="inspect")
1198
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
1199
+ '''Examines the CloudFormation resource and discloses attributes.
1200
+
1201
+ :param inspector: tree inspector to collect and process attributes.
1202
+ '''
1203
+ if __debug__:
1204
+ type_hints = typing.get_type_hints(_typecheckingstub__d833050301c35ecc35d9e2cf88fc748a8f8174e49289d0e2719e757def93e83c)
1205
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
1206
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
1207
+
1208
+ @jsii.member(jsii_name="renderProperties")
1209
+ def _render_properties(
1210
+ self,
1211
+ props: typing.Mapping[builtins.str, typing.Any],
1212
+ ) -> typing.Mapping[builtins.str, typing.Any]:
1213
+ '''
1214
+ :param props: -
1215
+ '''
1216
+ if __debug__:
1217
+ type_hints = typing.get_type_hints(_typecheckingstub__571860de08b34398201b8498268e8b69422d6e17de99d62fd83b52005d26a6b5)
1218
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1219
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1220
+
1221
+ @jsii.python.classproperty
1222
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
1223
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1224
+ '''The CloudFormation resource type name for this resource class.'''
1225
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1226
+
1227
+ @builtins.property
1228
+ @jsii.member(jsii_name="attrArn")
1229
+ def attr_arn(self) -> builtins.str:
1230
+ '''The unique Amazon Resource Name (ARN) of the compute node group.
1231
+
1232
+ :cloudformationAttribute: Arn
1233
+ '''
1234
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
1235
+
1236
+ @builtins.property
1237
+ @jsii.member(jsii_name="attrErrorInfo")
1238
+ def attr_error_info(self) -> _IResolvable_da3f097b:
1239
+ '''The list of errors that occurred during compute node group provisioning.
1240
+
1241
+ :cloudformationAttribute: ErrorInfo
1242
+ '''
1243
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrErrorInfo"))
1244
+
1245
+ @builtins.property
1246
+ @jsii.member(jsii_name="attrId")
1247
+ def attr_id(self) -> builtins.str:
1248
+ '''The generated unique ID of the compute node group.
1249
+
1250
+ :cloudformationAttribute: Id
1251
+ '''
1252
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
1253
+
1254
+ @builtins.property
1255
+ @jsii.member(jsii_name="attrStatus")
1256
+ def attr_status(self) -> builtins.str:
1257
+ '''The provisioning status of the compute node group.
1258
+
1259
+ The provisioning status doesn't indicate the overall health of the compute node group.
1260
+
1261
+ :cloudformationAttribute: Status
1262
+ '''
1263
+ return typing.cast(builtins.str, jsii.get(self, "attrStatus"))
1264
+
1265
+ @builtins.property
1266
+ @jsii.member(jsii_name="cdkTagManager")
1267
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
1268
+ '''Tag Manager which manages the tags for this resource.'''
1269
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
1270
+
1271
+ @builtins.property
1272
+ @jsii.member(jsii_name="cfnProperties")
1273
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1274
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1275
+
1276
+ @builtins.property
1277
+ @jsii.member(jsii_name="clusterId")
1278
+ def cluster_id(self) -> builtins.str:
1279
+ '''The ID of the cluster of the compute node group.'''
1280
+ return typing.cast(builtins.str, jsii.get(self, "clusterId"))
1281
+
1282
+ @cluster_id.setter
1283
+ def cluster_id(self, value: builtins.str) -> None:
1284
+ if __debug__:
1285
+ type_hints = typing.get_type_hints(_typecheckingstub__27a33200e9f918661858505e376a9533b97ee45f0f14cd2c479bb9e61b1effc1)
1286
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1287
+ jsii.set(self, "clusterId", value) # pyright: ignore[reportArgumentType]
1288
+
1289
+ @builtins.property
1290
+ @jsii.member(jsii_name="customLaunchTemplate")
1291
+ def custom_launch_template(
1292
+ self,
1293
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.CustomLaunchTemplateProperty"]:
1294
+ '''An Amazon EC2 launch template AWS PCS uses to launch compute nodes.'''
1295
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.CustomLaunchTemplateProperty"], jsii.get(self, "customLaunchTemplate"))
1296
+
1297
+ @custom_launch_template.setter
1298
+ def custom_launch_template(
1299
+ self,
1300
+ value: typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.CustomLaunchTemplateProperty"],
1301
+ ) -> None:
1302
+ if __debug__:
1303
+ type_hints = typing.get_type_hints(_typecheckingstub__bf4a47490919e9b97683082d58e0ccf8649fd09ec2c5f621c3f8467d84363706)
1304
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1305
+ jsii.set(self, "customLaunchTemplate", value) # pyright: ignore[reportArgumentType]
1306
+
1307
+ @builtins.property
1308
+ @jsii.member(jsii_name="iamInstanceProfileArn")
1309
+ def iam_instance_profile_arn(self) -> builtins.str:
1310
+ '''The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances.'''
1311
+ return typing.cast(builtins.str, jsii.get(self, "iamInstanceProfileArn"))
1312
+
1313
+ @iam_instance_profile_arn.setter
1314
+ def iam_instance_profile_arn(self, value: builtins.str) -> None:
1315
+ if __debug__:
1316
+ type_hints = typing.get_type_hints(_typecheckingstub__77021f3115c7344dc9b7365b13a661fa578c34c1997a99dd619003646b7e460a)
1317
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1318
+ jsii.set(self, "iamInstanceProfileArn", value) # pyright: ignore[reportArgumentType]
1319
+
1320
+ @builtins.property
1321
+ @jsii.member(jsii_name="instanceConfigs")
1322
+ def instance_configs(
1323
+ self,
1324
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.InstanceConfigProperty"]]]:
1325
+ '''A list of EC2 instance configurations that AWS PCS can provision in the compute node group.'''
1326
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.InstanceConfigProperty"]]], jsii.get(self, "instanceConfigs"))
1327
+
1328
+ @instance_configs.setter
1329
+ def instance_configs(
1330
+ self,
1331
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.InstanceConfigProperty"]]],
1332
+ ) -> None:
1333
+ if __debug__:
1334
+ type_hints = typing.get_type_hints(_typecheckingstub__dd2f09e3d9b4cca4eab96f7862d7a047649e41118beecac43ed36e424625aa02)
1335
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1336
+ jsii.set(self, "instanceConfigs", value) # pyright: ignore[reportArgumentType]
1337
+
1338
+ @builtins.property
1339
+ @jsii.member(jsii_name="scalingConfiguration")
1340
+ def scaling_configuration(
1341
+ self,
1342
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.ScalingConfigurationProperty"]:
1343
+ '''Specifies the boundaries of the compute node group auto scaling.'''
1344
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.ScalingConfigurationProperty"], jsii.get(self, "scalingConfiguration"))
1345
+
1346
+ @scaling_configuration.setter
1347
+ def scaling_configuration(
1348
+ self,
1349
+ value: typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.ScalingConfigurationProperty"],
1350
+ ) -> None:
1351
+ if __debug__:
1352
+ type_hints = typing.get_type_hints(_typecheckingstub__faa6826218f9909223a7fac326f705e3e75a1469e1ec902fe056022fd0a6adf1)
1353
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1354
+ jsii.set(self, "scalingConfiguration", value) # pyright: ignore[reportArgumentType]
1355
+
1356
+ @builtins.property
1357
+ @jsii.member(jsii_name="subnetIds")
1358
+ def subnet_ids(self) -> typing.List[builtins.str]:
1359
+ '''The list of subnet IDs where instances are provisioned by the compute node group.'''
1360
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "subnetIds"))
1361
+
1362
+ @subnet_ids.setter
1363
+ def subnet_ids(self, value: typing.List[builtins.str]) -> None:
1364
+ if __debug__:
1365
+ type_hints = typing.get_type_hints(_typecheckingstub__c6c11a7ef6bbf97645d89e780e4819e5c51eacccbab5c6e46497a3e31accf32e)
1366
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1367
+ jsii.set(self, "subnetIds", value) # pyright: ignore[reportArgumentType]
1368
+
1369
+ @builtins.property
1370
+ @jsii.member(jsii_name="amiId")
1371
+ def ami_id(self) -> typing.Optional[builtins.str]:
1372
+ '''The ID of the Amazon Machine Image (AMI) that AWS PCS uses to launch instances.'''
1373
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "amiId"))
1374
+
1375
+ @ami_id.setter
1376
+ def ami_id(self, value: typing.Optional[builtins.str]) -> None:
1377
+ if __debug__:
1378
+ type_hints = typing.get_type_hints(_typecheckingstub__ce6f7916bab348203539e21c424ed76ed039fc805a1e3d704cca40baffc97318)
1379
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1380
+ jsii.set(self, "amiId", value) # pyright: ignore[reportArgumentType]
1381
+
1382
+ @builtins.property
1383
+ @jsii.member(jsii_name="name")
1384
+ def name(self) -> typing.Optional[builtins.str]:
1385
+ '''The name that identifies the compute node group.'''
1386
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "name"))
1387
+
1388
+ @name.setter
1389
+ def name(self, value: typing.Optional[builtins.str]) -> None:
1390
+ if __debug__:
1391
+ type_hints = typing.get_type_hints(_typecheckingstub__621c25d891dcaffc1e388ad783cc5d71aeffd2776b0166c92fce41e6d992d2d7)
1392
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1393
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
1394
+
1395
+ @builtins.property
1396
+ @jsii.member(jsii_name="purchaseOption")
1397
+ def purchase_option(self) -> typing.Optional[builtins.str]:
1398
+ '''Specifies how EC2 instances are purchased on your behalf.'''
1399
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "purchaseOption"))
1400
+
1401
+ @purchase_option.setter
1402
+ def purchase_option(self, value: typing.Optional[builtins.str]) -> None:
1403
+ if __debug__:
1404
+ type_hints = typing.get_type_hints(_typecheckingstub__abf0b129d8eff2b9d98cc25ed6c3cbfebb7f706aa5948692e942f1a485c29a79)
1405
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1406
+ jsii.set(self, "purchaseOption", value) # pyright: ignore[reportArgumentType]
1407
+
1408
+ @builtins.property
1409
+ @jsii.member(jsii_name="slurmConfiguration")
1410
+ def slurm_configuration(
1411
+ self,
1412
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.SlurmConfigurationProperty"]]:
1413
+ '''Additional options related to the Slurm scheduler.'''
1414
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.SlurmConfigurationProperty"]], jsii.get(self, "slurmConfiguration"))
1415
+
1416
+ @slurm_configuration.setter
1417
+ def slurm_configuration(
1418
+ self,
1419
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.SlurmConfigurationProperty"]],
1420
+ ) -> None:
1421
+ if __debug__:
1422
+ type_hints = typing.get_type_hints(_typecheckingstub__8d5c6af28cfa6220ac6fe417a830b4b39cfb3320cd91ef31f4ef71aa5f6d934b)
1423
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1424
+ jsii.set(self, "slurmConfiguration", value) # pyright: ignore[reportArgumentType]
1425
+
1426
+ @builtins.property
1427
+ @jsii.member(jsii_name="spotOptions")
1428
+ def spot_options(
1429
+ self,
1430
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.SpotOptionsProperty"]]:
1431
+ '''Additional configuration when you specify ``SPOT`` as the ``purchaseOption`` .'''
1432
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.SpotOptionsProperty"]], jsii.get(self, "spotOptions"))
1433
+
1434
+ @spot_options.setter
1435
+ def spot_options(
1436
+ self,
1437
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.SpotOptionsProperty"]],
1438
+ ) -> None:
1439
+ if __debug__:
1440
+ type_hints = typing.get_type_hints(_typecheckingstub__25d7dc8c33129932f54cb9e69a7f2e96a79caaf423f50891bd309efbb2cf8a56)
1441
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1442
+ jsii.set(self, "spotOptions", value) # pyright: ignore[reportArgumentType]
1443
+
1444
+ @builtins.property
1445
+ @jsii.member(jsii_name="tags")
1446
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
1447
+ '''1 or more tags added to the resource.'''
1448
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "tags"))
1449
+
1450
+ @tags.setter
1451
+ def tags(
1452
+ self,
1453
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
1454
+ ) -> None:
1455
+ if __debug__:
1456
+ type_hints = typing.get_type_hints(_typecheckingstub__4f9d940f011938958eb70282b41c84f70c7f86093c1788ec73b310de39dd817d)
1457
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1458
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
1459
+
1460
+ @jsii.data_type(
1461
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroup.CustomLaunchTemplateProperty",
1462
+ jsii_struct_bases=[],
1463
+ name_mapping={"id": "id", "version": "version"},
1464
+ )
1465
+ class CustomLaunchTemplateProperty:
1466
+ def __init__(self, *, id: builtins.str, version: builtins.str) -> None:
1467
+ '''An Amazon EC2 launch template AWS PCS uses to launch compute nodes.
1468
+
1469
+ :param id: The ID of the EC2 launch template to use to provision instances.
1470
+ :param version: The version of the EC2 launch template to use to provision instances.
1471
+
1472
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-customlaunchtemplate.html
1473
+ :exampleMetadata: fixture=_generated
1474
+
1475
+ Example::
1476
+
1477
+ # The code below shows an example of how to instantiate this type.
1478
+ # The values are placeholders you should change.
1479
+ from aws_cdk import aws_pcs as pcs
1480
+
1481
+ custom_launch_template_property = pcs.CfnComputeNodeGroup.CustomLaunchTemplateProperty(
1482
+ id="id",
1483
+ version="version"
1484
+ )
1485
+ '''
1486
+ if __debug__:
1487
+ type_hints = typing.get_type_hints(_typecheckingstub__f5e18d4eaf127cbbf203643daa28b5c0a8105f4a3d48ce6e2c896d6f851d7911)
1488
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1489
+ check_type(argname="argument version", value=version, expected_type=type_hints["version"])
1490
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1491
+ "id": id,
1492
+ "version": version,
1493
+ }
1494
+
1495
+ @builtins.property
1496
+ def id(self) -> builtins.str:
1497
+ '''The ID of the EC2 launch template to use to provision instances.
1498
+
1499
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-customlaunchtemplate.html#cfn-pcs-computenodegroup-customlaunchtemplate-id
1500
+ '''
1501
+ result = self._values.get("id")
1502
+ assert result is not None, "Required property 'id' is missing"
1503
+ return typing.cast(builtins.str, result)
1504
+
1505
+ @builtins.property
1506
+ def version(self) -> builtins.str:
1507
+ '''The version of the EC2 launch template to use to provision instances.
1508
+
1509
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-customlaunchtemplate.html#cfn-pcs-computenodegroup-customlaunchtemplate-version
1510
+ '''
1511
+ result = self._values.get("version")
1512
+ assert result is not None, "Required property 'version' is missing"
1513
+ return typing.cast(builtins.str, result)
1514
+
1515
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1516
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1517
+
1518
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1519
+ return not (rhs == self)
1520
+
1521
+ def __repr__(self) -> str:
1522
+ return "CustomLaunchTemplateProperty(%s)" % ", ".join(
1523
+ k + "=" + repr(v) for k, v in self._values.items()
1524
+ )
1525
+
1526
+ @jsii.data_type(
1527
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroup.ErrorInfoProperty",
1528
+ jsii_struct_bases=[],
1529
+ name_mapping={"code": "code", "message": "message"},
1530
+ )
1531
+ class ErrorInfoProperty:
1532
+ def __init__(
1533
+ self,
1534
+ *,
1535
+ code: typing.Optional[builtins.str] = None,
1536
+ message: typing.Optional[builtins.str] = None,
1537
+ ) -> None:
1538
+ '''The list of errors that occurred during compute node group provisioning.
1539
+
1540
+ :param code: The short-form error code.
1541
+ :param message: The detailed error information.
1542
+
1543
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-errorinfo.html
1544
+ :exampleMetadata: fixture=_generated
1545
+
1546
+ Example::
1547
+
1548
+ # The code below shows an example of how to instantiate this type.
1549
+ # The values are placeholders you should change.
1550
+ from aws_cdk import aws_pcs as pcs
1551
+
1552
+ error_info_property = pcs.CfnComputeNodeGroup.ErrorInfoProperty(
1553
+ code="code",
1554
+ message="message"
1555
+ )
1556
+ '''
1557
+ if __debug__:
1558
+ type_hints = typing.get_type_hints(_typecheckingstub__88387b075e6eeff950872537e019e72d8c0543b07c44cb6fd37f6a6580892efe)
1559
+ check_type(argname="argument code", value=code, expected_type=type_hints["code"])
1560
+ check_type(argname="argument message", value=message, expected_type=type_hints["message"])
1561
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1562
+ if code is not None:
1563
+ self._values["code"] = code
1564
+ if message is not None:
1565
+ self._values["message"] = message
1566
+
1567
+ @builtins.property
1568
+ def code(self) -> typing.Optional[builtins.str]:
1569
+ '''The short-form error code.
1570
+
1571
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-errorinfo.html#cfn-pcs-computenodegroup-errorinfo-code
1572
+ '''
1573
+ result = self._values.get("code")
1574
+ return typing.cast(typing.Optional[builtins.str], result)
1575
+
1576
+ @builtins.property
1577
+ def message(self) -> typing.Optional[builtins.str]:
1578
+ '''The detailed error information.
1579
+
1580
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-errorinfo.html#cfn-pcs-computenodegroup-errorinfo-message
1581
+ '''
1582
+ result = self._values.get("message")
1583
+ return typing.cast(typing.Optional[builtins.str], result)
1584
+
1585
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1586
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1587
+
1588
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1589
+ return not (rhs == self)
1590
+
1591
+ def __repr__(self) -> str:
1592
+ return "ErrorInfoProperty(%s)" % ", ".join(
1593
+ k + "=" + repr(v) for k, v in self._values.items()
1594
+ )
1595
+
1596
+ @jsii.data_type(
1597
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroup.InstanceConfigProperty",
1598
+ jsii_struct_bases=[],
1599
+ name_mapping={"instance_type": "instanceType"},
1600
+ )
1601
+ class InstanceConfigProperty:
1602
+ def __init__(
1603
+ self,
1604
+ *,
1605
+ instance_type: typing.Optional[builtins.str] = None,
1606
+ ) -> None:
1607
+ '''An EC2 instance configuration AWS PCS uses to launch compute nodes.
1608
+
1609
+ :param instance_type: The EC2 instance type that AWS PCS can provision in the compute node group. Example: ``t2.xlarge``
1610
+
1611
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-instanceconfig.html
1612
+ :exampleMetadata: fixture=_generated
1613
+
1614
+ Example::
1615
+
1616
+ # The code below shows an example of how to instantiate this type.
1617
+ # The values are placeholders you should change.
1618
+ from aws_cdk import aws_pcs as pcs
1619
+
1620
+ instance_config_property = pcs.CfnComputeNodeGroup.InstanceConfigProperty(
1621
+ instance_type="instanceType"
1622
+ )
1623
+ '''
1624
+ if __debug__:
1625
+ type_hints = typing.get_type_hints(_typecheckingstub__e94b232b9d47b7a1d244e32e3a5dc754392f55d51698be51f1a5de8260de9a0b)
1626
+ check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
1627
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1628
+ if instance_type is not None:
1629
+ self._values["instance_type"] = instance_type
1630
+
1631
+ @builtins.property
1632
+ def instance_type(self) -> typing.Optional[builtins.str]:
1633
+ '''The EC2 instance type that AWS PCS can provision in the compute node group.
1634
+
1635
+ Example: ``t2.xlarge``
1636
+
1637
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-instanceconfig.html#cfn-pcs-computenodegroup-instanceconfig-instancetype
1638
+ '''
1639
+ result = self._values.get("instance_type")
1640
+ return typing.cast(typing.Optional[builtins.str], result)
1641
+
1642
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1643
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1644
+
1645
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1646
+ return not (rhs == self)
1647
+
1648
+ def __repr__(self) -> str:
1649
+ return "InstanceConfigProperty(%s)" % ", ".join(
1650
+ k + "=" + repr(v) for k, v in self._values.items()
1651
+ )
1652
+
1653
+ @jsii.data_type(
1654
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroup.ScalingConfigurationProperty",
1655
+ jsii_struct_bases=[],
1656
+ name_mapping={
1657
+ "max_instance_count": "maxInstanceCount",
1658
+ "min_instance_count": "minInstanceCount",
1659
+ },
1660
+ )
1661
+ class ScalingConfigurationProperty:
1662
+ def __init__(
1663
+ self,
1664
+ *,
1665
+ max_instance_count: jsii.Number,
1666
+ min_instance_count: jsii.Number,
1667
+ ) -> None:
1668
+ '''Specifies the boundaries of the compute node group auto scaling.
1669
+
1670
+ :param max_instance_count: The upper bound of the number of instances allowed in the compute fleet.
1671
+ :param min_instance_count: The lower bound of the number of instances allowed in the compute fleet.
1672
+
1673
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-scalingconfiguration.html
1674
+ :exampleMetadata: fixture=_generated
1675
+
1676
+ Example::
1677
+
1678
+ # The code below shows an example of how to instantiate this type.
1679
+ # The values are placeholders you should change.
1680
+ from aws_cdk import aws_pcs as pcs
1681
+
1682
+ scaling_configuration_property = pcs.CfnComputeNodeGroup.ScalingConfigurationProperty(
1683
+ max_instance_count=123,
1684
+ min_instance_count=123
1685
+ )
1686
+ '''
1687
+ if __debug__:
1688
+ type_hints = typing.get_type_hints(_typecheckingstub__c591f6ad958f29b5e6c332ca3927c8ba0e76bc075461fbecdd513918b5d0bbcd)
1689
+ check_type(argname="argument max_instance_count", value=max_instance_count, expected_type=type_hints["max_instance_count"])
1690
+ check_type(argname="argument min_instance_count", value=min_instance_count, expected_type=type_hints["min_instance_count"])
1691
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1692
+ "max_instance_count": max_instance_count,
1693
+ "min_instance_count": min_instance_count,
1694
+ }
1695
+
1696
+ @builtins.property
1697
+ def max_instance_count(self) -> jsii.Number:
1698
+ '''The upper bound of the number of instances allowed in the compute fleet.
1699
+
1700
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-scalingconfiguration.html#cfn-pcs-computenodegroup-scalingconfiguration-maxinstancecount
1701
+ '''
1702
+ result = self._values.get("max_instance_count")
1703
+ assert result is not None, "Required property 'max_instance_count' is missing"
1704
+ return typing.cast(jsii.Number, result)
1705
+
1706
+ @builtins.property
1707
+ def min_instance_count(self) -> jsii.Number:
1708
+ '''The lower bound of the number of instances allowed in the compute fleet.
1709
+
1710
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-scalingconfiguration.html#cfn-pcs-computenodegroup-scalingconfiguration-mininstancecount
1711
+ '''
1712
+ result = self._values.get("min_instance_count")
1713
+ assert result is not None, "Required property 'min_instance_count' is missing"
1714
+ return typing.cast(jsii.Number, result)
1715
+
1716
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1717
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1718
+
1719
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1720
+ return not (rhs == self)
1721
+
1722
+ def __repr__(self) -> str:
1723
+ return "ScalingConfigurationProperty(%s)" % ", ".join(
1724
+ k + "=" + repr(v) for k, v in self._values.items()
1725
+ )
1726
+
1727
+ @jsii.data_type(
1728
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroup.SlurmConfigurationProperty",
1729
+ jsii_struct_bases=[],
1730
+ name_mapping={"slurm_custom_settings": "slurmCustomSettings"},
1731
+ )
1732
+ class SlurmConfigurationProperty:
1733
+ def __init__(
1734
+ self,
1735
+ *,
1736
+ slurm_custom_settings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnComputeNodeGroup.SlurmCustomSettingProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1737
+ ) -> None:
1738
+ '''Additional options related to the Slurm scheduler.
1739
+
1740
+ :param slurm_custom_settings: Additional Slurm-specific configuration that directly maps to Slurm settings.
1741
+
1742
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-slurmconfiguration.html
1743
+ :exampleMetadata: fixture=_generated
1744
+
1745
+ Example::
1746
+
1747
+ # The code below shows an example of how to instantiate this type.
1748
+ # The values are placeholders you should change.
1749
+ from aws_cdk import aws_pcs as pcs
1750
+
1751
+ slurm_configuration_property = pcs.CfnComputeNodeGroup.SlurmConfigurationProperty(
1752
+ slurm_custom_settings=[pcs.CfnComputeNodeGroup.SlurmCustomSettingProperty(
1753
+ parameter_name="parameterName",
1754
+ parameter_value="parameterValue"
1755
+ )]
1756
+ )
1757
+ '''
1758
+ if __debug__:
1759
+ type_hints = typing.get_type_hints(_typecheckingstub__33800b7dfb5193bcd6bf17beca91a47b148b0349a0de5c1a62f72612ea620096)
1760
+ check_type(argname="argument slurm_custom_settings", value=slurm_custom_settings, expected_type=type_hints["slurm_custom_settings"])
1761
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1762
+ if slurm_custom_settings is not None:
1763
+ self._values["slurm_custom_settings"] = slurm_custom_settings
1764
+
1765
+ @builtins.property
1766
+ def slurm_custom_settings(
1767
+ self,
1768
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.SlurmCustomSettingProperty"]]]]:
1769
+ '''Additional Slurm-specific configuration that directly maps to Slurm settings.
1770
+
1771
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-slurmconfiguration.html#cfn-pcs-computenodegroup-slurmconfiguration-slurmcustomsettings
1772
+ '''
1773
+ result = self._values.get("slurm_custom_settings")
1774
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnComputeNodeGroup.SlurmCustomSettingProperty"]]]], result)
1775
+
1776
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1777
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1778
+
1779
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1780
+ return not (rhs == self)
1781
+
1782
+ def __repr__(self) -> str:
1783
+ return "SlurmConfigurationProperty(%s)" % ", ".join(
1784
+ k + "=" + repr(v) for k, v in self._values.items()
1785
+ )
1786
+
1787
+ @jsii.data_type(
1788
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroup.SlurmCustomSettingProperty",
1789
+ jsii_struct_bases=[],
1790
+ name_mapping={
1791
+ "parameter_name": "parameterName",
1792
+ "parameter_value": "parameterValue",
1793
+ },
1794
+ )
1795
+ class SlurmCustomSettingProperty:
1796
+ def __init__(
1797
+ self,
1798
+ *,
1799
+ parameter_name: builtins.str,
1800
+ parameter_value: builtins.str,
1801
+ ) -> None:
1802
+ '''Additional settings that directly map to Slurm settings.
1803
+
1804
+ :param parameter_name: AWS PCS supports configuration of the following Slurm parameters:. - For *clusters* - ```Prolog`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Prolog_1>`_ - ```Epilog`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog_1>`_ - ```SelectTypeParameters`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_SelectTypeParameters>`_ - For *compute node groups* - ```Weight`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Weight>`_ - ```RealMemory`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Weight>`_
1805
+ :param parameter_value: The values for the configured Slurm settings.
1806
+
1807
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-slurmcustomsetting.html
1808
+ :exampleMetadata: fixture=_generated
1809
+
1810
+ Example::
1811
+
1812
+ # The code below shows an example of how to instantiate this type.
1813
+ # The values are placeholders you should change.
1814
+ from aws_cdk import aws_pcs as pcs
1815
+
1816
+ slurm_custom_setting_property = pcs.CfnComputeNodeGroup.SlurmCustomSettingProperty(
1817
+ parameter_name="parameterName",
1818
+ parameter_value="parameterValue"
1819
+ )
1820
+ '''
1821
+ if __debug__:
1822
+ type_hints = typing.get_type_hints(_typecheckingstub__95bf383e09d59731c7b8cdac63a717d5a44f4c4d44a291a247b4ebda5f004d3c)
1823
+ check_type(argname="argument parameter_name", value=parameter_name, expected_type=type_hints["parameter_name"])
1824
+ check_type(argname="argument parameter_value", value=parameter_value, expected_type=type_hints["parameter_value"])
1825
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1826
+ "parameter_name": parameter_name,
1827
+ "parameter_value": parameter_value,
1828
+ }
1829
+
1830
+ @builtins.property
1831
+ def parameter_name(self) -> builtins.str:
1832
+ '''AWS PCS supports configuration of the following Slurm parameters:.
1833
+
1834
+ - For *clusters*
1835
+ - ```Prolog`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Prolog_1>`_
1836
+ - ```Epilog`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog_1>`_
1837
+ - ```SelectTypeParameters`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_SelectTypeParameters>`_
1838
+ - For *compute node groups*
1839
+ - ```Weight`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Weight>`_
1840
+ - ```RealMemory`` <https://docs.aws.amazon.com/https://slurm.schedmd.com/slurm.conf.html#OPT_Weight>`_
1841
+
1842
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-slurmcustomsetting.html#cfn-pcs-computenodegroup-slurmcustomsetting-parametername
1843
+ '''
1844
+ result = self._values.get("parameter_name")
1845
+ assert result is not None, "Required property 'parameter_name' is missing"
1846
+ return typing.cast(builtins.str, result)
1847
+
1848
+ @builtins.property
1849
+ def parameter_value(self) -> builtins.str:
1850
+ '''The values for the configured Slurm settings.
1851
+
1852
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-slurmcustomsetting.html#cfn-pcs-computenodegroup-slurmcustomsetting-parametervalue
1853
+ '''
1854
+ result = self._values.get("parameter_value")
1855
+ assert result is not None, "Required property 'parameter_value' is missing"
1856
+ return typing.cast(builtins.str, result)
1857
+
1858
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1859
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1860
+
1861
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1862
+ return not (rhs == self)
1863
+
1864
+ def __repr__(self) -> str:
1865
+ return "SlurmCustomSettingProperty(%s)" % ", ".join(
1866
+ k + "=" + repr(v) for k, v in self._values.items()
1867
+ )
1868
+
1869
+ @jsii.data_type(
1870
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroup.SpotOptionsProperty",
1871
+ jsii_struct_bases=[],
1872
+ name_mapping={"allocation_strategy": "allocationStrategy"},
1873
+ )
1874
+ class SpotOptionsProperty:
1875
+ def __init__(
1876
+ self,
1877
+ *,
1878
+ allocation_strategy: typing.Optional[builtins.str] = None,
1879
+ ) -> None:
1880
+ '''Additional configuration when you specify ``SPOT`` as the ``purchaseOption`` .
1881
+
1882
+ :param allocation_strategy: The Amazon EC2 allocation strategy AWS PCS uses to provision EC2 instances. AWS PCS supports lowest price, capacity optimized, and price capacity optimized. If you don't provide this option, it defaults to price capacity optimized.
1883
+
1884
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-spotoptions.html
1885
+ :exampleMetadata: fixture=_generated
1886
+
1887
+ Example::
1888
+
1889
+ # The code below shows an example of how to instantiate this type.
1890
+ # The values are placeholders you should change.
1891
+ from aws_cdk import aws_pcs as pcs
1892
+
1893
+ spot_options_property = pcs.CfnComputeNodeGroup.SpotOptionsProperty(
1894
+ allocation_strategy="allocationStrategy"
1895
+ )
1896
+ '''
1897
+ if __debug__:
1898
+ type_hints = typing.get_type_hints(_typecheckingstub__adf4042ef194d53ff84c49fd66b8d9e370cc1fb06ce3e5dfca9c196a9102c196)
1899
+ check_type(argname="argument allocation_strategy", value=allocation_strategy, expected_type=type_hints["allocation_strategy"])
1900
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1901
+ if allocation_strategy is not None:
1902
+ self._values["allocation_strategy"] = allocation_strategy
1903
+
1904
+ @builtins.property
1905
+ def allocation_strategy(self) -> typing.Optional[builtins.str]:
1906
+ '''The Amazon EC2 allocation strategy AWS PCS uses to provision EC2 instances.
1907
+
1908
+ AWS PCS supports lowest price, capacity optimized, and price capacity optimized. If you don't provide this option, it defaults to price capacity optimized.
1909
+
1910
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-computenodegroup-spotoptions.html#cfn-pcs-computenodegroup-spotoptions-allocationstrategy
1911
+ '''
1912
+ result = self._values.get("allocation_strategy")
1913
+ return typing.cast(typing.Optional[builtins.str], result)
1914
+
1915
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1916
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1917
+
1918
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1919
+ return not (rhs == self)
1920
+
1921
+ def __repr__(self) -> str:
1922
+ return "SpotOptionsProperty(%s)" % ", ".join(
1923
+ k + "=" + repr(v) for k, v in self._values.items()
1924
+ )
1925
+
1926
+
1927
+ @jsii.data_type(
1928
+ jsii_type="aws-cdk-lib.aws_pcs.CfnComputeNodeGroupProps",
1929
+ jsii_struct_bases=[],
1930
+ name_mapping={
1931
+ "cluster_id": "clusterId",
1932
+ "custom_launch_template": "customLaunchTemplate",
1933
+ "iam_instance_profile_arn": "iamInstanceProfileArn",
1934
+ "instance_configs": "instanceConfigs",
1935
+ "scaling_configuration": "scalingConfiguration",
1936
+ "subnet_ids": "subnetIds",
1937
+ "ami_id": "amiId",
1938
+ "name": "name",
1939
+ "purchase_option": "purchaseOption",
1940
+ "slurm_configuration": "slurmConfiguration",
1941
+ "spot_options": "spotOptions",
1942
+ "tags": "tags",
1943
+ },
1944
+ )
1945
+ class CfnComputeNodeGroupProps:
1946
+ def __init__(
1947
+ self,
1948
+ *,
1949
+ cluster_id: builtins.str,
1950
+ custom_launch_template: typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.CustomLaunchTemplateProperty, typing.Dict[builtins.str, typing.Any]]],
1951
+ iam_instance_profile_arn: builtins.str,
1952
+ instance_configs: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.InstanceConfigProperty, typing.Dict[builtins.str, typing.Any]]]]],
1953
+ scaling_configuration: typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.ScalingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]],
1954
+ subnet_ids: typing.Sequence[builtins.str],
1955
+ ami_id: typing.Optional[builtins.str] = None,
1956
+ name: typing.Optional[builtins.str] = None,
1957
+ purchase_option: typing.Optional[builtins.str] = None,
1958
+ slurm_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.SlurmConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1959
+ spot_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.SpotOptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1960
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1961
+ ) -> None:
1962
+ '''Properties for defining a ``CfnComputeNodeGroup``.
1963
+
1964
+ :param cluster_id: The ID of the cluster of the compute node group.
1965
+ :param custom_launch_template: An Amazon EC2 launch template AWS PCS uses to launch compute nodes.
1966
+ :param iam_instance_profile_arn: The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have pcs:RegisterComputeNodeGroupInstance permissions attached to provision instances correctly.
1967
+ :param instance_configs: A list of EC2 instance configurations that AWS PCS can provision in the compute node group.
1968
+ :param scaling_configuration: Specifies the boundaries of the compute node group auto scaling.
1969
+ :param subnet_ids: The list of subnet IDs where instances are provisioned by the compute node group. The subnets must be in the same VPC as the cluster.
1970
+ :param ami_id: The ID of the Amazon Machine Image (AMI) that AWS PCS uses to launch instances. If not provided, AWS PCS uses the AMI ID specified in the custom launch template.
1971
+ :param name: The name that identifies the compute node group.
1972
+ :param purchase_option: Specifies how EC2 instances are purchased on your behalf. AWS PCS supports On-Demand and Spot instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.
1973
+ :param slurm_configuration: Additional options related to the Slurm scheduler.
1974
+ :param spot_options: Additional configuration when you specify ``SPOT`` as the ``purchaseOption`` .
1975
+ :param tags: 1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
1976
+
1977
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html
1978
+ :exampleMetadata: fixture=_generated
1979
+
1980
+ Example::
1981
+
1982
+ # The code below shows an example of how to instantiate this type.
1983
+ # The values are placeholders you should change.
1984
+ from aws_cdk import aws_pcs as pcs
1985
+
1986
+ cfn_compute_node_group_props = pcs.CfnComputeNodeGroupProps(
1987
+ cluster_id="clusterId",
1988
+ custom_launch_template=pcs.CfnComputeNodeGroup.CustomLaunchTemplateProperty(
1989
+ id="id",
1990
+ version="version"
1991
+ ),
1992
+ iam_instance_profile_arn="iamInstanceProfileArn",
1993
+ instance_configs=[pcs.CfnComputeNodeGroup.InstanceConfigProperty(
1994
+ instance_type="instanceType"
1995
+ )],
1996
+ scaling_configuration=pcs.CfnComputeNodeGroup.ScalingConfigurationProperty(
1997
+ max_instance_count=123,
1998
+ min_instance_count=123
1999
+ ),
2000
+ subnet_ids=["subnetIds"],
2001
+
2002
+ # the properties below are optional
2003
+ ami_id="amiId",
2004
+ name="name",
2005
+ purchase_option="purchaseOption",
2006
+ slurm_configuration=pcs.CfnComputeNodeGroup.SlurmConfigurationProperty(
2007
+ slurm_custom_settings=[pcs.CfnComputeNodeGroup.SlurmCustomSettingProperty(
2008
+ parameter_name="parameterName",
2009
+ parameter_value="parameterValue"
2010
+ )]
2011
+ ),
2012
+ spot_options=pcs.CfnComputeNodeGroup.SpotOptionsProperty(
2013
+ allocation_strategy="allocationStrategy"
2014
+ ),
2015
+ tags={
2016
+ "tags_key": "tags"
2017
+ }
2018
+ )
2019
+ '''
2020
+ if __debug__:
2021
+ type_hints = typing.get_type_hints(_typecheckingstub__b89ff3536491b7ea531bd9d6ca00d7d32a25ce4c02b926c6d677abde115a012d)
2022
+ check_type(argname="argument cluster_id", value=cluster_id, expected_type=type_hints["cluster_id"])
2023
+ check_type(argname="argument custom_launch_template", value=custom_launch_template, expected_type=type_hints["custom_launch_template"])
2024
+ check_type(argname="argument iam_instance_profile_arn", value=iam_instance_profile_arn, expected_type=type_hints["iam_instance_profile_arn"])
2025
+ check_type(argname="argument instance_configs", value=instance_configs, expected_type=type_hints["instance_configs"])
2026
+ check_type(argname="argument scaling_configuration", value=scaling_configuration, expected_type=type_hints["scaling_configuration"])
2027
+ check_type(argname="argument subnet_ids", value=subnet_ids, expected_type=type_hints["subnet_ids"])
2028
+ check_type(argname="argument ami_id", value=ami_id, expected_type=type_hints["ami_id"])
2029
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
2030
+ check_type(argname="argument purchase_option", value=purchase_option, expected_type=type_hints["purchase_option"])
2031
+ check_type(argname="argument slurm_configuration", value=slurm_configuration, expected_type=type_hints["slurm_configuration"])
2032
+ check_type(argname="argument spot_options", value=spot_options, expected_type=type_hints["spot_options"])
2033
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2034
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2035
+ "cluster_id": cluster_id,
2036
+ "custom_launch_template": custom_launch_template,
2037
+ "iam_instance_profile_arn": iam_instance_profile_arn,
2038
+ "instance_configs": instance_configs,
2039
+ "scaling_configuration": scaling_configuration,
2040
+ "subnet_ids": subnet_ids,
2041
+ }
2042
+ if ami_id is not None:
2043
+ self._values["ami_id"] = ami_id
2044
+ if name is not None:
2045
+ self._values["name"] = name
2046
+ if purchase_option is not None:
2047
+ self._values["purchase_option"] = purchase_option
2048
+ if slurm_configuration is not None:
2049
+ self._values["slurm_configuration"] = slurm_configuration
2050
+ if spot_options is not None:
2051
+ self._values["spot_options"] = spot_options
2052
+ if tags is not None:
2053
+ self._values["tags"] = tags
2054
+
2055
+ @builtins.property
2056
+ def cluster_id(self) -> builtins.str:
2057
+ '''The ID of the cluster of the compute node group.
2058
+
2059
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-clusterid
2060
+ '''
2061
+ result = self._values.get("cluster_id")
2062
+ assert result is not None, "Required property 'cluster_id' is missing"
2063
+ return typing.cast(builtins.str, result)
2064
+
2065
+ @builtins.property
2066
+ def custom_launch_template(
2067
+ self,
2068
+ ) -> typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.CustomLaunchTemplateProperty]:
2069
+ '''An Amazon EC2 launch template AWS PCS uses to launch compute nodes.
2070
+
2071
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-customlaunchtemplate
2072
+ '''
2073
+ result = self._values.get("custom_launch_template")
2074
+ assert result is not None, "Required property 'custom_launch_template' is missing"
2075
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.CustomLaunchTemplateProperty], result)
2076
+
2077
+ @builtins.property
2078
+ def iam_instance_profile_arn(self) -> builtins.str:
2079
+ '''The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances.
2080
+
2081
+ The role contained in your instance profile must have pcs:RegisterComputeNodeGroupInstance permissions attached to provision instances correctly.
2082
+
2083
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-iaminstanceprofilearn
2084
+ '''
2085
+ result = self._values.get("iam_instance_profile_arn")
2086
+ assert result is not None, "Required property 'iam_instance_profile_arn' is missing"
2087
+ return typing.cast(builtins.str, result)
2088
+
2089
+ @builtins.property
2090
+ def instance_configs(
2091
+ self,
2092
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.InstanceConfigProperty]]]:
2093
+ '''A list of EC2 instance configurations that AWS PCS can provision in the compute node group.
2094
+
2095
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-instanceconfigs
2096
+ '''
2097
+ result = self._values.get("instance_configs")
2098
+ assert result is not None, "Required property 'instance_configs' is missing"
2099
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.InstanceConfigProperty]]], result)
2100
+
2101
+ @builtins.property
2102
+ def scaling_configuration(
2103
+ self,
2104
+ ) -> typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.ScalingConfigurationProperty]:
2105
+ '''Specifies the boundaries of the compute node group auto scaling.
2106
+
2107
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-scalingconfiguration
2108
+ '''
2109
+ result = self._values.get("scaling_configuration")
2110
+ assert result is not None, "Required property 'scaling_configuration' is missing"
2111
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.ScalingConfigurationProperty], result)
2112
+
2113
+ @builtins.property
2114
+ def subnet_ids(self) -> typing.List[builtins.str]:
2115
+ '''The list of subnet IDs where instances are provisioned by the compute node group.
2116
+
2117
+ The subnets must be in the same VPC as the cluster.
2118
+
2119
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-subnetids
2120
+ '''
2121
+ result = self._values.get("subnet_ids")
2122
+ assert result is not None, "Required property 'subnet_ids' is missing"
2123
+ return typing.cast(typing.List[builtins.str], result)
2124
+
2125
+ @builtins.property
2126
+ def ami_id(self) -> typing.Optional[builtins.str]:
2127
+ '''The ID of the Amazon Machine Image (AMI) that AWS PCS uses to launch instances.
2128
+
2129
+ If not provided, AWS PCS uses the AMI ID specified in the custom launch template.
2130
+
2131
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-amiid
2132
+ '''
2133
+ result = self._values.get("ami_id")
2134
+ return typing.cast(typing.Optional[builtins.str], result)
2135
+
2136
+ @builtins.property
2137
+ def name(self) -> typing.Optional[builtins.str]:
2138
+ '''The name that identifies the compute node group.
2139
+
2140
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-name
2141
+ '''
2142
+ result = self._values.get("name")
2143
+ return typing.cast(typing.Optional[builtins.str], result)
2144
+
2145
+ @builtins.property
2146
+ def purchase_option(self) -> typing.Optional[builtins.str]:
2147
+ '''Specifies how EC2 instances are purchased on your behalf.
2148
+
2149
+ AWS PCS supports On-Demand and Spot instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.
2150
+
2151
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-purchaseoption
2152
+ '''
2153
+ result = self._values.get("purchase_option")
2154
+ return typing.cast(typing.Optional[builtins.str], result)
2155
+
2156
+ @builtins.property
2157
+ def slurm_configuration(
2158
+ self,
2159
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.SlurmConfigurationProperty]]:
2160
+ '''Additional options related to the Slurm scheduler.
2161
+
2162
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-slurmconfiguration
2163
+ '''
2164
+ result = self._values.get("slurm_configuration")
2165
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.SlurmConfigurationProperty]], result)
2166
+
2167
+ @builtins.property
2168
+ def spot_options(
2169
+ self,
2170
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.SpotOptionsProperty]]:
2171
+ '''Additional configuration when you specify ``SPOT`` as the ``purchaseOption`` .
2172
+
2173
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-spotoptions
2174
+ '''
2175
+ result = self._values.get("spot_options")
2176
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.SpotOptionsProperty]], result)
2177
+
2178
+ @builtins.property
2179
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
2180
+ '''1 or more tags added to the resource.
2181
+
2182
+ Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
2183
+
2184
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-computenodegroup.html#cfn-pcs-computenodegroup-tags
2185
+ '''
2186
+ result = self._values.get("tags")
2187
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
2188
+
2189
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2190
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2191
+
2192
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2193
+ return not (rhs == self)
2194
+
2195
+ def __repr__(self) -> str:
2196
+ return "CfnComputeNodeGroupProps(%s)" % ", ".join(
2197
+ k + "=" + repr(v) for k, v in self._values.items()
2198
+ )
2199
+
2200
+
2201
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
2202
+ class CfnQueue(
2203
+ _CfnResource_9df397a6,
2204
+ metaclass=jsii.JSIIMeta,
2205
+ jsii_type="aws-cdk-lib.aws_pcs.CfnQueue",
2206
+ ):
2207
+ '''The ``AWS::PCS::Queue`` resource creates an AWS PCS queue.
2208
+
2209
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html
2210
+ :cloudformationResource: AWS::PCS::Queue
2211
+ :exampleMetadata: fixture=_generated
2212
+
2213
+ Example::
2214
+
2215
+ # The code below shows an example of how to instantiate this type.
2216
+ # The values are placeholders you should change.
2217
+ from aws_cdk import aws_pcs as pcs
2218
+
2219
+ cfn_queue = pcs.CfnQueue(self, "MyCfnQueue",
2220
+ cluster_id="clusterId",
2221
+
2222
+ # the properties below are optional
2223
+ compute_node_group_configurations=[pcs.CfnQueue.ComputeNodeGroupConfigurationProperty(
2224
+ compute_node_group_id="computeNodeGroupId"
2225
+ )],
2226
+ name="name",
2227
+ tags={
2228
+ "tags_key": "tags"
2229
+ }
2230
+ )
2231
+ '''
2232
+
2233
+ def __init__(
2234
+ self,
2235
+ scope: _constructs_77d1e7e8.Construct,
2236
+ id: builtins.str,
2237
+ *,
2238
+ cluster_id: builtins.str,
2239
+ compute_node_group_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnQueue.ComputeNodeGroupConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
2240
+ name: typing.Optional[builtins.str] = None,
2241
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2242
+ ) -> None:
2243
+ '''
2244
+ :param scope: Scope in which this resource is defined.
2245
+ :param id: Construct identifier for this resource (unique in its scope).
2246
+ :param cluster_id: The ID of the cluster of the queue.
2247
+ :param compute_node_group_configurations: The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.
2248
+ :param name: The name that identifies the queue.
2249
+ :param tags: 1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
2250
+ '''
2251
+ if __debug__:
2252
+ type_hints = typing.get_type_hints(_typecheckingstub__456edeb02414f262683a35f15a1fae223f92feec590d98024478f680e3249bdd)
2253
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2254
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2255
+ props = CfnQueueProps(
2256
+ cluster_id=cluster_id,
2257
+ compute_node_group_configurations=compute_node_group_configurations,
2258
+ name=name,
2259
+ tags=tags,
2260
+ )
2261
+
2262
+ jsii.create(self.__class__, self, [scope, id, props])
2263
+
2264
+ @jsii.member(jsii_name="inspect")
2265
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
2266
+ '''Examines the CloudFormation resource and discloses attributes.
2267
+
2268
+ :param inspector: tree inspector to collect and process attributes.
2269
+ '''
2270
+ if __debug__:
2271
+ type_hints = typing.get_type_hints(_typecheckingstub__1e91ae15ffe542b6e139af845f0fd58e29e3eb1de94ad2d790169a1ef4226536)
2272
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
2273
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
2274
+
2275
+ @jsii.member(jsii_name="renderProperties")
2276
+ def _render_properties(
2277
+ self,
2278
+ props: typing.Mapping[builtins.str, typing.Any],
2279
+ ) -> typing.Mapping[builtins.str, typing.Any]:
2280
+ '''
2281
+ :param props: -
2282
+ '''
2283
+ if __debug__:
2284
+ type_hints = typing.get_type_hints(_typecheckingstub__fedb84fc44c9a0375a3b3b2a4753f07a788f5775a01c39a2a16ef0736b04f3b1)
2285
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
2286
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
2287
+
2288
+ @jsii.python.classproperty
2289
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
2290
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
2291
+ '''The CloudFormation resource type name for this resource class.'''
2292
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
2293
+
2294
+ @builtins.property
2295
+ @jsii.member(jsii_name="attrArn")
2296
+ def attr_arn(self) -> builtins.str:
2297
+ '''The unique Amazon Resource Name (ARN) of the queue.
2298
+
2299
+ :cloudformationAttribute: Arn
2300
+ '''
2301
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
2302
+
2303
+ @builtins.property
2304
+ @jsii.member(jsii_name="attrErrorInfo")
2305
+ def attr_error_info(self) -> _IResolvable_da3f097b:
2306
+ '''The list of errors that occurred during queue provisioning.
2307
+
2308
+ :cloudformationAttribute: ErrorInfo
2309
+ '''
2310
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrErrorInfo"))
2311
+
2312
+ @builtins.property
2313
+ @jsii.member(jsii_name="attrId")
2314
+ def attr_id(self) -> builtins.str:
2315
+ '''The generated unique ID of the queue.
2316
+
2317
+ :cloudformationAttribute: Id
2318
+ '''
2319
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
2320
+
2321
+ @builtins.property
2322
+ @jsii.member(jsii_name="attrStatus")
2323
+ def attr_status(self) -> builtins.str:
2324
+ '''The provisioning status of the queue.
2325
+
2326
+ The provisioning status doesn't indicate the overall health of the queue.
2327
+
2328
+ :cloudformationAttribute: Status
2329
+ '''
2330
+ return typing.cast(builtins.str, jsii.get(self, "attrStatus"))
2331
+
2332
+ @builtins.property
2333
+ @jsii.member(jsii_name="cdkTagManager")
2334
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
2335
+ '''Tag Manager which manages the tags for this resource.'''
2336
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
2337
+
2338
+ @builtins.property
2339
+ @jsii.member(jsii_name="cfnProperties")
2340
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2341
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2342
+
2343
+ @builtins.property
2344
+ @jsii.member(jsii_name="clusterId")
2345
+ def cluster_id(self) -> builtins.str:
2346
+ '''The ID of the cluster of the queue.'''
2347
+ return typing.cast(builtins.str, jsii.get(self, "clusterId"))
2348
+
2349
+ @cluster_id.setter
2350
+ def cluster_id(self, value: builtins.str) -> None:
2351
+ if __debug__:
2352
+ type_hints = typing.get_type_hints(_typecheckingstub__4dd96bf4d965aac7a933a9b0af29542239baf57d893776c7333dd76d3bff2ca8)
2353
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2354
+ jsii.set(self, "clusterId", value) # pyright: ignore[reportArgumentType]
2355
+
2356
+ @builtins.property
2357
+ @jsii.member(jsii_name="computeNodeGroupConfigurations")
2358
+ def compute_node_group_configurations(
2359
+ self,
2360
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnQueue.ComputeNodeGroupConfigurationProperty"]]]]:
2361
+ '''The list of compute node group configurations associated with the queue.'''
2362
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnQueue.ComputeNodeGroupConfigurationProperty"]]]], jsii.get(self, "computeNodeGroupConfigurations"))
2363
+
2364
+ @compute_node_group_configurations.setter
2365
+ def compute_node_group_configurations(
2366
+ self,
2367
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnQueue.ComputeNodeGroupConfigurationProperty"]]]],
2368
+ ) -> None:
2369
+ if __debug__:
2370
+ type_hints = typing.get_type_hints(_typecheckingstub__9fa120ad7f68494c28ccc4186d82ee7a8ff23a8eb4615bb87e7c325c61e1a497)
2371
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2372
+ jsii.set(self, "computeNodeGroupConfigurations", value) # pyright: ignore[reportArgumentType]
2373
+
2374
+ @builtins.property
2375
+ @jsii.member(jsii_name="name")
2376
+ def name(self) -> typing.Optional[builtins.str]:
2377
+ '''The name that identifies the queue.'''
2378
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "name"))
2379
+
2380
+ @name.setter
2381
+ def name(self, value: typing.Optional[builtins.str]) -> None:
2382
+ if __debug__:
2383
+ type_hints = typing.get_type_hints(_typecheckingstub__7e4f1e9c61fd11b4d3ed4834db791c7064b5408b742dfa6c4a00a242858ad868)
2384
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2385
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
2386
+
2387
+ @builtins.property
2388
+ @jsii.member(jsii_name="tags")
2389
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
2390
+ '''1 or more tags added to the resource.'''
2391
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "tags"))
2392
+
2393
+ @tags.setter
2394
+ def tags(
2395
+ self,
2396
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
2397
+ ) -> None:
2398
+ if __debug__:
2399
+ type_hints = typing.get_type_hints(_typecheckingstub__31674031b3f2a49a29efb9edfdb5a54431db3db7616989edd3617113cd6b9afd)
2400
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2401
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
2402
+
2403
+ @jsii.data_type(
2404
+ jsii_type="aws-cdk-lib.aws_pcs.CfnQueue.ComputeNodeGroupConfigurationProperty",
2405
+ jsii_struct_bases=[],
2406
+ name_mapping={"compute_node_group_id": "computeNodeGroupId"},
2407
+ )
2408
+ class ComputeNodeGroupConfigurationProperty:
2409
+ def __init__(
2410
+ self,
2411
+ *,
2412
+ compute_node_group_id: typing.Optional[builtins.str] = None,
2413
+ ) -> None:
2414
+ '''The compute node group configuration for a queue.
2415
+
2416
+ :param compute_node_group_id: The compute node group ID for the compute node group configuration.
2417
+
2418
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-queue-computenodegroupconfiguration.html
2419
+ :exampleMetadata: fixture=_generated
2420
+
2421
+ Example::
2422
+
2423
+ # The code below shows an example of how to instantiate this type.
2424
+ # The values are placeholders you should change.
2425
+ from aws_cdk import aws_pcs as pcs
2426
+
2427
+ compute_node_group_configuration_property = pcs.CfnQueue.ComputeNodeGroupConfigurationProperty(
2428
+ compute_node_group_id="computeNodeGroupId"
2429
+ )
2430
+ '''
2431
+ if __debug__:
2432
+ type_hints = typing.get_type_hints(_typecheckingstub__9cc981d8d2dee6d007be19b192d33155162e657cf0ddef3c82ac69bf13b0c34a)
2433
+ check_type(argname="argument compute_node_group_id", value=compute_node_group_id, expected_type=type_hints["compute_node_group_id"])
2434
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2435
+ if compute_node_group_id is not None:
2436
+ self._values["compute_node_group_id"] = compute_node_group_id
2437
+
2438
+ @builtins.property
2439
+ def compute_node_group_id(self) -> typing.Optional[builtins.str]:
2440
+ '''The compute node group ID for the compute node group configuration.
2441
+
2442
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-queue-computenodegroupconfiguration.html#cfn-pcs-queue-computenodegroupconfiguration-computenodegroupid
2443
+ '''
2444
+ result = self._values.get("compute_node_group_id")
2445
+ return typing.cast(typing.Optional[builtins.str], result)
2446
+
2447
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2448
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2449
+
2450
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2451
+ return not (rhs == self)
2452
+
2453
+ def __repr__(self) -> str:
2454
+ return "ComputeNodeGroupConfigurationProperty(%s)" % ", ".join(
2455
+ k + "=" + repr(v) for k, v in self._values.items()
2456
+ )
2457
+
2458
+ @jsii.data_type(
2459
+ jsii_type="aws-cdk-lib.aws_pcs.CfnQueue.ErrorInfoProperty",
2460
+ jsii_struct_bases=[],
2461
+ name_mapping={"code": "code", "message": "message"},
2462
+ )
2463
+ class ErrorInfoProperty:
2464
+ def __init__(
2465
+ self,
2466
+ *,
2467
+ code: typing.Optional[builtins.str] = None,
2468
+ message: typing.Optional[builtins.str] = None,
2469
+ ) -> None:
2470
+ '''An error that occurred during resource provisioning.
2471
+
2472
+ :param code: The short-form error code.
2473
+ :param message: TBDThe detailed error information.
2474
+
2475
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-queue-errorinfo.html
2476
+ :exampleMetadata: fixture=_generated
2477
+
2478
+ Example::
2479
+
2480
+ # The code below shows an example of how to instantiate this type.
2481
+ # The values are placeholders you should change.
2482
+ from aws_cdk import aws_pcs as pcs
2483
+
2484
+ error_info_property = pcs.CfnQueue.ErrorInfoProperty(
2485
+ code="code",
2486
+ message="message"
2487
+ )
2488
+ '''
2489
+ if __debug__:
2490
+ type_hints = typing.get_type_hints(_typecheckingstub__5e51eb0cec81203da74b9b3c33259135afec8fef04327498ab79338af5a9df34)
2491
+ check_type(argname="argument code", value=code, expected_type=type_hints["code"])
2492
+ check_type(argname="argument message", value=message, expected_type=type_hints["message"])
2493
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2494
+ if code is not None:
2495
+ self._values["code"] = code
2496
+ if message is not None:
2497
+ self._values["message"] = message
2498
+
2499
+ @builtins.property
2500
+ def code(self) -> typing.Optional[builtins.str]:
2501
+ '''The short-form error code.
2502
+
2503
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-queue-errorinfo.html#cfn-pcs-queue-errorinfo-code
2504
+ '''
2505
+ result = self._values.get("code")
2506
+ return typing.cast(typing.Optional[builtins.str], result)
2507
+
2508
+ @builtins.property
2509
+ def message(self) -> typing.Optional[builtins.str]:
2510
+ '''TBDThe detailed error information.
2511
+
2512
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcs-queue-errorinfo.html#cfn-pcs-queue-errorinfo-message
2513
+ '''
2514
+ result = self._values.get("message")
2515
+ return typing.cast(typing.Optional[builtins.str], result)
2516
+
2517
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2518
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2519
+
2520
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2521
+ return not (rhs == self)
2522
+
2523
+ def __repr__(self) -> str:
2524
+ return "ErrorInfoProperty(%s)" % ", ".join(
2525
+ k + "=" + repr(v) for k, v in self._values.items()
2526
+ )
2527
+
2528
+
2529
+ @jsii.data_type(
2530
+ jsii_type="aws-cdk-lib.aws_pcs.CfnQueueProps",
2531
+ jsii_struct_bases=[],
2532
+ name_mapping={
2533
+ "cluster_id": "clusterId",
2534
+ "compute_node_group_configurations": "computeNodeGroupConfigurations",
2535
+ "name": "name",
2536
+ "tags": "tags",
2537
+ },
2538
+ )
2539
+ class CfnQueueProps:
2540
+ def __init__(
2541
+ self,
2542
+ *,
2543
+ cluster_id: builtins.str,
2544
+ compute_node_group_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.ComputeNodeGroupConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2545
+ name: typing.Optional[builtins.str] = None,
2546
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2547
+ ) -> None:
2548
+ '''Properties for defining a ``CfnQueue``.
2549
+
2550
+ :param cluster_id: The ID of the cluster of the queue.
2551
+ :param compute_node_group_configurations: The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.
2552
+ :param name: The name that identifies the queue.
2553
+ :param tags: 1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
2554
+
2555
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html
2556
+ :exampleMetadata: fixture=_generated
2557
+
2558
+ Example::
2559
+
2560
+ # The code below shows an example of how to instantiate this type.
2561
+ # The values are placeholders you should change.
2562
+ from aws_cdk import aws_pcs as pcs
2563
+
2564
+ cfn_queue_props = pcs.CfnQueueProps(
2565
+ cluster_id="clusterId",
2566
+
2567
+ # the properties below are optional
2568
+ compute_node_group_configurations=[pcs.CfnQueue.ComputeNodeGroupConfigurationProperty(
2569
+ compute_node_group_id="computeNodeGroupId"
2570
+ )],
2571
+ name="name",
2572
+ tags={
2573
+ "tags_key": "tags"
2574
+ }
2575
+ )
2576
+ '''
2577
+ if __debug__:
2578
+ type_hints = typing.get_type_hints(_typecheckingstub__4211e23057aa9883cd55dc7f797abf7f4ad0554424bd2d7d7cfce123004b8557)
2579
+ check_type(argname="argument cluster_id", value=cluster_id, expected_type=type_hints["cluster_id"])
2580
+ check_type(argname="argument compute_node_group_configurations", value=compute_node_group_configurations, expected_type=type_hints["compute_node_group_configurations"])
2581
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
2582
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2583
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2584
+ "cluster_id": cluster_id,
2585
+ }
2586
+ if compute_node_group_configurations is not None:
2587
+ self._values["compute_node_group_configurations"] = compute_node_group_configurations
2588
+ if name is not None:
2589
+ self._values["name"] = name
2590
+ if tags is not None:
2591
+ self._values["tags"] = tags
2592
+
2593
+ @builtins.property
2594
+ def cluster_id(self) -> builtins.str:
2595
+ '''The ID of the cluster of the queue.
2596
+
2597
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html#cfn-pcs-queue-clusterid
2598
+ '''
2599
+ result = self._values.get("cluster_id")
2600
+ assert result is not None, "Required property 'cluster_id' is missing"
2601
+ return typing.cast(builtins.str, result)
2602
+
2603
+ @builtins.property
2604
+ def compute_node_group_configurations(
2605
+ self,
2606
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnQueue.ComputeNodeGroupConfigurationProperty]]]]:
2607
+ '''The list of compute node group configurations associated with the queue.
2608
+
2609
+ Queues assign jobs to associated compute node groups.
2610
+
2611
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html#cfn-pcs-queue-computenodegroupconfigurations
2612
+ '''
2613
+ result = self._values.get("compute_node_group_configurations")
2614
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnQueue.ComputeNodeGroupConfigurationProperty]]]], result)
2615
+
2616
+ @builtins.property
2617
+ def name(self) -> typing.Optional[builtins.str]:
2618
+ '''The name that identifies the queue.
2619
+
2620
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html#cfn-pcs-queue-name
2621
+ '''
2622
+ result = self._values.get("name")
2623
+ return typing.cast(typing.Optional[builtins.str], result)
2624
+
2625
+ @builtins.property
2626
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
2627
+ '''1 or more tags added to the resource.
2628
+
2629
+ Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
2630
+
2631
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pcs-queue.html#cfn-pcs-queue-tags
2632
+ '''
2633
+ result = self._values.get("tags")
2634
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
2635
+
2636
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2637
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2638
+
2639
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2640
+ return not (rhs == self)
2641
+
2642
+ def __repr__(self) -> str:
2643
+ return "CfnQueueProps(%s)" % ", ".join(
2644
+ k + "=" + repr(v) for k, v in self._values.items()
2645
+ )
2646
+
2647
+
2648
+ __all__ = [
2649
+ "CfnCluster",
2650
+ "CfnClusterProps",
2651
+ "CfnComputeNodeGroup",
2652
+ "CfnComputeNodeGroupProps",
2653
+ "CfnQueue",
2654
+ "CfnQueueProps",
2655
+ ]
2656
+
2657
+ publication.publish()
2658
+
2659
+ def _typecheckingstub__f3eeeaf566612baca2013a4f6d5c60484ee36ebc0edd307d32ef21991c170b65(
2660
+ scope: _constructs_77d1e7e8.Construct,
2661
+ id: builtins.str,
2662
+ *,
2663
+ networking: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.NetworkingProperty, typing.Dict[builtins.str, typing.Any]]],
2664
+ scheduler: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.SchedulerProperty, typing.Dict[builtins.str, typing.Any]]],
2665
+ size: builtins.str,
2666
+ name: typing.Optional[builtins.str] = None,
2667
+ slurm_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.SlurmConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2668
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2669
+ ) -> None:
2670
+ """Type checking stubs"""
2671
+ pass
2672
+
2673
+ def _typecheckingstub__ad41b9587f0f8c306a5663de2a8a6102111fcb7fc8d0e9a53a589055d6beaedc(
2674
+ inspector: _TreeInspector_488e0dd5,
2675
+ ) -> None:
2676
+ """Type checking stubs"""
2677
+ pass
2678
+
2679
+ def _typecheckingstub__6de5406d3a652bc9f44810e2ec4b074eabc97b2d888228c1ef6aa15a9be62dd7(
2680
+ props: typing.Mapping[builtins.str, typing.Any],
2681
+ ) -> None:
2682
+ """Type checking stubs"""
2683
+ pass
2684
+
2685
+ def _typecheckingstub__55c1ec55aa513ac3501a36d2ae996a234035f2352cdef00bfd71db7d9a57e50c(
2686
+ value: typing.Union[_IResolvable_da3f097b, CfnCluster.NetworkingProperty],
2687
+ ) -> None:
2688
+ """Type checking stubs"""
2689
+ pass
2690
+
2691
+ def _typecheckingstub__d56c39b86f5541062b8866fd13a6f0b7c91e0e765586d45abea04f33cc267998(
2692
+ value: typing.Union[_IResolvable_da3f097b, CfnCluster.SchedulerProperty],
2693
+ ) -> None:
2694
+ """Type checking stubs"""
2695
+ pass
2696
+
2697
+ def _typecheckingstub__991109fd44c9cf1840f37fe27f8e8d0dd425a7d35c40957d93e9cd3eda6960f7(
2698
+ value: builtins.str,
2699
+ ) -> None:
2700
+ """Type checking stubs"""
2701
+ pass
2702
+
2703
+ def _typecheckingstub__02af9af912d0a7aca1a803881152b3dd95a43c257523e7b9af7a7e20581e9a9e(
2704
+ value: typing.Optional[builtins.str],
2705
+ ) -> None:
2706
+ """Type checking stubs"""
2707
+ pass
2708
+
2709
+ def _typecheckingstub__d87e1a23a15695700ae0058f31b0dfa9d42571eb71c777bac50f89be58cf34fe(
2710
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.SlurmConfigurationProperty]],
2711
+ ) -> None:
2712
+ """Type checking stubs"""
2713
+ pass
2714
+
2715
+ def _typecheckingstub__b386ea2d0b46e98dda569b5edccc0da74b6c12d09181731c93163fcad15cefbf(
2716
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
2717
+ ) -> None:
2718
+ """Type checking stubs"""
2719
+ pass
2720
+
2721
+ def _typecheckingstub__1864f71bcded956851b861671a045d1c7d6402331c1d756c5ac88d21e9fe823c(
2722
+ *,
2723
+ secret_arn: builtins.str,
2724
+ secret_version: builtins.str,
2725
+ ) -> None:
2726
+ """Type checking stubs"""
2727
+ pass
2728
+
2729
+ def _typecheckingstub__fb46faa4736fd5bede060ea1460c35898193ef49ace1726974a1db8958312929(
2730
+ *,
2731
+ port: builtins.str,
2732
+ private_ip_address: builtins.str,
2733
+ type: builtins.str,
2734
+ public_ip_address: typing.Optional[builtins.str] = None,
2735
+ ) -> None:
2736
+ """Type checking stubs"""
2737
+ pass
2738
+
2739
+ def _typecheckingstub__b9e127e61b0ea75f45a99bba1dcc51875a9ecf36ea91f697889ebe4cb4a8e301(
2740
+ *,
2741
+ code: typing.Optional[builtins.str] = None,
2742
+ message: typing.Optional[builtins.str] = None,
2743
+ ) -> None:
2744
+ """Type checking stubs"""
2745
+ pass
2746
+
2747
+ def _typecheckingstub__82c7f3d28e2ed0d063467ea787c6cfc31c28d4c5f26ef1ddf71940887dea9d1f(
2748
+ *,
2749
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
2750
+ subnet_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
2751
+ ) -> None:
2752
+ """Type checking stubs"""
2753
+ pass
2754
+
2755
+ def _typecheckingstub__fe24d9f1c44d1db4489549227b033216d5b6490b74f43ce9c2871e34c4d886ce(
2756
+ *,
2757
+ type: builtins.str,
2758
+ version: builtins.str,
2759
+ ) -> None:
2760
+ """Type checking stubs"""
2761
+ pass
2762
+
2763
+ def _typecheckingstub__e6bb8855a5cf237041c92e56f09fd1b1d2d40c49f363bfde280100fbfd6f137f(
2764
+ *,
2765
+ auth_key: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.AuthKeyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2766
+ scale_down_idle_time_in_seconds: typing.Optional[jsii.Number] = None,
2767
+ slurm_custom_settings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.SlurmCustomSettingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2768
+ ) -> None:
2769
+ """Type checking stubs"""
2770
+ pass
2771
+
2772
+ def _typecheckingstub__b9d168abcd7adc19d99485fc5db81c30bba87bb255608ac3a4487d1a1028fd33(
2773
+ *,
2774
+ parameter_name: builtins.str,
2775
+ parameter_value: builtins.str,
2776
+ ) -> None:
2777
+ """Type checking stubs"""
2778
+ pass
2779
+
2780
+ def _typecheckingstub__1acc8d7c41893eaa3f211b6514471817eb607a349cab301161899ae592f0bdf0(
2781
+ *,
2782
+ networking: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.NetworkingProperty, typing.Dict[builtins.str, typing.Any]]],
2783
+ scheduler: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.SchedulerProperty, typing.Dict[builtins.str, typing.Any]]],
2784
+ size: builtins.str,
2785
+ name: typing.Optional[builtins.str] = None,
2786
+ slurm_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.SlurmConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2787
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2788
+ ) -> None:
2789
+ """Type checking stubs"""
2790
+ pass
2791
+
2792
+ def _typecheckingstub__5d74625cecbce8d2048b29b24f3148123fb31c64b330ed51fd45d2b2c42d1c20(
2793
+ scope: _constructs_77d1e7e8.Construct,
2794
+ id: builtins.str,
2795
+ *,
2796
+ cluster_id: builtins.str,
2797
+ custom_launch_template: typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.CustomLaunchTemplateProperty, typing.Dict[builtins.str, typing.Any]]],
2798
+ iam_instance_profile_arn: builtins.str,
2799
+ instance_configs: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.InstanceConfigProperty, typing.Dict[builtins.str, typing.Any]]]]],
2800
+ scaling_configuration: typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.ScalingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]],
2801
+ subnet_ids: typing.Sequence[builtins.str],
2802
+ ami_id: typing.Optional[builtins.str] = None,
2803
+ name: typing.Optional[builtins.str] = None,
2804
+ purchase_option: typing.Optional[builtins.str] = None,
2805
+ slurm_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.SlurmConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2806
+ spot_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.SpotOptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2807
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2808
+ ) -> None:
2809
+ """Type checking stubs"""
2810
+ pass
2811
+
2812
+ def _typecheckingstub__d833050301c35ecc35d9e2cf88fc748a8f8174e49289d0e2719e757def93e83c(
2813
+ inspector: _TreeInspector_488e0dd5,
2814
+ ) -> None:
2815
+ """Type checking stubs"""
2816
+ pass
2817
+
2818
+ def _typecheckingstub__571860de08b34398201b8498268e8b69422d6e17de99d62fd83b52005d26a6b5(
2819
+ props: typing.Mapping[builtins.str, typing.Any],
2820
+ ) -> None:
2821
+ """Type checking stubs"""
2822
+ pass
2823
+
2824
+ def _typecheckingstub__27a33200e9f918661858505e376a9533b97ee45f0f14cd2c479bb9e61b1effc1(
2825
+ value: builtins.str,
2826
+ ) -> None:
2827
+ """Type checking stubs"""
2828
+ pass
2829
+
2830
+ def _typecheckingstub__bf4a47490919e9b97683082d58e0ccf8649fd09ec2c5f621c3f8467d84363706(
2831
+ value: typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.CustomLaunchTemplateProperty],
2832
+ ) -> None:
2833
+ """Type checking stubs"""
2834
+ pass
2835
+
2836
+ def _typecheckingstub__77021f3115c7344dc9b7365b13a661fa578c34c1997a99dd619003646b7e460a(
2837
+ value: builtins.str,
2838
+ ) -> None:
2839
+ """Type checking stubs"""
2840
+ pass
2841
+
2842
+ def _typecheckingstub__dd2f09e3d9b4cca4eab96f7862d7a047649e41118beecac43ed36e424625aa02(
2843
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.InstanceConfigProperty]]],
2844
+ ) -> None:
2845
+ """Type checking stubs"""
2846
+ pass
2847
+
2848
+ def _typecheckingstub__faa6826218f9909223a7fac326f705e3e75a1469e1ec902fe056022fd0a6adf1(
2849
+ value: typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.ScalingConfigurationProperty],
2850
+ ) -> None:
2851
+ """Type checking stubs"""
2852
+ pass
2853
+
2854
+ def _typecheckingstub__c6c11a7ef6bbf97645d89e780e4819e5c51eacccbab5c6e46497a3e31accf32e(
2855
+ value: typing.List[builtins.str],
2856
+ ) -> None:
2857
+ """Type checking stubs"""
2858
+ pass
2859
+
2860
+ def _typecheckingstub__ce6f7916bab348203539e21c424ed76ed039fc805a1e3d704cca40baffc97318(
2861
+ value: typing.Optional[builtins.str],
2862
+ ) -> None:
2863
+ """Type checking stubs"""
2864
+ pass
2865
+
2866
+ def _typecheckingstub__621c25d891dcaffc1e388ad783cc5d71aeffd2776b0166c92fce41e6d992d2d7(
2867
+ value: typing.Optional[builtins.str],
2868
+ ) -> None:
2869
+ """Type checking stubs"""
2870
+ pass
2871
+
2872
+ def _typecheckingstub__abf0b129d8eff2b9d98cc25ed6c3cbfebb7f706aa5948692e942f1a485c29a79(
2873
+ value: typing.Optional[builtins.str],
2874
+ ) -> None:
2875
+ """Type checking stubs"""
2876
+ pass
2877
+
2878
+ def _typecheckingstub__8d5c6af28cfa6220ac6fe417a830b4b39cfb3320cd91ef31f4ef71aa5f6d934b(
2879
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.SlurmConfigurationProperty]],
2880
+ ) -> None:
2881
+ """Type checking stubs"""
2882
+ pass
2883
+
2884
+ def _typecheckingstub__25d7dc8c33129932f54cb9e69a7f2e96a79caaf423f50891bd309efbb2cf8a56(
2885
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnComputeNodeGroup.SpotOptionsProperty]],
2886
+ ) -> None:
2887
+ """Type checking stubs"""
2888
+ pass
2889
+
2890
+ def _typecheckingstub__4f9d940f011938958eb70282b41c84f70c7f86093c1788ec73b310de39dd817d(
2891
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
2892
+ ) -> None:
2893
+ """Type checking stubs"""
2894
+ pass
2895
+
2896
+ def _typecheckingstub__f5e18d4eaf127cbbf203643daa28b5c0a8105f4a3d48ce6e2c896d6f851d7911(
2897
+ *,
2898
+ id: builtins.str,
2899
+ version: builtins.str,
2900
+ ) -> None:
2901
+ """Type checking stubs"""
2902
+ pass
2903
+
2904
+ def _typecheckingstub__88387b075e6eeff950872537e019e72d8c0543b07c44cb6fd37f6a6580892efe(
2905
+ *,
2906
+ code: typing.Optional[builtins.str] = None,
2907
+ message: typing.Optional[builtins.str] = None,
2908
+ ) -> None:
2909
+ """Type checking stubs"""
2910
+ pass
2911
+
2912
+ def _typecheckingstub__e94b232b9d47b7a1d244e32e3a5dc754392f55d51698be51f1a5de8260de9a0b(
2913
+ *,
2914
+ instance_type: typing.Optional[builtins.str] = None,
2915
+ ) -> None:
2916
+ """Type checking stubs"""
2917
+ pass
2918
+
2919
+ def _typecheckingstub__c591f6ad958f29b5e6c332ca3927c8ba0e76bc075461fbecdd513918b5d0bbcd(
2920
+ *,
2921
+ max_instance_count: jsii.Number,
2922
+ min_instance_count: jsii.Number,
2923
+ ) -> None:
2924
+ """Type checking stubs"""
2925
+ pass
2926
+
2927
+ def _typecheckingstub__33800b7dfb5193bcd6bf17beca91a47b148b0349a0de5c1a62f72612ea620096(
2928
+ *,
2929
+ slurm_custom_settings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.SlurmCustomSettingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2930
+ ) -> None:
2931
+ """Type checking stubs"""
2932
+ pass
2933
+
2934
+ def _typecheckingstub__95bf383e09d59731c7b8cdac63a717d5a44f4c4d44a291a247b4ebda5f004d3c(
2935
+ *,
2936
+ parameter_name: builtins.str,
2937
+ parameter_value: builtins.str,
2938
+ ) -> None:
2939
+ """Type checking stubs"""
2940
+ pass
2941
+
2942
+ def _typecheckingstub__adf4042ef194d53ff84c49fd66b8d9e370cc1fb06ce3e5dfca9c196a9102c196(
2943
+ *,
2944
+ allocation_strategy: typing.Optional[builtins.str] = None,
2945
+ ) -> None:
2946
+ """Type checking stubs"""
2947
+ pass
2948
+
2949
+ def _typecheckingstub__b89ff3536491b7ea531bd9d6ca00d7d32a25ce4c02b926c6d677abde115a012d(
2950
+ *,
2951
+ cluster_id: builtins.str,
2952
+ custom_launch_template: typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.CustomLaunchTemplateProperty, typing.Dict[builtins.str, typing.Any]]],
2953
+ iam_instance_profile_arn: builtins.str,
2954
+ instance_configs: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.InstanceConfigProperty, typing.Dict[builtins.str, typing.Any]]]]],
2955
+ scaling_configuration: typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.ScalingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]],
2956
+ subnet_ids: typing.Sequence[builtins.str],
2957
+ ami_id: typing.Optional[builtins.str] = None,
2958
+ name: typing.Optional[builtins.str] = None,
2959
+ purchase_option: typing.Optional[builtins.str] = None,
2960
+ slurm_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.SlurmConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2961
+ spot_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnComputeNodeGroup.SpotOptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2962
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2963
+ ) -> None:
2964
+ """Type checking stubs"""
2965
+ pass
2966
+
2967
+ def _typecheckingstub__456edeb02414f262683a35f15a1fae223f92feec590d98024478f680e3249bdd(
2968
+ scope: _constructs_77d1e7e8.Construct,
2969
+ id: builtins.str,
2970
+ *,
2971
+ cluster_id: builtins.str,
2972
+ compute_node_group_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.ComputeNodeGroupConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2973
+ name: typing.Optional[builtins.str] = None,
2974
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2975
+ ) -> None:
2976
+ """Type checking stubs"""
2977
+ pass
2978
+
2979
+ def _typecheckingstub__1e91ae15ffe542b6e139af845f0fd58e29e3eb1de94ad2d790169a1ef4226536(
2980
+ inspector: _TreeInspector_488e0dd5,
2981
+ ) -> None:
2982
+ """Type checking stubs"""
2983
+ pass
2984
+
2985
+ def _typecheckingstub__fedb84fc44c9a0375a3b3b2a4753f07a788f5775a01c39a2a16ef0736b04f3b1(
2986
+ props: typing.Mapping[builtins.str, typing.Any],
2987
+ ) -> None:
2988
+ """Type checking stubs"""
2989
+ pass
2990
+
2991
+ def _typecheckingstub__4dd96bf4d965aac7a933a9b0af29542239baf57d893776c7333dd76d3bff2ca8(
2992
+ value: builtins.str,
2993
+ ) -> None:
2994
+ """Type checking stubs"""
2995
+ pass
2996
+
2997
+ def _typecheckingstub__9fa120ad7f68494c28ccc4186d82ee7a8ff23a8eb4615bb87e7c325c61e1a497(
2998
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnQueue.ComputeNodeGroupConfigurationProperty]]]],
2999
+ ) -> None:
3000
+ """Type checking stubs"""
3001
+ pass
3002
+
3003
+ def _typecheckingstub__7e4f1e9c61fd11b4d3ed4834db791c7064b5408b742dfa6c4a00a242858ad868(
3004
+ value: typing.Optional[builtins.str],
3005
+ ) -> None:
3006
+ """Type checking stubs"""
3007
+ pass
3008
+
3009
+ def _typecheckingstub__31674031b3f2a49a29efb9edfdb5a54431db3db7616989edd3617113cd6b9afd(
3010
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
3011
+ ) -> None:
3012
+ """Type checking stubs"""
3013
+ pass
3014
+
3015
+ def _typecheckingstub__9cc981d8d2dee6d007be19b192d33155162e657cf0ddef3c82ac69bf13b0c34a(
3016
+ *,
3017
+ compute_node_group_id: typing.Optional[builtins.str] = None,
3018
+ ) -> None:
3019
+ """Type checking stubs"""
3020
+ pass
3021
+
3022
+ def _typecheckingstub__5e51eb0cec81203da74b9b3c33259135afec8fef04327498ab79338af5a9df34(
3023
+ *,
3024
+ code: typing.Optional[builtins.str] = None,
3025
+ message: typing.Optional[builtins.str] = None,
3026
+ ) -> None:
3027
+ """Type checking stubs"""
3028
+ pass
3029
+
3030
+ def _typecheckingstub__4211e23057aa9883cd55dc7f797abf7f4ad0554424bd2d7d7cfce123004b8557(
3031
+ *,
3032
+ cluster_id: builtins.str,
3033
+ compute_node_group_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.ComputeNodeGroupConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
3034
+ name: typing.Optional[builtins.str] = None,
3035
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
3036
+ ) -> None:
3037
+ """Type checking stubs"""
3038
+ pass