pulumi-azure-native 2.57.0a1724151002__py3-none-any.whl → 2.58.0__py3-none-any.whl

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

Potentially problematic release.


This version of pulumi-azure-native might be problematic. Click here for more details.

Files changed (101) hide show
  1. pulumi_azure_native/__init__.py +52 -0
  2. pulumi_azure_native/azurelargeinstance/__init__.py +22 -0
  3. pulumi_azure_native/azurelargeinstance/_enums.py +256 -0
  4. pulumi_azure_native/azurelargeinstance/_inputs.py +646 -0
  5. pulumi_azure_native/azurelargeinstance/azure_large_instance.py +475 -0
  6. pulumi_azure_native/azurelargeinstance/azure_large_storage_instance.py +320 -0
  7. pulumi_azure_native/azurelargeinstance/get_azure_large_instance.py +271 -0
  8. pulumi_azure_native/azurelargeinstance/get_azure_large_storage_instance.py +193 -0
  9. pulumi_azure_native/azurelargeinstance/outputs.py +795 -0
  10. pulumi_azure_native/azurelargeinstance/v20240801preview/__init__.py +14 -0
  11. pulumi_azure_native/azurelargeinstance/v20240801preview/_enums.py +256 -0
  12. pulumi_azure_native/azurelargeinstance/v20240801preview/_inputs.py +646 -0
  13. pulumi_azure_native/azurelargeinstance/v20240801preview/azure_large_instance.py +473 -0
  14. pulumi_azure_native/azurelargeinstance/v20240801preview/azure_large_storage_instance.py +318 -0
  15. pulumi_azure_native/azurelargeinstance/v20240801preview/get_azure_large_instance.py +269 -0
  16. pulumi_azure_native/azurelargeinstance/v20240801preview/get_azure_large_storage_instance.py +191 -0
  17. pulumi_azure_native/azurelargeinstance/v20240801preview/outputs.py +795 -0
  18. pulumi_azure_native/baremetalinfrastructure/__init__.py +5 -0
  19. pulumi_azure_native/baremetalinfrastructure/_enums.py +74 -0
  20. pulumi_azure_native/baremetalinfrastructure/_inputs.py +368 -0
  21. pulumi_azure_native/baremetalinfrastructure/azure_bare_metal_instance.py +502 -0
  22. pulumi_azure_native/baremetalinfrastructure/azure_bare_metal_storage_instance.py +3 -3
  23. pulumi_azure_native/baremetalinfrastructure/get_azure_bare_metal_instance.py +281 -0
  24. pulumi_azure_native/baremetalinfrastructure/get_azure_bare_metal_storage_instance.py +2 -2
  25. pulumi_azure_native/baremetalinfrastructure/outputs.py +351 -0
  26. pulumi_azure_native/baremetalinfrastructure/v20230406/azure_bare_metal_storage_instance.py +1 -1
  27. pulumi_azure_native/baremetalinfrastructure/v20230804preview/azure_bare_metal_storage_instance.py +1 -1
  28. pulumi_azure_native/baremetalinfrastructure/v20231101preview/azure_bare_metal_storage_instance.py +1 -1
  29. pulumi_azure_native/baremetalinfrastructure/v20240801preview/__init__.py +14 -0
  30. pulumi_azure_native/baremetalinfrastructure/v20240801preview/_enums.py +106 -0
  31. pulumi_azure_native/baremetalinfrastructure/v20240801preview/_inputs.py +644 -0
  32. pulumi_azure_native/baremetalinfrastructure/v20240801preview/azure_bare_metal_instance.py +500 -0
  33. pulumi_azure_native/baremetalinfrastructure/v20240801preview/azure_bare_metal_storage_instance.py +316 -0
  34. pulumi_azure_native/baremetalinfrastructure/v20240801preview/get_azure_bare_metal_instance.py +279 -0
  35. pulumi_azure_native/baremetalinfrastructure/v20240801preview/get_azure_bare_metal_storage_instance.py +188 -0
  36. pulumi_azure_native/baremetalinfrastructure/v20240801preview/outputs.py +726 -0
  37. pulumi_azure_native/batch/__init__.py +3 -0
  38. pulumi_azure_native/batch/application.py +3 -3
  39. pulumi_azure_native/batch/application_package.py +3 -3
  40. pulumi_azure_native/batch/batch_account.py +3 -3
  41. pulumi_azure_native/batch/get_application.py +2 -2
  42. pulumi_azure_native/batch/get_application_package.py +2 -2
  43. pulumi_azure_native/batch/get_batch_account.py +2 -2
  44. pulumi_azure_native/batch/get_pool.py +2 -2
  45. pulumi_azure_native/batch/list_batch_account_keys.py +2 -2
  46. pulumi_azure_native/batch/pool.py +3 -3
  47. pulumi_azure_native/batch/v20220101/batch_account.py +1 -1
  48. pulumi_azure_native/batch/v20230501/application.py +1 -1
  49. pulumi_azure_native/batch/v20230501/application_package.py +1 -1
  50. pulumi_azure_native/batch/v20230501/batch_account.py +1 -1
  51. pulumi_azure_native/batch/v20230501/pool.py +1 -1
  52. pulumi_azure_native/batch/v20231101/application.py +1 -1
  53. pulumi_azure_native/batch/v20231101/application_package.py +1 -1
  54. pulumi_azure_native/batch/v20231101/batch_account.py +1 -1
  55. pulumi_azure_native/batch/v20231101/pool.py +1 -1
  56. pulumi_azure_native/batch/v20240201/application.py +1 -1
  57. pulumi_azure_native/batch/v20240201/application_package.py +1 -1
  58. pulumi_azure_native/batch/v20240201/batch_account.py +1 -1
  59. pulumi_azure_native/batch/v20240201/pool.py +1 -1
  60. pulumi_azure_native/batch/v20240701/__init__.py +19 -0
  61. pulumi_azure_native/batch/v20240701/_enums.py +510 -0
  62. pulumi_azure_native/batch/v20240701/_inputs.py +4319 -0
  63. pulumi_azure_native/batch/v20240701/application.py +305 -0
  64. pulumi_azure_native/batch/v20240701/application_package.py +289 -0
  65. pulumi_azure_native/batch/v20240701/batch_account.py +545 -0
  66. pulumi_azure_native/batch/v20240701/get_application.py +179 -0
  67. pulumi_azure_native/batch/v20240701/get_application_package.py +210 -0
  68. pulumi_azure_native/batch/v20240701/get_batch_account.py +364 -0
  69. pulumi_azure_native/batch/v20240701/get_pool.py +503 -0
  70. pulumi_azure_native/batch/v20240701/list_batch_account_keys.py +109 -0
  71. pulumi_azure_native/batch/v20240701/outputs.py +4161 -0
  72. pulumi_azure_native/batch/v20240701/pool.py +854 -0
  73. pulumi_azure_native/hardwaresecuritymodules/__init__.py +3 -0
  74. pulumi_azure_native/hardwaresecuritymodules/cloud_hsm_cluster.py +3 -3
  75. pulumi_azure_native/hardwaresecuritymodules/cloud_hsm_cluster_private_endpoint_connection.py +3 -3
  76. pulumi_azure_native/hardwaresecuritymodules/dedicated_hsm.py +5 -1
  77. pulumi_azure_native/hardwaresecuritymodules/get_cloud_hsm_cluster.py +2 -2
  78. pulumi_azure_native/hardwaresecuritymodules/get_cloud_hsm_cluster_private_endpoint_connection.py +2 -2
  79. pulumi_azure_native/hardwaresecuritymodules/get_dedicated_hsm.py +4 -0
  80. pulumi_azure_native/hardwaresecuritymodules/v20211130/dedicated_hsm.py +1 -1
  81. pulumi_azure_native/hardwaresecuritymodules/v20220831preview/cloud_hsm_cluster.py +1 -1
  82. pulumi_azure_native/hardwaresecuritymodules/v20220831preview/cloud_hsm_cluster_private_endpoint_connection.py +1 -1
  83. pulumi_azure_native/hardwaresecuritymodules/v20231210preview/cloud_hsm_cluster.py +1 -1
  84. pulumi_azure_native/hardwaresecuritymodules/v20231210preview/cloud_hsm_cluster_private_endpoint_connection.py +1 -1
  85. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/__init__.py +16 -0
  86. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/_enums.py +100 -0
  87. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/_inputs.py +405 -0
  88. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/cloud_hsm_cluster.py +428 -0
  89. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/cloud_hsm_cluster_private_endpoint_connection.py +262 -0
  90. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/dedicated_hsm.py +394 -0
  91. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/get_cloud_hsm_cluster.py +279 -0
  92. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/get_cloud_hsm_cluster_private_endpoint_connection.py +193 -0
  93. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/get_dedicated_hsm.py +240 -0
  94. pulumi_azure_native/hardwaresecuritymodules/v20240630preview/outputs.py +772 -0
  95. pulumi_azure_native/machinelearningservices/v20240701preview/_inputs.py +20 -0
  96. pulumi_azure_native/machinelearningservices/v20240701preview/outputs.py +12 -11
  97. pulumi_azure_native/pulumi-plugin.json +1 -1
  98. {pulumi_azure_native-2.57.0a1724151002.dist-info → pulumi_azure_native-2.58.0.dist-info}/METADATA +1 -1
  99. {pulumi_azure_native-2.57.0a1724151002.dist-info → pulumi_azure_native-2.58.0.dist-info}/RECORD +101 -52
  100. {pulumi_azure_native-2.57.0a1724151002.dist-info → pulumi_azure_native-2.58.0.dist-info}/WHEEL +1 -1
  101. {pulumi_azure_native-2.57.0a1724151002.dist-info → pulumi_azure_native-2.58.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,4319 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from ... import _utilities
16
+ from ._enums import *
17
+
18
+ __all__ = [
19
+ 'ApplicationPackageReferenceArgs',
20
+ 'ApplicationPackageReferenceArgsDict',
21
+ 'AutoScaleSettingsArgs',
22
+ 'AutoScaleSettingsArgsDict',
23
+ 'AutoStorageBasePropertiesArgs',
24
+ 'AutoStorageBasePropertiesArgsDict',
25
+ 'AutoUserSpecificationArgs',
26
+ 'AutoUserSpecificationArgsDict',
27
+ 'AutomaticOSUpgradePolicyArgs',
28
+ 'AutomaticOSUpgradePolicyArgsDict',
29
+ 'AzureBlobFileSystemConfigurationArgs',
30
+ 'AzureBlobFileSystemConfigurationArgsDict',
31
+ 'AzureFileShareConfigurationArgs',
32
+ 'AzureFileShareConfigurationArgsDict',
33
+ 'BatchAccountIdentityArgs',
34
+ 'BatchAccountIdentityArgsDict',
35
+ 'BatchPoolIdentityArgs',
36
+ 'BatchPoolIdentityArgsDict',
37
+ 'CIFSMountConfigurationArgs',
38
+ 'CIFSMountConfigurationArgsDict',
39
+ 'CertificateReferenceArgs',
40
+ 'CertificateReferenceArgsDict',
41
+ 'ComputeNodeIdentityReferenceArgs',
42
+ 'ComputeNodeIdentityReferenceArgsDict',
43
+ 'ContainerConfigurationArgs',
44
+ 'ContainerConfigurationArgsDict',
45
+ 'ContainerHostBatchBindMountEntryArgs',
46
+ 'ContainerHostBatchBindMountEntryArgsDict',
47
+ 'ContainerRegistryArgs',
48
+ 'ContainerRegistryArgsDict',
49
+ 'DataDiskArgs',
50
+ 'DataDiskArgsDict',
51
+ 'DeploymentConfigurationArgs',
52
+ 'DeploymentConfigurationArgsDict',
53
+ 'DiffDiskSettingsArgs',
54
+ 'DiffDiskSettingsArgsDict',
55
+ 'DiskEncryptionConfigurationArgs',
56
+ 'DiskEncryptionConfigurationArgsDict',
57
+ 'EncryptionPropertiesArgs',
58
+ 'EncryptionPropertiesArgsDict',
59
+ 'EndpointAccessProfileArgs',
60
+ 'EndpointAccessProfileArgsDict',
61
+ 'EnvironmentSettingArgs',
62
+ 'EnvironmentSettingArgsDict',
63
+ 'FixedScaleSettingsArgs',
64
+ 'FixedScaleSettingsArgsDict',
65
+ 'IPRuleArgs',
66
+ 'IPRuleArgsDict',
67
+ 'ImageReferenceArgs',
68
+ 'ImageReferenceArgsDict',
69
+ 'InboundNatPoolArgs',
70
+ 'InboundNatPoolArgsDict',
71
+ 'KeyVaultPropertiesArgs',
72
+ 'KeyVaultPropertiesArgsDict',
73
+ 'KeyVaultReferenceArgs',
74
+ 'KeyVaultReferenceArgsDict',
75
+ 'LinuxUserConfigurationArgs',
76
+ 'LinuxUserConfigurationArgsDict',
77
+ 'ManagedDiskArgs',
78
+ 'ManagedDiskArgsDict',
79
+ 'MetadataItemArgs',
80
+ 'MetadataItemArgsDict',
81
+ 'MountConfigurationArgs',
82
+ 'MountConfigurationArgsDict',
83
+ 'NFSMountConfigurationArgs',
84
+ 'NFSMountConfigurationArgsDict',
85
+ 'NetworkConfigurationArgs',
86
+ 'NetworkConfigurationArgsDict',
87
+ 'NetworkProfileArgs',
88
+ 'NetworkProfileArgsDict',
89
+ 'NetworkSecurityGroupRuleArgs',
90
+ 'NetworkSecurityGroupRuleArgsDict',
91
+ 'NodePlacementConfigurationArgs',
92
+ 'NodePlacementConfigurationArgsDict',
93
+ 'OSDiskArgs',
94
+ 'OSDiskArgsDict',
95
+ 'PoolEndpointConfigurationArgs',
96
+ 'PoolEndpointConfigurationArgsDict',
97
+ 'PublicIPAddressConfigurationArgs',
98
+ 'PublicIPAddressConfigurationArgsDict',
99
+ 'ResourceFileArgs',
100
+ 'ResourceFileArgsDict',
101
+ 'RollingUpgradePolicyArgs',
102
+ 'RollingUpgradePolicyArgsDict',
103
+ 'ScaleSettingsArgs',
104
+ 'ScaleSettingsArgsDict',
105
+ 'SecurityProfileArgs',
106
+ 'SecurityProfileArgsDict',
107
+ 'ServiceArtifactReferenceArgs',
108
+ 'ServiceArtifactReferenceArgsDict',
109
+ 'StartTaskArgs',
110
+ 'StartTaskArgsDict',
111
+ 'TaskContainerSettingsArgs',
112
+ 'TaskContainerSettingsArgsDict',
113
+ 'TaskSchedulingPolicyArgs',
114
+ 'TaskSchedulingPolicyArgsDict',
115
+ 'UefiSettingsArgs',
116
+ 'UefiSettingsArgsDict',
117
+ 'UpgradePolicyArgs',
118
+ 'UpgradePolicyArgsDict',
119
+ 'UserAccountArgs',
120
+ 'UserAccountArgsDict',
121
+ 'UserIdentityArgs',
122
+ 'UserIdentityArgsDict',
123
+ 'VMDiskSecurityProfileArgs',
124
+ 'VMDiskSecurityProfileArgsDict',
125
+ 'VMExtensionArgs',
126
+ 'VMExtensionArgsDict',
127
+ 'VirtualMachineConfigurationArgs',
128
+ 'VirtualMachineConfigurationArgsDict',
129
+ 'WindowsConfigurationArgs',
130
+ 'WindowsConfigurationArgsDict',
131
+ 'WindowsUserConfigurationArgs',
132
+ 'WindowsUserConfigurationArgsDict',
133
+ ]
134
+
135
+ MYPY = False
136
+
137
+ if not MYPY:
138
+ class ApplicationPackageReferenceArgsDict(TypedDict):
139
+ id: pulumi.Input[str]
140
+ version: NotRequired[pulumi.Input[str]]
141
+ """
142
+ If this is omitted, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences. If you are calling the REST API directly, the HTTP status code is 409.
143
+ """
144
+ elif False:
145
+ ApplicationPackageReferenceArgsDict: TypeAlias = Mapping[str, Any]
146
+
147
+ @pulumi.input_type
148
+ class ApplicationPackageReferenceArgs:
149
+ def __init__(__self__, *,
150
+ id: pulumi.Input[str],
151
+ version: Optional[pulumi.Input[str]] = None):
152
+ """
153
+ :param pulumi.Input[str] version: If this is omitted, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences. If you are calling the REST API directly, the HTTP status code is 409.
154
+ """
155
+ pulumi.set(__self__, "id", id)
156
+ if version is not None:
157
+ pulumi.set(__self__, "version", version)
158
+
159
+ @property
160
+ @pulumi.getter
161
+ def id(self) -> pulumi.Input[str]:
162
+ return pulumi.get(self, "id")
163
+
164
+ @id.setter
165
+ def id(self, value: pulumi.Input[str]):
166
+ pulumi.set(self, "id", value)
167
+
168
+ @property
169
+ @pulumi.getter
170
+ def version(self) -> Optional[pulumi.Input[str]]:
171
+ """
172
+ If this is omitted, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences. If you are calling the REST API directly, the HTTP status code is 409.
173
+ """
174
+ return pulumi.get(self, "version")
175
+
176
+ @version.setter
177
+ def version(self, value: Optional[pulumi.Input[str]]):
178
+ pulumi.set(self, "version", value)
179
+
180
+
181
+ if not MYPY:
182
+ class AutoScaleSettingsArgsDict(TypedDict):
183
+ formula: pulumi.Input[str]
184
+ evaluation_interval: NotRequired[pulumi.Input[str]]
185
+ """
186
+ If omitted, the default value is 15 minutes (PT15M).
187
+ """
188
+ elif False:
189
+ AutoScaleSettingsArgsDict: TypeAlias = Mapping[str, Any]
190
+
191
+ @pulumi.input_type
192
+ class AutoScaleSettingsArgs:
193
+ def __init__(__self__, *,
194
+ formula: pulumi.Input[str],
195
+ evaluation_interval: Optional[pulumi.Input[str]] = None):
196
+ """
197
+ :param pulumi.Input[str] evaluation_interval: If omitted, the default value is 15 minutes (PT15M).
198
+ """
199
+ pulumi.set(__self__, "formula", formula)
200
+ if evaluation_interval is not None:
201
+ pulumi.set(__self__, "evaluation_interval", evaluation_interval)
202
+
203
+ @property
204
+ @pulumi.getter
205
+ def formula(self) -> pulumi.Input[str]:
206
+ return pulumi.get(self, "formula")
207
+
208
+ @formula.setter
209
+ def formula(self, value: pulumi.Input[str]):
210
+ pulumi.set(self, "formula", value)
211
+
212
+ @property
213
+ @pulumi.getter(name="evaluationInterval")
214
+ def evaluation_interval(self) -> Optional[pulumi.Input[str]]:
215
+ """
216
+ If omitted, the default value is 15 minutes (PT15M).
217
+ """
218
+ return pulumi.get(self, "evaluation_interval")
219
+
220
+ @evaluation_interval.setter
221
+ def evaluation_interval(self, value: Optional[pulumi.Input[str]]):
222
+ pulumi.set(self, "evaluation_interval", value)
223
+
224
+
225
+ if not MYPY:
226
+ class AutoStorageBasePropertiesArgsDict(TypedDict):
227
+ """
228
+ The properties related to the auto-storage account.
229
+ """
230
+ storage_account_id: pulumi.Input[str]
231
+ """
232
+ The resource ID of the storage account to be used for auto-storage account.
233
+ """
234
+ authentication_mode: NotRequired[pulumi.Input['AutoStorageAuthenticationMode']]
235
+ """
236
+ The authentication mode which the Batch service will use to manage the auto-storage account.
237
+ """
238
+ node_identity_reference: NotRequired[pulumi.Input['ComputeNodeIdentityReferenceArgsDict']]
239
+ """
240
+ The identity referenced here must be assigned to pools which have compute nodes that need access to auto-storage.
241
+ """
242
+ elif False:
243
+ AutoStorageBasePropertiesArgsDict: TypeAlias = Mapping[str, Any]
244
+
245
+ @pulumi.input_type
246
+ class AutoStorageBasePropertiesArgs:
247
+ def __init__(__self__, *,
248
+ storage_account_id: pulumi.Input[str],
249
+ authentication_mode: Optional[pulumi.Input['AutoStorageAuthenticationMode']] = None,
250
+ node_identity_reference: Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']] = None):
251
+ """
252
+ The properties related to the auto-storage account.
253
+ :param pulumi.Input[str] storage_account_id: The resource ID of the storage account to be used for auto-storage account.
254
+ :param pulumi.Input['AutoStorageAuthenticationMode'] authentication_mode: The authentication mode which the Batch service will use to manage the auto-storage account.
255
+ :param pulumi.Input['ComputeNodeIdentityReferenceArgs'] node_identity_reference: The identity referenced here must be assigned to pools which have compute nodes that need access to auto-storage.
256
+ """
257
+ pulumi.set(__self__, "storage_account_id", storage_account_id)
258
+ if authentication_mode is None:
259
+ authentication_mode = 'StorageKeys'
260
+ if authentication_mode is not None:
261
+ pulumi.set(__self__, "authentication_mode", authentication_mode)
262
+ if node_identity_reference is not None:
263
+ pulumi.set(__self__, "node_identity_reference", node_identity_reference)
264
+
265
+ @property
266
+ @pulumi.getter(name="storageAccountId")
267
+ def storage_account_id(self) -> pulumi.Input[str]:
268
+ """
269
+ The resource ID of the storage account to be used for auto-storage account.
270
+ """
271
+ return pulumi.get(self, "storage_account_id")
272
+
273
+ @storage_account_id.setter
274
+ def storage_account_id(self, value: pulumi.Input[str]):
275
+ pulumi.set(self, "storage_account_id", value)
276
+
277
+ @property
278
+ @pulumi.getter(name="authenticationMode")
279
+ def authentication_mode(self) -> Optional[pulumi.Input['AutoStorageAuthenticationMode']]:
280
+ """
281
+ The authentication mode which the Batch service will use to manage the auto-storage account.
282
+ """
283
+ return pulumi.get(self, "authentication_mode")
284
+
285
+ @authentication_mode.setter
286
+ def authentication_mode(self, value: Optional[pulumi.Input['AutoStorageAuthenticationMode']]):
287
+ pulumi.set(self, "authentication_mode", value)
288
+
289
+ @property
290
+ @pulumi.getter(name="nodeIdentityReference")
291
+ def node_identity_reference(self) -> Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']]:
292
+ """
293
+ The identity referenced here must be assigned to pools which have compute nodes that need access to auto-storage.
294
+ """
295
+ return pulumi.get(self, "node_identity_reference")
296
+
297
+ @node_identity_reference.setter
298
+ def node_identity_reference(self, value: Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']]):
299
+ pulumi.set(self, "node_identity_reference", value)
300
+
301
+
302
+ if not MYPY:
303
+ class AutoUserSpecificationArgsDict(TypedDict):
304
+ elevation_level: NotRequired[pulumi.Input['ElevationLevel']]
305
+ """
306
+ The default value is nonAdmin.
307
+ """
308
+ scope: NotRequired[pulumi.Input['AutoUserScope']]
309
+ """
310
+ The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks.
311
+ """
312
+ elif False:
313
+ AutoUserSpecificationArgsDict: TypeAlias = Mapping[str, Any]
314
+
315
+ @pulumi.input_type
316
+ class AutoUserSpecificationArgs:
317
+ def __init__(__self__, *,
318
+ elevation_level: Optional[pulumi.Input['ElevationLevel']] = None,
319
+ scope: Optional[pulumi.Input['AutoUserScope']] = None):
320
+ """
321
+ :param pulumi.Input['ElevationLevel'] elevation_level: The default value is nonAdmin.
322
+ :param pulumi.Input['AutoUserScope'] scope: The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks.
323
+ """
324
+ if elevation_level is not None:
325
+ pulumi.set(__self__, "elevation_level", elevation_level)
326
+ if scope is not None:
327
+ pulumi.set(__self__, "scope", scope)
328
+
329
+ @property
330
+ @pulumi.getter(name="elevationLevel")
331
+ def elevation_level(self) -> Optional[pulumi.Input['ElevationLevel']]:
332
+ """
333
+ The default value is nonAdmin.
334
+ """
335
+ return pulumi.get(self, "elevation_level")
336
+
337
+ @elevation_level.setter
338
+ def elevation_level(self, value: Optional[pulumi.Input['ElevationLevel']]):
339
+ pulumi.set(self, "elevation_level", value)
340
+
341
+ @property
342
+ @pulumi.getter
343
+ def scope(self) -> Optional[pulumi.Input['AutoUserScope']]:
344
+ """
345
+ The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks.
346
+ """
347
+ return pulumi.get(self, "scope")
348
+
349
+ @scope.setter
350
+ def scope(self, value: Optional[pulumi.Input['AutoUserScope']]):
351
+ pulumi.set(self, "scope", value)
352
+
353
+
354
+ if not MYPY:
355
+ class AutomaticOSUpgradePolicyArgsDict(TypedDict):
356
+ """
357
+ The configuration parameters used for performing automatic OS upgrade.
358
+ """
359
+ disable_automatic_rollback: NotRequired[pulumi.Input[bool]]
360
+ """
361
+ Whether OS image rollback feature should be disabled.
362
+ """
363
+ enable_automatic_os_upgrade: NotRequired[pulumi.Input[bool]]
364
+ """
365
+ Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. <br /><br /> If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/en-us/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true.
366
+ """
367
+ os_rolling_upgrade_deferral: NotRequired[pulumi.Input[bool]]
368
+ """
369
+ Defer OS upgrades on the TVMs if they are running tasks.
370
+ """
371
+ use_rolling_upgrade_policy: NotRequired[pulumi.Input[bool]]
372
+ """
373
+ Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
374
+ """
375
+ elif False:
376
+ AutomaticOSUpgradePolicyArgsDict: TypeAlias = Mapping[str, Any]
377
+
378
+ @pulumi.input_type
379
+ class AutomaticOSUpgradePolicyArgs:
380
+ def __init__(__self__, *,
381
+ disable_automatic_rollback: Optional[pulumi.Input[bool]] = None,
382
+ enable_automatic_os_upgrade: Optional[pulumi.Input[bool]] = None,
383
+ os_rolling_upgrade_deferral: Optional[pulumi.Input[bool]] = None,
384
+ use_rolling_upgrade_policy: Optional[pulumi.Input[bool]] = None):
385
+ """
386
+ The configuration parameters used for performing automatic OS upgrade.
387
+ :param pulumi.Input[bool] disable_automatic_rollback: Whether OS image rollback feature should be disabled.
388
+ :param pulumi.Input[bool] enable_automatic_os_upgrade: Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. <br /><br /> If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/en-us/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true.
389
+ :param pulumi.Input[bool] os_rolling_upgrade_deferral: Defer OS upgrades on the TVMs if they are running tasks.
390
+ :param pulumi.Input[bool] use_rolling_upgrade_policy: Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
391
+ """
392
+ if disable_automatic_rollback is not None:
393
+ pulumi.set(__self__, "disable_automatic_rollback", disable_automatic_rollback)
394
+ if enable_automatic_os_upgrade is not None:
395
+ pulumi.set(__self__, "enable_automatic_os_upgrade", enable_automatic_os_upgrade)
396
+ if os_rolling_upgrade_deferral is not None:
397
+ pulumi.set(__self__, "os_rolling_upgrade_deferral", os_rolling_upgrade_deferral)
398
+ if use_rolling_upgrade_policy is not None:
399
+ pulumi.set(__self__, "use_rolling_upgrade_policy", use_rolling_upgrade_policy)
400
+
401
+ @property
402
+ @pulumi.getter(name="disableAutomaticRollback")
403
+ def disable_automatic_rollback(self) -> Optional[pulumi.Input[bool]]:
404
+ """
405
+ Whether OS image rollback feature should be disabled.
406
+ """
407
+ return pulumi.get(self, "disable_automatic_rollback")
408
+
409
+ @disable_automatic_rollback.setter
410
+ def disable_automatic_rollback(self, value: Optional[pulumi.Input[bool]]):
411
+ pulumi.set(self, "disable_automatic_rollback", value)
412
+
413
+ @property
414
+ @pulumi.getter(name="enableAutomaticOSUpgrade")
415
+ def enable_automatic_os_upgrade(self) -> Optional[pulumi.Input[bool]]:
416
+ """
417
+ Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. <br /><br /> If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/en-us/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true.
418
+ """
419
+ return pulumi.get(self, "enable_automatic_os_upgrade")
420
+
421
+ @enable_automatic_os_upgrade.setter
422
+ def enable_automatic_os_upgrade(self, value: Optional[pulumi.Input[bool]]):
423
+ pulumi.set(self, "enable_automatic_os_upgrade", value)
424
+
425
+ @property
426
+ @pulumi.getter(name="osRollingUpgradeDeferral")
427
+ def os_rolling_upgrade_deferral(self) -> Optional[pulumi.Input[bool]]:
428
+ """
429
+ Defer OS upgrades on the TVMs if they are running tasks.
430
+ """
431
+ return pulumi.get(self, "os_rolling_upgrade_deferral")
432
+
433
+ @os_rolling_upgrade_deferral.setter
434
+ def os_rolling_upgrade_deferral(self, value: Optional[pulumi.Input[bool]]):
435
+ pulumi.set(self, "os_rolling_upgrade_deferral", value)
436
+
437
+ @property
438
+ @pulumi.getter(name="useRollingUpgradePolicy")
439
+ def use_rolling_upgrade_policy(self) -> Optional[pulumi.Input[bool]]:
440
+ """
441
+ Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
442
+ """
443
+ return pulumi.get(self, "use_rolling_upgrade_policy")
444
+
445
+ @use_rolling_upgrade_policy.setter
446
+ def use_rolling_upgrade_policy(self, value: Optional[pulumi.Input[bool]]):
447
+ pulumi.set(self, "use_rolling_upgrade_policy", value)
448
+
449
+
450
+ if not MYPY:
451
+ class AzureBlobFileSystemConfigurationArgsDict(TypedDict):
452
+ account_name: pulumi.Input[str]
453
+ container_name: pulumi.Input[str]
454
+ relative_mount_path: pulumi.Input[str]
455
+ """
456
+ All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
457
+ """
458
+ account_key: NotRequired[pulumi.Input[str]]
459
+ """
460
+ This property is mutually exclusive with both sasKey and identity; exactly one must be specified.
461
+ """
462
+ blobfuse_options: NotRequired[pulumi.Input[str]]
463
+ """
464
+ These are 'net use' options in Windows and 'mount' options in Linux.
465
+ """
466
+ identity_reference: NotRequired[pulumi.Input['ComputeNodeIdentityReferenceArgsDict']]
467
+ """
468
+ This property is mutually exclusive with both accountKey and sasKey; exactly one must be specified.
469
+ """
470
+ sas_key: NotRequired[pulumi.Input[str]]
471
+ """
472
+ This property is mutually exclusive with both accountKey and identity; exactly one must be specified.
473
+ """
474
+ elif False:
475
+ AzureBlobFileSystemConfigurationArgsDict: TypeAlias = Mapping[str, Any]
476
+
477
+ @pulumi.input_type
478
+ class AzureBlobFileSystemConfigurationArgs:
479
+ def __init__(__self__, *,
480
+ account_name: pulumi.Input[str],
481
+ container_name: pulumi.Input[str],
482
+ relative_mount_path: pulumi.Input[str],
483
+ account_key: Optional[pulumi.Input[str]] = None,
484
+ blobfuse_options: Optional[pulumi.Input[str]] = None,
485
+ identity_reference: Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']] = None,
486
+ sas_key: Optional[pulumi.Input[str]] = None):
487
+ """
488
+ :param pulumi.Input[str] relative_mount_path: All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
489
+ :param pulumi.Input[str] account_key: This property is mutually exclusive with both sasKey and identity; exactly one must be specified.
490
+ :param pulumi.Input[str] blobfuse_options: These are 'net use' options in Windows and 'mount' options in Linux.
491
+ :param pulumi.Input['ComputeNodeIdentityReferenceArgs'] identity_reference: This property is mutually exclusive with both accountKey and sasKey; exactly one must be specified.
492
+ :param pulumi.Input[str] sas_key: This property is mutually exclusive with both accountKey and identity; exactly one must be specified.
493
+ """
494
+ pulumi.set(__self__, "account_name", account_name)
495
+ pulumi.set(__self__, "container_name", container_name)
496
+ pulumi.set(__self__, "relative_mount_path", relative_mount_path)
497
+ if account_key is not None:
498
+ pulumi.set(__self__, "account_key", account_key)
499
+ if blobfuse_options is not None:
500
+ pulumi.set(__self__, "blobfuse_options", blobfuse_options)
501
+ if identity_reference is not None:
502
+ pulumi.set(__self__, "identity_reference", identity_reference)
503
+ if sas_key is not None:
504
+ pulumi.set(__self__, "sas_key", sas_key)
505
+
506
+ @property
507
+ @pulumi.getter(name="accountName")
508
+ def account_name(self) -> pulumi.Input[str]:
509
+ return pulumi.get(self, "account_name")
510
+
511
+ @account_name.setter
512
+ def account_name(self, value: pulumi.Input[str]):
513
+ pulumi.set(self, "account_name", value)
514
+
515
+ @property
516
+ @pulumi.getter(name="containerName")
517
+ def container_name(self) -> pulumi.Input[str]:
518
+ return pulumi.get(self, "container_name")
519
+
520
+ @container_name.setter
521
+ def container_name(self, value: pulumi.Input[str]):
522
+ pulumi.set(self, "container_name", value)
523
+
524
+ @property
525
+ @pulumi.getter(name="relativeMountPath")
526
+ def relative_mount_path(self) -> pulumi.Input[str]:
527
+ """
528
+ All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
529
+ """
530
+ return pulumi.get(self, "relative_mount_path")
531
+
532
+ @relative_mount_path.setter
533
+ def relative_mount_path(self, value: pulumi.Input[str]):
534
+ pulumi.set(self, "relative_mount_path", value)
535
+
536
+ @property
537
+ @pulumi.getter(name="accountKey")
538
+ def account_key(self) -> Optional[pulumi.Input[str]]:
539
+ """
540
+ This property is mutually exclusive with both sasKey and identity; exactly one must be specified.
541
+ """
542
+ return pulumi.get(self, "account_key")
543
+
544
+ @account_key.setter
545
+ def account_key(self, value: Optional[pulumi.Input[str]]):
546
+ pulumi.set(self, "account_key", value)
547
+
548
+ @property
549
+ @pulumi.getter(name="blobfuseOptions")
550
+ def blobfuse_options(self) -> Optional[pulumi.Input[str]]:
551
+ """
552
+ These are 'net use' options in Windows and 'mount' options in Linux.
553
+ """
554
+ return pulumi.get(self, "blobfuse_options")
555
+
556
+ @blobfuse_options.setter
557
+ def blobfuse_options(self, value: Optional[pulumi.Input[str]]):
558
+ pulumi.set(self, "blobfuse_options", value)
559
+
560
+ @property
561
+ @pulumi.getter(name="identityReference")
562
+ def identity_reference(self) -> Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']]:
563
+ """
564
+ This property is mutually exclusive with both accountKey and sasKey; exactly one must be specified.
565
+ """
566
+ return pulumi.get(self, "identity_reference")
567
+
568
+ @identity_reference.setter
569
+ def identity_reference(self, value: Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']]):
570
+ pulumi.set(self, "identity_reference", value)
571
+
572
+ @property
573
+ @pulumi.getter(name="sasKey")
574
+ def sas_key(self) -> Optional[pulumi.Input[str]]:
575
+ """
576
+ This property is mutually exclusive with both accountKey and identity; exactly one must be specified.
577
+ """
578
+ return pulumi.get(self, "sas_key")
579
+
580
+ @sas_key.setter
581
+ def sas_key(self, value: Optional[pulumi.Input[str]]):
582
+ pulumi.set(self, "sas_key", value)
583
+
584
+
585
+ if not MYPY:
586
+ class AzureFileShareConfigurationArgsDict(TypedDict):
587
+ account_key: pulumi.Input[str]
588
+ account_name: pulumi.Input[str]
589
+ azure_file_url: pulumi.Input[str]
590
+ """
591
+ This is of the form 'https://{account}.file.core.windows.net/'.
592
+ """
593
+ relative_mount_path: pulumi.Input[str]
594
+ """
595
+ All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
596
+ """
597
+ mount_options: NotRequired[pulumi.Input[str]]
598
+ """
599
+ These are 'net use' options in Windows and 'mount' options in Linux.
600
+ """
601
+ elif False:
602
+ AzureFileShareConfigurationArgsDict: TypeAlias = Mapping[str, Any]
603
+
604
+ @pulumi.input_type
605
+ class AzureFileShareConfigurationArgs:
606
+ def __init__(__self__, *,
607
+ account_key: pulumi.Input[str],
608
+ account_name: pulumi.Input[str],
609
+ azure_file_url: pulumi.Input[str],
610
+ relative_mount_path: pulumi.Input[str],
611
+ mount_options: Optional[pulumi.Input[str]] = None):
612
+ """
613
+ :param pulumi.Input[str] azure_file_url: This is of the form 'https://{account}.file.core.windows.net/'.
614
+ :param pulumi.Input[str] relative_mount_path: All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
615
+ :param pulumi.Input[str] mount_options: These are 'net use' options in Windows and 'mount' options in Linux.
616
+ """
617
+ pulumi.set(__self__, "account_key", account_key)
618
+ pulumi.set(__self__, "account_name", account_name)
619
+ pulumi.set(__self__, "azure_file_url", azure_file_url)
620
+ pulumi.set(__self__, "relative_mount_path", relative_mount_path)
621
+ if mount_options is not None:
622
+ pulumi.set(__self__, "mount_options", mount_options)
623
+
624
+ @property
625
+ @pulumi.getter(name="accountKey")
626
+ def account_key(self) -> pulumi.Input[str]:
627
+ return pulumi.get(self, "account_key")
628
+
629
+ @account_key.setter
630
+ def account_key(self, value: pulumi.Input[str]):
631
+ pulumi.set(self, "account_key", value)
632
+
633
+ @property
634
+ @pulumi.getter(name="accountName")
635
+ def account_name(self) -> pulumi.Input[str]:
636
+ return pulumi.get(self, "account_name")
637
+
638
+ @account_name.setter
639
+ def account_name(self, value: pulumi.Input[str]):
640
+ pulumi.set(self, "account_name", value)
641
+
642
+ @property
643
+ @pulumi.getter(name="azureFileUrl")
644
+ def azure_file_url(self) -> pulumi.Input[str]:
645
+ """
646
+ This is of the form 'https://{account}.file.core.windows.net/'.
647
+ """
648
+ return pulumi.get(self, "azure_file_url")
649
+
650
+ @azure_file_url.setter
651
+ def azure_file_url(self, value: pulumi.Input[str]):
652
+ pulumi.set(self, "azure_file_url", value)
653
+
654
+ @property
655
+ @pulumi.getter(name="relativeMountPath")
656
+ def relative_mount_path(self) -> pulumi.Input[str]:
657
+ """
658
+ All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
659
+ """
660
+ return pulumi.get(self, "relative_mount_path")
661
+
662
+ @relative_mount_path.setter
663
+ def relative_mount_path(self, value: pulumi.Input[str]):
664
+ pulumi.set(self, "relative_mount_path", value)
665
+
666
+ @property
667
+ @pulumi.getter(name="mountOptions")
668
+ def mount_options(self) -> Optional[pulumi.Input[str]]:
669
+ """
670
+ These are 'net use' options in Windows and 'mount' options in Linux.
671
+ """
672
+ return pulumi.get(self, "mount_options")
673
+
674
+ @mount_options.setter
675
+ def mount_options(self, value: Optional[pulumi.Input[str]]):
676
+ pulumi.set(self, "mount_options", value)
677
+
678
+
679
+ if not MYPY:
680
+ class BatchAccountIdentityArgsDict(TypedDict):
681
+ """
682
+ The identity of the Batch account, if configured. This is used when the user specifies 'Microsoft.KeyVault' as their Batch account encryption configuration or when `ManagedIdentity` is selected as the auto-storage authentication mode.
683
+ """
684
+ type: pulumi.Input['ResourceIdentityType']
685
+ """
686
+ The type of identity used for the Batch account.
687
+ """
688
+ user_assigned_identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
689
+ """
690
+ The list of user identities associated with the Batch account.
691
+ """
692
+ elif False:
693
+ BatchAccountIdentityArgsDict: TypeAlias = Mapping[str, Any]
694
+
695
+ @pulumi.input_type
696
+ class BatchAccountIdentityArgs:
697
+ def __init__(__self__, *,
698
+ type: pulumi.Input['ResourceIdentityType'],
699
+ user_assigned_identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
700
+ """
701
+ The identity of the Batch account, if configured. This is used when the user specifies 'Microsoft.KeyVault' as their Batch account encryption configuration or when `ManagedIdentity` is selected as the auto-storage authentication mode.
702
+ :param pulumi.Input['ResourceIdentityType'] type: The type of identity used for the Batch account.
703
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] user_assigned_identities: The list of user identities associated with the Batch account.
704
+ """
705
+ pulumi.set(__self__, "type", type)
706
+ if user_assigned_identities is not None:
707
+ pulumi.set(__self__, "user_assigned_identities", user_assigned_identities)
708
+
709
+ @property
710
+ @pulumi.getter
711
+ def type(self) -> pulumi.Input['ResourceIdentityType']:
712
+ """
713
+ The type of identity used for the Batch account.
714
+ """
715
+ return pulumi.get(self, "type")
716
+
717
+ @type.setter
718
+ def type(self, value: pulumi.Input['ResourceIdentityType']):
719
+ pulumi.set(self, "type", value)
720
+
721
+ @property
722
+ @pulumi.getter(name="userAssignedIdentities")
723
+ def user_assigned_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
724
+ """
725
+ The list of user identities associated with the Batch account.
726
+ """
727
+ return pulumi.get(self, "user_assigned_identities")
728
+
729
+ @user_assigned_identities.setter
730
+ def user_assigned_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
731
+ pulumi.set(self, "user_assigned_identities", value)
732
+
733
+
734
+ if not MYPY:
735
+ class BatchPoolIdentityArgsDict(TypedDict):
736
+ """
737
+ The identity of the Batch pool, if configured. If the pool identity is updated during update an existing pool, only the new vms which are created after the pool shrinks to 0 will have the updated identities
738
+ """
739
+ type: pulumi.Input['PoolIdentityType']
740
+ """
741
+ The type of identity used for the Batch Pool.
742
+ """
743
+ user_assigned_identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
744
+ """
745
+ The list of user identities associated with the Batch pool.
746
+ """
747
+ elif False:
748
+ BatchPoolIdentityArgsDict: TypeAlias = Mapping[str, Any]
749
+
750
+ @pulumi.input_type
751
+ class BatchPoolIdentityArgs:
752
+ def __init__(__self__, *,
753
+ type: pulumi.Input['PoolIdentityType'],
754
+ user_assigned_identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
755
+ """
756
+ The identity of the Batch pool, if configured. If the pool identity is updated during update an existing pool, only the new vms which are created after the pool shrinks to 0 will have the updated identities
757
+ :param pulumi.Input['PoolIdentityType'] type: The type of identity used for the Batch Pool.
758
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] user_assigned_identities: The list of user identities associated with the Batch pool.
759
+ """
760
+ pulumi.set(__self__, "type", type)
761
+ if user_assigned_identities is not None:
762
+ pulumi.set(__self__, "user_assigned_identities", user_assigned_identities)
763
+
764
+ @property
765
+ @pulumi.getter
766
+ def type(self) -> pulumi.Input['PoolIdentityType']:
767
+ """
768
+ The type of identity used for the Batch Pool.
769
+ """
770
+ return pulumi.get(self, "type")
771
+
772
+ @type.setter
773
+ def type(self, value: pulumi.Input['PoolIdentityType']):
774
+ pulumi.set(self, "type", value)
775
+
776
+ @property
777
+ @pulumi.getter(name="userAssignedIdentities")
778
+ def user_assigned_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
779
+ """
780
+ The list of user identities associated with the Batch pool.
781
+ """
782
+ return pulumi.get(self, "user_assigned_identities")
783
+
784
+ @user_assigned_identities.setter
785
+ def user_assigned_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
786
+ pulumi.set(self, "user_assigned_identities", value)
787
+
788
+
789
+ if not MYPY:
790
+ class CIFSMountConfigurationArgsDict(TypedDict):
791
+ password: pulumi.Input[str]
792
+ relative_mount_path: pulumi.Input[str]
793
+ """
794
+ All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
795
+ """
796
+ source: pulumi.Input[str]
797
+ user_name: pulumi.Input[str]
798
+ mount_options: NotRequired[pulumi.Input[str]]
799
+ """
800
+ These are 'net use' options in Windows and 'mount' options in Linux.
801
+ """
802
+ elif False:
803
+ CIFSMountConfigurationArgsDict: TypeAlias = Mapping[str, Any]
804
+
805
+ @pulumi.input_type
806
+ class CIFSMountConfigurationArgs:
807
+ def __init__(__self__, *,
808
+ password: pulumi.Input[str],
809
+ relative_mount_path: pulumi.Input[str],
810
+ source: pulumi.Input[str],
811
+ user_name: pulumi.Input[str],
812
+ mount_options: Optional[pulumi.Input[str]] = None):
813
+ """
814
+ :param pulumi.Input[str] relative_mount_path: All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
815
+ :param pulumi.Input[str] mount_options: These are 'net use' options in Windows and 'mount' options in Linux.
816
+ """
817
+ pulumi.set(__self__, "password", password)
818
+ pulumi.set(__self__, "relative_mount_path", relative_mount_path)
819
+ pulumi.set(__self__, "source", source)
820
+ pulumi.set(__self__, "user_name", user_name)
821
+ if mount_options is not None:
822
+ pulumi.set(__self__, "mount_options", mount_options)
823
+
824
+ @property
825
+ @pulumi.getter
826
+ def password(self) -> pulumi.Input[str]:
827
+ return pulumi.get(self, "password")
828
+
829
+ @password.setter
830
+ def password(self, value: pulumi.Input[str]):
831
+ pulumi.set(self, "password", value)
832
+
833
+ @property
834
+ @pulumi.getter(name="relativeMountPath")
835
+ def relative_mount_path(self) -> pulumi.Input[str]:
836
+ """
837
+ All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
838
+ """
839
+ return pulumi.get(self, "relative_mount_path")
840
+
841
+ @relative_mount_path.setter
842
+ def relative_mount_path(self, value: pulumi.Input[str]):
843
+ pulumi.set(self, "relative_mount_path", value)
844
+
845
+ @property
846
+ @pulumi.getter
847
+ def source(self) -> pulumi.Input[str]:
848
+ return pulumi.get(self, "source")
849
+
850
+ @source.setter
851
+ def source(self, value: pulumi.Input[str]):
852
+ pulumi.set(self, "source", value)
853
+
854
+ @property
855
+ @pulumi.getter(name="userName")
856
+ def user_name(self) -> pulumi.Input[str]:
857
+ return pulumi.get(self, "user_name")
858
+
859
+ @user_name.setter
860
+ def user_name(self, value: pulumi.Input[str]):
861
+ pulumi.set(self, "user_name", value)
862
+
863
+ @property
864
+ @pulumi.getter(name="mountOptions")
865
+ def mount_options(self) -> Optional[pulumi.Input[str]]:
866
+ """
867
+ These are 'net use' options in Windows and 'mount' options in Linux.
868
+ """
869
+ return pulumi.get(self, "mount_options")
870
+
871
+ @mount_options.setter
872
+ def mount_options(self, value: Optional[pulumi.Input[str]]):
873
+ pulumi.set(self, "mount_options", value)
874
+
875
+
876
+ if not MYPY:
877
+ class CertificateReferenceArgsDict(TypedDict):
878
+ """
879
+ Warning: This object is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead.
880
+ """
881
+ id: pulumi.Input[str]
882
+ store_location: NotRequired[pulumi.Input['CertificateStoreLocation']]
883
+ """
884
+ The default value is currentUser. This property is applicable only for pools configured with Windows compute nodes. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.
885
+ """
886
+ store_name: NotRequired[pulumi.Input[str]]
887
+ """
888
+ This property is applicable only for pools configured with Windows compute nodes. Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My.
889
+ """
890
+ visibility: NotRequired[pulumi.Input[Sequence[pulumi.Input['CertificateVisibility']]]]
891
+ elif False:
892
+ CertificateReferenceArgsDict: TypeAlias = Mapping[str, Any]
893
+
894
+ @pulumi.input_type
895
+ class CertificateReferenceArgs:
896
+ def __init__(__self__, *,
897
+ id: pulumi.Input[str],
898
+ store_location: Optional[pulumi.Input['CertificateStoreLocation']] = None,
899
+ store_name: Optional[pulumi.Input[str]] = None,
900
+ visibility: Optional[pulumi.Input[Sequence[pulumi.Input['CertificateVisibility']]]] = None):
901
+ """
902
+ Warning: This object is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead.
903
+ :param pulumi.Input['CertificateStoreLocation'] store_location: The default value is currentUser. This property is applicable only for pools configured with Windows compute nodes. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.
904
+ :param pulumi.Input[str] store_name: This property is applicable only for pools configured with Windows compute nodes. Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My.
905
+ """
906
+ pulumi.set(__self__, "id", id)
907
+ if store_location is not None:
908
+ pulumi.set(__self__, "store_location", store_location)
909
+ if store_name is not None:
910
+ pulumi.set(__self__, "store_name", store_name)
911
+ if visibility is not None:
912
+ pulumi.set(__self__, "visibility", visibility)
913
+
914
+ @property
915
+ @pulumi.getter
916
+ def id(self) -> pulumi.Input[str]:
917
+ return pulumi.get(self, "id")
918
+
919
+ @id.setter
920
+ def id(self, value: pulumi.Input[str]):
921
+ pulumi.set(self, "id", value)
922
+
923
+ @property
924
+ @pulumi.getter(name="storeLocation")
925
+ def store_location(self) -> Optional[pulumi.Input['CertificateStoreLocation']]:
926
+ """
927
+ The default value is currentUser. This property is applicable only for pools configured with Windows compute nodes. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.
928
+ """
929
+ return pulumi.get(self, "store_location")
930
+
931
+ @store_location.setter
932
+ def store_location(self, value: Optional[pulumi.Input['CertificateStoreLocation']]):
933
+ pulumi.set(self, "store_location", value)
934
+
935
+ @property
936
+ @pulumi.getter(name="storeName")
937
+ def store_name(self) -> Optional[pulumi.Input[str]]:
938
+ """
939
+ This property is applicable only for pools configured with Windows compute nodes. Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My.
940
+ """
941
+ return pulumi.get(self, "store_name")
942
+
943
+ @store_name.setter
944
+ def store_name(self, value: Optional[pulumi.Input[str]]):
945
+ pulumi.set(self, "store_name", value)
946
+
947
+ @property
948
+ @pulumi.getter
949
+ def visibility(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CertificateVisibility']]]]:
950
+ return pulumi.get(self, "visibility")
951
+
952
+ @visibility.setter
953
+ def visibility(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CertificateVisibility']]]]):
954
+ pulumi.set(self, "visibility", value)
955
+
956
+
957
+ if not MYPY:
958
+ class ComputeNodeIdentityReferenceArgsDict(TypedDict):
959
+ """
960
+ The reference to a user assigned identity associated with the Batch pool which a compute node will use.
961
+ """
962
+ resource_id: NotRequired[pulumi.Input[str]]
963
+ """
964
+ The ARM resource id of the user assigned identity.
965
+ """
966
+ elif False:
967
+ ComputeNodeIdentityReferenceArgsDict: TypeAlias = Mapping[str, Any]
968
+
969
+ @pulumi.input_type
970
+ class ComputeNodeIdentityReferenceArgs:
971
+ def __init__(__self__, *,
972
+ resource_id: Optional[pulumi.Input[str]] = None):
973
+ """
974
+ The reference to a user assigned identity associated with the Batch pool which a compute node will use.
975
+ :param pulumi.Input[str] resource_id: The ARM resource id of the user assigned identity.
976
+ """
977
+ if resource_id is not None:
978
+ pulumi.set(__self__, "resource_id", resource_id)
979
+
980
+ @property
981
+ @pulumi.getter(name="resourceId")
982
+ def resource_id(self) -> Optional[pulumi.Input[str]]:
983
+ """
984
+ The ARM resource id of the user assigned identity.
985
+ """
986
+ return pulumi.get(self, "resource_id")
987
+
988
+ @resource_id.setter
989
+ def resource_id(self, value: Optional[pulumi.Input[str]]):
990
+ pulumi.set(self, "resource_id", value)
991
+
992
+
993
+ if not MYPY:
994
+ class ContainerConfigurationArgsDict(TypedDict):
995
+ type: pulumi.Input[Union[str, 'ContainerType']]
996
+ container_image_names: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
997
+ """
998
+ This is the full image reference, as would be specified to "docker pull". An image will be sourced from the default Docker registry unless the image is fully qualified with an alternative registry.
999
+ """
1000
+ container_registries: NotRequired[pulumi.Input[Sequence[pulumi.Input['ContainerRegistryArgsDict']]]]
1001
+ """
1002
+ If any images must be downloaded from a private registry which requires credentials, then those credentials must be provided here.
1003
+ """
1004
+ elif False:
1005
+ ContainerConfigurationArgsDict: TypeAlias = Mapping[str, Any]
1006
+
1007
+ @pulumi.input_type
1008
+ class ContainerConfigurationArgs:
1009
+ def __init__(__self__, *,
1010
+ type: pulumi.Input[Union[str, 'ContainerType']],
1011
+ container_image_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1012
+ container_registries: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerRegistryArgs']]]] = None):
1013
+ """
1014
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] container_image_names: This is the full image reference, as would be specified to "docker pull". An image will be sourced from the default Docker registry unless the image is fully qualified with an alternative registry.
1015
+ :param pulumi.Input[Sequence[pulumi.Input['ContainerRegistryArgs']]] container_registries: If any images must be downloaded from a private registry which requires credentials, then those credentials must be provided here.
1016
+ """
1017
+ pulumi.set(__self__, "type", type)
1018
+ if container_image_names is not None:
1019
+ pulumi.set(__self__, "container_image_names", container_image_names)
1020
+ if container_registries is not None:
1021
+ pulumi.set(__self__, "container_registries", container_registries)
1022
+
1023
+ @property
1024
+ @pulumi.getter
1025
+ def type(self) -> pulumi.Input[Union[str, 'ContainerType']]:
1026
+ return pulumi.get(self, "type")
1027
+
1028
+ @type.setter
1029
+ def type(self, value: pulumi.Input[Union[str, 'ContainerType']]):
1030
+ pulumi.set(self, "type", value)
1031
+
1032
+ @property
1033
+ @pulumi.getter(name="containerImageNames")
1034
+ def container_image_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1035
+ """
1036
+ This is the full image reference, as would be specified to "docker pull". An image will be sourced from the default Docker registry unless the image is fully qualified with an alternative registry.
1037
+ """
1038
+ return pulumi.get(self, "container_image_names")
1039
+
1040
+ @container_image_names.setter
1041
+ def container_image_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1042
+ pulumi.set(self, "container_image_names", value)
1043
+
1044
+ @property
1045
+ @pulumi.getter(name="containerRegistries")
1046
+ def container_registries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerRegistryArgs']]]]:
1047
+ """
1048
+ If any images must be downloaded from a private registry which requires credentials, then those credentials must be provided here.
1049
+ """
1050
+ return pulumi.get(self, "container_registries")
1051
+
1052
+ @container_registries.setter
1053
+ def container_registries(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerRegistryArgs']]]]):
1054
+ pulumi.set(self, "container_registries", value)
1055
+
1056
+
1057
+ if not MYPY:
1058
+ class ContainerHostBatchBindMountEntryArgsDict(TypedDict):
1059
+ is_read_only: NotRequired[pulumi.Input[bool]]
1060
+ """
1061
+ For Linux, if you mount this path as a read/write mode, this does not mean that all users in container have the read/write access for the path, it depends on the access in host VM. If this path is mounted read-only, all users within the container will not be able to modify the path.
1062
+ """
1063
+ source: NotRequired[pulumi.Input[Union[str, 'ContainerHostDataPath']]]
1064
+ elif False:
1065
+ ContainerHostBatchBindMountEntryArgsDict: TypeAlias = Mapping[str, Any]
1066
+
1067
+ @pulumi.input_type
1068
+ class ContainerHostBatchBindMountEntryArgs:
1069
+ def __init__(__self__, *,
1070
+ is_read_only: Optional[pulumi.Input[bool]] = None,
1071
+ source: Optional[pulumi.Input[Union[str, 'ContainerHostDataPath']]] = None):
1072
+ """
1073
+ :param pulumi.Input[bool] is_read_only: For Linux, if you mount this path as a read/write mode, this does not mean that all users in container have the read/write access for the path, it depends on the access in host VM. If this path is mounted read-only, all users within the container will not be able to modify the path.
1074
+ """
1075
+ if is_read_only is not None:
1076
+ pulumi.set(__self__, "is_read_only", is_read_only)
1077
+ if source is not None:
1078
+ pulumi.set(__self__, "source", source)
1079
+
1080
+ @property
1081
+ @pulumi.getter(name="isReadOnly")
1082
+ def is_read_only(self) -> Optional[pulumi.Input[bool]]:
1083
+ """
1084
+ For Linux, if you mount this path as a read/write mode, this does not mean that all users in container have the read/write access for the path, it depends on the access in host VM. If this path is mounted read-only, all users within the container will not be able to modify the path.
1085
+ """
1086
+ return pulumi.get(self, "is_read_only")
1087
+
1088
+ @is_read_only.setter
1089
+ def is_read_only(self, value: Optional[pulumi.Input[bool]]):
1090
+ pulumi.set(self, "is_read_only", value)
1091
+
1092
+ @property
1093
+ @pulumi.getter
1094
+ def source(self) -> Optional[pulumi.Input[Union[str, 'ContainerHostDataPath']]]:
1095
+ return pulumi.get(self, "source")
1096
+
1097
+ @source.setter
1098
+ def source(self, value: Optional[pulumi.Input[Union[str, 'ContainerHostDataPath']]]):
1099
+ pulumi.set(self, "source", value)
1100
+
1101
+
1102
+ if not MYPY:
1103
+ class ContainerRegistryArgsDict(TypedDict):
1104
+ identity_reference: NotRequired[pulumi.Input['ComputeNodeIdentityReferenceArgsDict']]
1105
+ """
1106
+ The reference to a user assigned identity associated with the Batch pool which a compute node will use.
1107
+ """
1108
+ password: NotRequired[pulumi.Input[str]]
1109
+ registry_server: NotRequired[pulumi.Input[str]]
1110
+ """
1111
+ If omitted, the default is "docker.io".
1112
+ """
1113
+ user_name: NotRequired[pulumi.Input[str]]
1114
+ elif False:
1115
+ ContainerRegistryArgsDict: TypeAlias = Mapping[str, Any]
1116
+
1117
+ @pulumi.input_type
1118
+ class ContainerRegistryArgs:
1119
+ def __init__(__self__, *,
1120
+ identity_reference: Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']] = None,
1121
+ password: Optional[pulumi.Input[str]] = None,
1122
+ registry_server: Optional[pulumi.Input[str]] = None,
1123
+ user_name: Optional[pulumi.Input[str]] = None):
1124
+ """
1125
+ :param pulumi.Input['ComputeNodeIdentityReferenceArgs'] identity_reference: The reference to a user assigned identity associated with the Batch pool which a compute node will use.
1126
+ :param pulumi.Input[str] registry_server: If omitted, the default is "docker.io".
1127
+ """
1128
+ if identity_reference is not None:
1129
+ pulumi.set(__self__, "identity_reference", identity_reference)
1130
+ if password is not None:
1131
+ pulumi.set(__self__, "password", password)
1132
+ if registry_server is not None:
1133
+ pulumi.set(__self__, "registry_server", registry_server)
1134
+ if user_name is not None:
1135
+ pulumi.set(__self__, "user_name", user_name)
1136
+
1137
+ @property
1138
+ @pulumi.getter(name="identityReference")
1139
+ def identity_reference(self) -> Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']]:
1140
+ """
1141
+ The reference to a user assigned identity associated with the Batch pool which a compute node will use.
1142
+ """
1143
+ return pulumi.get(self, "identity_reference")
1144
+
1145
+ @identity_reference.setter
1146
+ def identity_reference(self, value: Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']]):
1147
+ pulumi.set(self, "identity_reference", value)
1148
+
1149
+ @property
1150
+ @pulumi.getter
1151
+ def password(self) -> Optional[pulumi.Input[str]]:
1152
+ return pulumi.get(self, "password")
1153
+
1154
+ @password.setter
1155
+ def password(self, value: Optional[pulumi.Input[str]]):
1156
+ pulumi.set(self, "password", value)
1157
+
1158
+ @property
1159
+ @pulumi.getter(name="registryServer")
1160
+ def registry_server(self) -> Optional[pulumi.Input[str]]:
1161
+ """
1162
+ If omitted, the default is "docker.io".
1163
+ """
1164
+ return pulumi.get(self, "registry_server")
1165
+
1166
+ @registry_server.setter
1167
+ def registry_server(self, value: Optional[pulumi.Input[str]]):
1168
+ pulumi.set(self, "registry_server", value)
1169
+
1170
+ @property
1171
+ @pulumi.getter(name="userName")
1172
+ def user_name(self) -> Optional[pulumi.Input[str]]:
1173
+ return pulumi.get(self, "user_name")
1174
+
1175
+ @user_name.setter
1176
+ def user_name(self, value: Optional[pulumi.Input[str]]):
1177
+ pulumi.set(self, "user_name", value)
1178
+
1179
+
1180
+ if not MYPY:
1181
+ class DataDiskArgsDict(TypedDict):
1182
+ """
1183
+ Settings which will be used by the data disks associated to Compute Nodes in the Pool. When using attached data disks, you need to mount and format the disks from within a VM to use them.
1184
+ """
1185
+ disk_size_gb: pulumi.Input[int]
1186
+ lun: pulumi.Input[int]
1187
+ """
1188
+ The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive.
1189
+ """
1190
+ caching: NotRequired[pulumi.Input['CachingType']]
1191
+ """
1192
+ Values are:
1193
+
1194
+ none - The caching mode for the disk is not enabled.
1195
+ readOnly - The caching mode for the disk is read only.
1196
+ readWrite - The caching mode for the disk is read and write.
1197
+
1198
+ The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/.
1199
+ """
1200
+ storage_account_type: NotRequired[pulumi.Input['StorageAccountType']]
1201
+ """
1202
+ If omitted, the default is "Standard_LRS". Values are:
1203
+
1204
+ Standard_LRS - The data disk should use standard locally redundant storage.
1205
+ Premium_LRS - The data disk should use premium locally redundant storage.
1206
+ """
1207
+ elif False:
1208
+ DataDiskArgsDict: TypeAlias = Mapping[str, Any]
1209
+
1210
+ @pulumi.input_type
1211
+ class DataDiskArgs:
1212
+ def __init__(__self__, *,
1213
+ disk_size_gb: pulumi.Input[int],
1214
+ lun: pulumi.Input[int],
1215
+ caching: Optional[pulumi.Input['CachingType']] = None,
1216
+ storage_account_type: Optional[pulumi.Input['StorageAccountType']] = None):
1217
+ """
1218
+ Settings which will be used by the data disks associated to Compute Nodes in the Pool. When using attached data disks, you need to mount and format the disks from within a VM to use them.
1219
+ :param pulumi.Input[int] lun: The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive.
1220
+ :param pulumi.Input['CachingType'] caching: Values are:
1221
+
1222
+ none - The caching mode for the disk is not enabled.
1223
+ readOnly - The caching mode for the disk is read only.
1224
+ readWrite - The caching mode for the disk is read and write.
1225
+
1226
+ The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/.
1227
+ :param pulumi.Input['StorageAccountType'] storage_account_type: If omitted, the default is "Standard_LRS". Values are:
1228
+
1229
+ Standard_LRS - The data disk should use standard locally redundant storage.
1230
+ Premium_LRS - The data disk should use premium locally redundant storage.
1231
+ """
1232
+ pulumi.set(__self__, "disk_size_gb", disk_size_gb)
1233
+ pulumi.set(__self__, "lun", lun)
1234
+ if caching is not None:
1235
+ pulumi.set(__self__, "caching", caching)
1236
+ if storage_account_type is not None:
1237
+ pulumi.set(__self__, "storage_account_type", storage_account_type)
1238
+
1239
+ @property
1240
+ @pulumi.getter(name="diskSizeGB")
1241
+ def disk_size_gb(self) -> pulumi.Input[int]:
1242
+ return pulumi.get(self, "disk_size_gb")
1243
+
1244
+ @disk_size_gb.setter
1245
+ def disk_size_gb(self, value: pulumi.Input[int]):
1246
+ pulumi.set(self, "disk_size_gb", value)
1247
+
1248
+ @property
1249
+ @pulumi.getter
1250
+ def lun(self) -> pulumi.Input[int]:
1251
+ """
1252
+ The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive.
1253
+ """
1254
+ return pulumi.get(self, "lun")
1255
+
1256
+ @lun.setter
1257
+ def lun(self, value: pulumi.Input[int]):
1258
+ pulumi.set(self, "lun", value)
1259
+
1260
+ @property
1261
+ @pulumi.getter
1262
+ def caching(self) -> Optional[pulumi.Input['CachingType']]:
1263
+ """
1264
+ Values are:
1265
+
1266
+ none - The caching mode for the disk is not enabled.
1267
+ readOnly - The caching mode for the disk is read only.
1268
+ readWrite - The caching mode for the disk is read and write.
1269
+
1270
+ The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/.
1271
+ """
1272
+ return pulumi.get(self, "caching")
1273
+
1274
+ @caching.setter
1275
+ def caching(self, value: Optional[pulumi.Input['CachingType']]):
1276
+ pulumi.set(self, "caching", value)
1277
+
1278
+ @property
1279
+ @pulumi.getter(name="storageAccountType")
1280
+ def storage_account_type(self) -> Optional[pulumi.Input['StorageAccountType']]:
1281
+ """
1282
+ If omitted, the default is "Standard_LRS". Values are:
1283
+
1284
+ Standard_LRS - The data disk should use standard locally redundant storage.
1285
+ Premium_LRS - The data disk should use premium locally redundant storage.
1286
+ """
1287
+ return pulumi.get(self, "storage_account_type")
1288
+
1289
+ @storage_account_type.setter
1290
+ def storage_account_type(self, value: Optional[pulumi.Input['StorageAccountType']]):
1291
+ pulumi.set(self, "storage_account_type", value)
1292
+
1293
+
1294
+ if not MYPY:
1295
+ class DeploymentConfigurationArgsDict(TypedDict):
1296
+ virtual_machine_configuration: NotRequired[pulumi.Input['VirtualMachineConfigurationArgsDict']]
1297
+ elif False:
1298
+ DeploymentConfigurationArgsDict: TypeAlias = Mapping[str, Any]
1299
+
1300
+ @pulumi.input_type
1301
+ class DeploymentConfigurationArgs:
1302
+ def __init__(__self__, *,
1303
+ virtual_machine_configuration: Optional[pulumi.Input['VirtualMachineConfigurationArgs']] = None):
1304
+ if virtual_machine_configuration is not None:
1305
+ pulumi.set(__self__, "virtual_machine_configuration", virtual_machine_configuration)
1306
+
1307
+ @property
1308
+ @pulumi.getter(name="virtualMachineConfiguration")
1309
+ def virtual_machine_configuration(self) -> Optional[pulumi.Input['VirtualMachineConfigurationArgs']]:
1310
+ return pulumi.get(self, "virtual_machine_configuration")
1311
+
1312
+ @virtual_machine_configuration.setter
1313
+ def virtual_machine_configuration(self, value: Optional[pulumi.Input['VirtualMachineConfigurationArgs']]):
1314
+ pulumi.set(self, "virtual_machine_configuration", value)
1315
+
1316
+
1317
+ if not MYPY:
1318
+ class DiffDiskSettingsArgsDict(TypedDict):
1319
+ placement: NotRequired[pulumi.Input['DiffDiskPlacement']]
1320
+ """
1321
+ This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements.
1322
+ """
1323
+ elif False:
1324
+ DiffDiskSettingsArgsDict: TypeAlias = Mapping[str, Any]
1325
+
1326
+ @pulumi.input_type
1327
+ class DiffDiskSettingsArgs:
1328
+ def __init__(__self__, *,
1329
+ placement: Optional[pulumi.Input['DiffDiskPlacement']] = None):
1330
+ """
1331
+ :param pulumi.Input['DiffDiskPlacement'] placement: This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements.
1332
+ """
1333
+ if placement is not None:
1334
+ pulumi.set(__self__, "placement", placement)
1335
+
1336
+ @property
1337
+ @pulumi.getter
1338
+ def placement(self) -> Optional[pulumi.Input['DiffDiskPlacement']]:
1339
+ """
1340
+ This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements.
1341
+ """
1342
+ return pulumi.get(self, "placement")
1343
+
1344
+ @placement.setter
1345
+ def placement(self, value: Optional[pulumi.Input['DiffDiskPlacement']]):
1346
+ pulumi.set(self, "placement", value)
1347
+
1348
+
1349
+ if not MYPY:
1350
+ class DiskEncryptionConfigurationArgsDict(TypedDict):
1351
+ """
1352
+ The disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Azure Compute Gallery Image.
1353
+ """
1354
+ targets: NotRequired[pulumi.Input[Sequence[pulumi.Input['DiskEncryptionTarget']]]]
1355
+ """
1356
+ On Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and "TemporaryDisk" must be specified.
1357
+ """
1358
+ elif False:
1359
+ DiskEncryptionConfigurationArgsDict: TypeAlias = Mapping[str, Any]
1360
+
1361
+ @pulumi.input_type
1362
+ class DiskEncryptionConfigurationArgs:
1363
+ def __init__(__self__, *,
1364
+ targets: Optional[pulumi.Input[Sequence[pulumi.Input['DiskEncryptionTarget']]]] = None):
1365
+ """
1366
+ The disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Azure Compute Gallery Image.
1367
+ :param pulumi.Input[Sequence[pulumi.Input['DiskEncryptionTarget']]] targets: On Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and "TemporaryDisk" must be specified.
1368
+ """
1369
+ if targets is not None:
1370
+ pulumi.set(__self__, "targets", targets)
1371
+
1372
+ @property
1373
+ @pulumi.getter
1374
+ def targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DiskEncryptionTarget']]]]:
1375
+ """
1376
+ On Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and "TemporaryDisk" must be specified.
1377
+ """
1378
+ return pulumi.get(self, "targets")
1379
+
1380
+ @targets.setter
1381
+ def targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DiskEncryptionTarget']]]]):
1382
+ pulumi.set(self, "targets", value)
1383
+
1384
+
1385
+ if not MYPY:
1386
+ class EncryptionPropertiesArgsDict(TypedDict):
1387
+ """
1388
+ Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.
1389
+ """
1390
+ key_source: NotRequired[pulumi.Input['KeySource']]
1391
+ """
1392
+ Type of the key source.
1393
+ """
1394
+ key_vault_properties: NotRequired[pulumi.Input['KeyVaultPropertiesArgsDict']]
1395
+ """
1396
+ Additional details when using Microsoft.KeyVault
1397
+ """
1398
+ elif False:
1399
+ EncryptionPropertiesArgsDict: TypeAlias = Mapping[str, Any]
1400
+
1401
+ @pulumi.input_type
1402
+ class EncryptionPropertiesArgs:
1403
+ def __init__(__self__, *,
1404
+ key_source: Optional[pulumi.Input['KeySource']] = None,
1405
+ key_vault_properties: Optional[pulumi.Input['KeyVaultPropertiesArgs']] = None):
1406
+ """
1407
+ Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.
1408
+ :param pulumi.Input['KeySource'] key_source: Type of the key source.
1409
+ :param pulumi.Input['KeyVaultPropertiesArgs'] key_vault_properties: Additional details when using Microsoft.KeyVault
1410
+ """
1411
+ if key_source is not None:
1412
+ pulumi.set(__self__, "key_source", key_source)
1413
+ if key_vault_properties is not None:
1414
+ pulumi.set(__self__, "key_vault_properties", key_vault_properties)
1415
+
1416
+ @property
1417
+ @pulumi.getter(name="keySource")
1418
+ def key_source(self) -> Optional[pulumi.Input['KeySource']]:
1419
+ """
1420
+ Type of the key source.
1421
+ """
1422
+ return pulumi.get(self, "key_source")
1423
+
1424
+ @key_source.setter
1425
+ def key_source(self, value: Optional[pulumi.Input['KeySource']]):
1426
+ pulumi.set(self, "key_source", value)
1427
+
1428
+ @property
1429
+ @pulumi.getter(name="keyVaultProperties")
1430
+ def key_vault_properties(self) -> Optional[pulumi.Input['KeyVaultPropertiesArgs']]:
1431
+ """
1432
+ Additional details when using Microsoft.KeyVault
1433
+ """
1434
+ return pulumi.get(self, "key_vault_properties")
1435
+
1436
+ @key_vault_properties.setter
1437
+ def key_vault_properties(self, value: Optional[pulumi.Input['KeyVaultPropertiesArgs']]):
1438
+ pulumi.set(self, "key_vault_properties", value)
1439
+
1440
+
1441
+ if not MYPY:
1442
+ class EndpointAccessProfileArgsDict(TypedDict):
1443
+ """
1444
+ Network access profile for Batch endpoint.
1445
+ """
1446
+ default_action: pulumi.Input['EndpointAccessDefaultAction']
1447
+ """
1448
+ Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled.
1449
+ """
1450
+ ip_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['IPRuleArgsDict']]]]
1451
+ """
1452
+ Array of IP ranges to filter client IP address.
1453
+ """
1454
+ elif False:
1455
+ EndpointAccessProfileArgsDict: TypeAlias = Mapping[str, Any]
1456
+
1457
+ @pulumi.input_type
1458
+ class EndpointAccessProfileArgs:
1459
+ def __init__(__self__, *,
1460
+ default_action: pulumi.Input['EndpointAccessDefaultAction'],
1461
+ ip_rules: Optional[pulumi.Input[Sequence[pulumi.Input['IPRuleArgs']]]] = None):
1462
+ """
1463
+ Network access profile for Batch endpoint.
1464
+ :param pulumi.Input['EndpointAccessDefaultAction'] default_action: Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled.
1465
+ :param pulumi.Input[Sequence[pulumi.Input['IPRuleArgs']]] ip_rules: Array of IP ranges to filter client IP address.
1466
+ """
1467
+ pulumi.set(__self__, "default_action", default_action)
1468
+ if ip_rules is not None:
1469
+ pulumi.set(__self__, "ip_rules", ip_rules)
1470
+
1471
+ @property
1472
+ @pulumi.getter(name="defaultAction")
1473
+ def default_action(self) -> pulumi.Input['EndpointAccessDefaultAction']:
1474
+ """
1475
+ Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled.
1476
+ """
1477
+ return pulumi.get(self, "default_action")
1478
+
1479
+ @default_action.setter
1480
+ def default_action(self, value: pulumi.Input['EndpointAccessDefaultAction']):
1481
+ pulumi.set(self, "default_action", value)
1482
+
1483
+ @property
1484
+ @pulumi.getter(name="ipRules")
1485
+ def ip_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['IPRuleArgs']]]]:
1486
+ """
1487
+ Array of IP ranges to filter client IP address.
1488
+ """
1489
+ return pulumi.get(self, "ip_rules")
1490
+
1491
+ @ip_rules.setter
1492
+ def ip_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['IPRuleArgs']]]]):
1493
+ pulumi.set(self, "ip_rules", value)
1494
+
1495
+
1496
+ if not MYPY:
1497
+ class EnvironmentSettingArgsDict(TypedDict):
1498
+ name: pulumi.Input[str]
1499
+ value: NotRequired[pulumi.Input[str]]
1500
+ elif False:
1501
+ EnvironmentSettingArgsDict: TypeAlias = Mapping[str, Any]
1502
+
1503
+ @pulumi.input_type
1504
+ class EnvironmentSettingArgs:
1505
+ def __init__(__self__, *,
1506
+ name: pulumi.Input[str],
1507
+ value: Optional[pulumi.Input[str]] = None):
1508
+ pulumi.set(__self__, "name", name)
1509
+ if value is not None:
1510
+ pulumi.set(__self__, "value", value)
1511
+
1512
+ @property
1513
+ @pulumi.getter
1514
+ def name(self) -> pulumi.Input[str]:
1515
+ return pulumi.get(self, "name")
1516
+
1517
+ @name.setter
1518
+ def name(self, value: pulumi.Input[str]):
1519
+ pulumi.set(self, "name", value)
1520
+
1521
+ @property
1522
+ @pulumi.getter
1523
+ def value(self) -> Optional[pulumi.Input[str]]:
1524
+ return pulumi.get(self, "value")
1525
+
1526
+ @value.setter
1527
+ def value(self, value: Optional[pulumi.Input[str]]):
1528
+ pulumi.set(self, "value", value)
1529
+
1530
+
1531
+ if not MYPY:
1532
+ class FixedScaleSettingsArgsDict(TypedDict):
1533
+ node_deallocation_option: NotRequired[pulumi.Input['ComputeNodeDeallocationOption']]
1534
+ """
1535
+ If omitted, the default value is Requeue.
1536
+ """
1537
+ resize_timeout: NotRequired[pulumi.Input[str]]
1538
+ """
1539
+ The default value is 15 minutes. Timeout values use ISO 8601 format. For example, use PT10M for 10 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).
1540
+ """
1541
+ target_dedicated_nodes: NotRequired[pulumi.Input[int]]
1542
+ """
1543
+ At least one of targetDedicatedNodes, targetLowPriorityNodes must be set.
1544
+ """
1545
+ target_low_priority_nodes: NotRequired[pulumi.Input[int]]
1546
+ """
1547
+ At least one of targetDedicatedNodes, targetLowPriorityNodes must be set.
1548
+ """
1549
+ elif False:
1550
+ FixedScaleSettingsArgsDict: TypeAlias = Mapping[str, Any]
1551
+
1552
+ @pulumi.input_type
1553
+ class FixedScaleSettingsArgs:
1554
+ def __init__(__self__, *,
1555
+ node_deallocation_option: Optional[pulumi.Input['ComputeNodeDeallocationOption']] = None,
1556
+ resize_timeout: Optional[pulumi.Input[str]] = None,
1557
+ target_dedicated_nodes: Optional[pulumi.Input[int]] = None,
1558
+ target_low_priority_nodes: Optional[pulumi.Input[int]] = None):
1559
+ """
1560
+ :param pulumi.Input['ComputeNodeDeallocationOption'] node_deallocation_option: If omitted, the default value is Requeue.
1561
+ :param pulumi.Input[str] resize_timeout: The default value is 15 minutes. Timeout values use ISO 8601 format. For example, use PT10M for 10 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).
1562
+ :param pulumi.Input[int] target_dedicated_nodes: At least one of targetDedicatedNodes, targetLowPriorityNodes must be set.
1563
+ :param pulumi.Input[int] target_low_priority_nodes: At least one of targetDedicatedNodes, targetLowPriorityNodes must be set.
1564
+ """
1565
+ if node_deallocation_option is not None:
1566
+ pulumi.set(__self__, "node_deallocation_option", node_deallocation_option)
1567
+ if resize_timeout is None:
1568
+ resize_timeout = 'PT15M'
1569
+ if resize_timeout is not None:
1570
+ pulumi.set(__self__, "resize_timeout", resize_timeout)
1571
+ if target_dedicated_nodes is not None:
1572
+ pulumi.set(__self__, "target_dedicated_nodes", target_dedicated_nodes)
1573
+ if target_low_priority_nodes is not None:
1574
+ pulumi.set(__self__, "target_low_priority_nodes", target_low_priority_nodes)
1575
+
1576
+ @property
1577
+ @pulumi.getter(name="nodeDeallocationOption")
1578
+ def node_deallocation_option(self) -> Optional[pulumi.Input['ComputeNodeDeallocationOption']]:
1579
+ """
1580
+ If omitted, the default value is Requeue.
1581
+ """
1582
+ return pulumi.get(self, "node_deallocation_option")
1583
+
1584
+ @node_deallocation_option.setter
1585
+ def node_deallocation_option(self, value: Optional[pulumi.Input['ComputeNodeDeallocationOption']]):
1586
+ pulumi.set(self, "node_deallocation_option", value)
1587
+
1588
+ @property
1589
+ @pulumi.getter(name="resizeTimeout")
1590
+ def resize_timeout(self) -> Optional[pulumi.Input[str]]:
1591
+ """
1592
+ The default value is 15 minutes. Timeout values use ISO 8601 format. For example, use PT10M for 10 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).
1593
+ """
1594
+ return pulumi.get(self, "resize_timeout")
1595
+
1596
+ @resize_timeout.setter
1597
+ def resize_timeout(self, value: Optional[pulumi.Input[str]]):
1598
+ pulumi.set(self, "resize_timeout", value)
1599
+
1600
+ @property
1601
+ @pulumi.getter(name="targetDedicatedNodes")
1602
+ def target_dedicated_nodes(self) -> Optional[pulumi.Input[int]]:
1603
+ """
1604
+ At least one of targetDedicatedNodes, targetLowPriorityNodes must be set.
1605
+ """
1606
+ return pulumi.get(self, "target_dedicated_nodes")
1607
+
1608
+ @target_dedicated_nodes.setter
1609
+ def target_dedicated_nodes(self, value: Optional[pulumi.Input[int]]):
1610
+ pulumi.set(self, "target_dedicated_nodes", value)
1611
+
1612
+ @property
1613
+ @pulumi.getter(name="targetLowPriorityNodes")
1614
+ def target_low_priority_nodes(self) -> Optional[pulumi.Input[int]]:
1615
+ """
1616
+ At least one of targetDedicatedNodes, targetLowPriorityNodes must be set.
1617
+ """
1618
+ return pulumi.get(self, "target_low_priority_nodes")
1619
+
1620
+ @target_low_priority_nodes.setter
1621
+ def target_low_priority_nodes(self, value: Optional[pulumi.Input[int]]):
1622
+ pulumi.set(self, "target_low_priority_nodes", value)
1623
+
1624
+
1625
+ if not MYPY:
1626
+ class IPRuleArgsDict(TypedDict):
1627
+ """
1628
+ Rule to filter client IP address.
1629
+ """
1630
+ action: pulumi.Input['IPRuleAction']
1631
+ """
1632
+ Action when client IP address is matched.
1633
+ """
1634
+ value: pulumi.Input[str]
1635
+ """
1636
+ IPv4 address, or IPv4 address range in CIDR format.
1637
+ """
1638
+ elif False:
1639
+ IPRuleArgsDict: TypeAlias = Mapping[str, Any]
1640
+
1641
+ @pulumi.input_type
1642
+ class IPRuleArgs:
1643
+ def __init__(__self__, *,
1644
+ action: pulumi.Input['IPRuleAction'],
1645
+ value: pulumi.Input[str]):
1646
+ """
1647
+ Rule to filter client IP address.
1648
+ :param pulumi.Input['IPRuleAction'] action: Action when client IP address is matched.
1649
+ :param pulumi.Input[str] value: IPv4 address, or IPv4 address range in CIDR format.
1650
+ """
1651
+ pulumi.set(__self__, "action", action)
1652
+ pulumi.set(__self__, "value", value)
1653
+
1654
+ @property
1655
+ @pulumi.getter
1656
+ def action(self) -> pulumi.Input['IPRuleAction']:
1657
+ """
1658
+ Action when client IP address is matched.
1659
+ """
1660
+ return pulumi.get(self, "action")
1661
+
1662
+ @action.setter
1663
+ def action(self, value: pulumi.Input['IPRuleAction']):
1664
+ pulumi.set(self, "action", value)
1665
+
1666
+ @property
1667
+ @pulumi.getter
1668
+ def value(self) -> pulumi.Input[str]:
1669
+ """
1670
+ IPv4 address, or IPv4 address range in CIDR format.
1671
+ """
1672
+ return pulumi.get(self, "value")
1673
+
1674
+ @value.setter
1675
+ def value(self, value: pulumi.Input[str]):
1676
+ pulumi.set(self, "value", value)
1677
+
1678
+
1679
+ if not MYPY:
1680
+ class ImageReferenceArgsDict(TypedDict):
1681
+ community_gallery_image_id: NotRequired[pulumi.Input[str]]
1682
+ """
1683
+ This property is mutually exclusive with other properties and can be fetched from community gallery image GET call.
1684
+ """
1685
+ id: NotRequired[pulumi.Input[str]]
1686
+ """
1687
+ This property is mutually exclusive with other properties. The Azure Compute Gallery Image must have replicas in the same region as the Azure Batch account. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration.
1688
+ """
1689
+ offer: NotRequired[pulumi.Input[str]]
1690
+ """
1691
+ For example, UbuntuServer or WindowsServer.
1692
+ """
1693
+ publisher: NotRequired[pulumi.Input[str]]
1694
+ """
1695
+ For example, Canonical or MicrosoftWindowsServer.
1696
+ """
1697
+ shared_gallery_image_id: NotRequired[pulumi.Input[str]]
1698
+ """
1699
+ This property is mutually exclusive with other properties and can be fetched from shared gallery image GET call.
1700
+ """
1701
+ sku: NotRequired[pulumi.Input[str]]
1702
+ """
1703
+ For example, 18.04-LTS or 2022-datacenter.
1704
+ """
1705
+ version: NotRequired[pulumi.Input[str]]
1706
+ """
1707
+ A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'.
1708
+ """
1709
+ elif False:
1710
+ ImageReferenceArgsDict: TypeAlias = Mapping[str, Any]
1711
+
1712
+ @pulumi.input_type
1713
+ class ImageReferenceArgs:
1714
+ def __init__(__self__, *,
1715
+ community_gallery_image_id: Optional[pulumi.Input[str]] = None,
1716
+ id: Optional[pulumi.Input[str]] = None,
1717
+ offer: Optional[pulumi.Input[str]] = None,
1718
+ publisher: Optional[pulumi.Input[str]] = None,
1719
+ shared_gallery_image_id: Optional[pulumi.Input[str]] = None,
1720
+ sku: Optional[pulumi.Input[str]] = None,
1721
+ version: Optional[pulumi.Input[str]] = None):
1722
+ """
1723
+ :param pulumi.Input[str] community_gallery_image_id: This property is mutually exclusive with other properties and can be fetched from community gallery image GET call.
1724
+ :param pulumi.Input[str] id: This property is mutually exclusive with other properties. The Azure Compute Gallery Image must have replicas in the same region as the Azure Batch account. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration.
1725
+ :param pulumi.Input[str] offer: For example, UbuntuServer or WindowsServer.
1726
+ :param pulumi.Input[str] publisher: For example, Canonical or MicrosoftWindowsServer.
1727
+ :param pulumi.Input[str] shared_gallery_image_id: This property is mutually exclusive with other properties and can be fetched from shared gallery image GET call.
1728
+ :param pulumi.Input[str] sku: For example, 18.04-LTS or 2022-datacenter.
1729
+ :param pulumi.Input[str] version: A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'.
1730
+ """
1731
+ if community_gallery_image_id is not None:
1732
+ pulumi.set(__self__, "community_gallery_image_id", community_gallery_image_id)
1733
+ if id is not None:
1734
+ pulumi.set(__self__, "id", id)
1735
+ if offer is not None:
1736
+ pulumi.set(__self__, "offer", offer)
1737
+ if publisher is not None:
1738
+ pulumi.set(__self__, "publisher", publisher)
1739
+ if shared_gallery_image_id is not None:
1740
+ pulumi.set(__self__, "shared_gallery_image_id", shared_gallery_image_id)
1741
+ if sku is not None:
1742
+ pulumi.set(__self__, "sku", sku)
1743
+ if version is not None:
1744
+ pulumi.set(__self__, "version", version)
1745
+
1746
+ @property
1747
+ @pulumi.getter(name="communityGalleryImageId")
1748
+ def community_gallery_image_id(self) -> Optional[pulumi.Input[str]]:
1749
+ """
1750
+ This property is mutually exclusive with other properties and can be fetched from community gallery image GET call.
1751
+ """
1752
+ return pulumi.get(self, "community_gallery_image_id")
1753
+
1754
+ @community_gallery_image_id.setter
1755
+ def community_gallery_image_id(self, value: Optional[pulumi.Input[str]]):
1756
+ pulumi.set(self, "community_gallery_image_id", value)
1757
+
1758
+ @property
1759
+ @pulumi.getter
1760
+ def id(self) -> Optional[pulumi.Input[str]]:
1761
+ """
1762
+ This property is mutually exclusive with other properties. The Azure Compute Gallery Image must have replicas in the same region as the Azure Batch account. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration.
1763
+ """
1764
+ return pulumi.get(self, "id")
1765
+
1766
+ @id.setter
1767
+ def id(self, value: Optional[pulumi.Input[str]]):
1768
+ pulumi.set(self, "id", value)
1769
+
1770
+ @property
1771
+ @pulumi.getter
1772
+ def offer(self) -> Optional[pulumi.Input[str]]:
1773
+ """
1774
+ For example, UbuntuServer or WindowsServer.
1775
+ """
1776
+ return pulumi.get(self, "offer")
1777
+
1778
+ @offer.setter
1779
+ def offer(self, value: Optional[pulumi.Input[str]]):
1780
+ pulumi.set(self, "offer", value)
1781
+
1782
+ @property
1783
+ @pulumi.getter
1784
+ def publisher(self) -> Optional[pulumi.Input[str]]:
1785
+ """
1786
+ For example, Canonical or MicrosoftWindowsServer.
1787
+ """
1788
+ return pulumi.get(self, "publisher")
1789
+
1790
+ @publisher.setter
1791
+ def publisher(self, value: Optional[pulumi.Input[str]]):
1792
+ pulumi.set(self, "publisher", value)
1793
+
1794
+ @property
1795
+ @pulumi.getter(name="sharedGalleryImageId")
1796
+ def shared_gallery_image_id(self) -> Optional[pulumi.Input[str]]:
1797
+ """
1798
+ This property is mutually exclusive with other properties and can be fetched from shared gallery image GET call.
1799
+ """
1800
+ return pulumi.get(self, "shared_gallery_image_id")
1801
+
1802
+ @shared_gallery_image_id.setter
1803
+ def shared_gallery_image_id(self, value: Optional[pulumi.Input[str]]):
1804
+ pulumi.set(self, "shared_gallery_image_id", value)
1805
+
1806
+ @property
1807
+ @pulumi.getter
1808
+ def sku(self) -> Optional[pulumi.Input[str]]:
1809
+ """
1810
+ For example, 18.04-LTS or 2022-datacenter.
1811
+ """
1812
+ return pulumi.get(self, "sku")
1813
+
1814
+ @sku.setter
1815
+ def sku(self, value: Optional[pulumi.Input[str]]):
1816
+ pulumi.set(self, "sku", value)
1817
+
1818
+ @property
1819
+ @pulumi.getter
1820
+ def version(self) -> Optional[pulumi.Input[str]]:
1821
+ """
1822
+ A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'.
1823
+ """
1824
+ return pulumi.get(self, "version")
1825
+
1826
+ @version.setter
1827
+ def version(self, value: Optional[pulumi.Input[str]]):
1828
+ pulumi.set(self, "version", value)
1829
+
1830
+
1831
+ if not MYPY:
1832
+ class InboundNatPoolArgsDict(TypedDict):
1833
+ backend_port: pulumi.Input[int]
1834
+ """
1835
+ This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400.
1836
+ """
1837
+ frontend_port_range_end: pulumi.Input[int]
1838
+ """
1839
+ Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400.
1840
+ """
1841
+ frontend_port_range_start: pulumi.Input[int]
1842
+ """
1843
+ Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400.
1844
+ """
1845
+ name: pulumi.Input[str]
1846
+ """
1847
+ The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400.
1848
+ """
1849
+ protocol: pulumi.Input['InboundEndpointProtocol']
1850
+ network_security_group_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkSecurityGroupRuleArgsDict']]]]
1851
+ """
1852
+ The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.
1853
+ """
1854
+ elif False:
1855
+ InboundNatPoolArgsDict: TypeAlias = Mapping[str, Any]
1856
+
1857
+ @pulumi.input_type
1858
+ class InboundNatPoolArgs:
1859
+ def __init__(__self__, *,
1860
+ backend_port: pulumi.Input[int],
1861
+ frontend_port_range_end: pulumi.Input[int],
1862
+ frontend_port_range_start: pulumi.Input[int],
1863
+ name: pulumi.Input[str],
1864
+ protocol: pulumi.Input['InboundEndpointProtocol'],
1865
+ network_security_group_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkSecurityGroupRuleArgs']]]] = None):
1866
+ """
1867
+ :param pulumi.Input[int] backend_port: This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400.
1868
+ :param pulumi.Input[int] frontend_port_range_end: Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400.
1869
+ :param pulumi.Input[int] frontend_port_range_start: Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400.
1870
+ :param pulumi.Input[str] name: The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400.
1871
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkSecurityGroupRuleArgs']]] network_security_group_rules: The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.
1872
+ """
1873
+ pulumi.set(__self__, "backend_port", backend_port)
1874
+ pulumi.set(__self__, "frontend_port_range_end", frontend_port_range_end)
1875
+ pulumi.set(__self__, "frontend_port_range_start", frontend_port_range_start)
1876
+ pulumi.set(__self__, "name", name)
1877
+ pulumi.set(__self__, "protocol", protocol)
1878
+ if network_security_group_rules is not None:
1879
+ pulumi.set(__self__, "network_security_group_rules", network_security_group_rules)
1880
+
1881
+ @property
1882
+ @pulumi.getter(name="backendPort")
1883
+ def backend_port(self) -> pulumi.Input[int]:
1884
+ """
1885
+ This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400.
1886
+ """
1887
+ return pulumi.get(self, "backend_port")
1888
+
1889
+ @backend_port.setter
1890
+ def backend_port(self, value: pulumi.Input[int]):
1891
+ pulumi.set(self, "backend_port", value)
1892
+
1893
+ @property
1894
+ @pulumi.getter(name="frontendPortRangeEnd")
1895
+ def frontend_port_range_end(self) -> pulumi.Input[int]:
1896
+ """
1897
+ Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400.
1898
+ """
1899
+ return pulumi.get(self, "frontend_port_range_end")
1900
+
1901
+ @frontend_port_range_end.setter
1902
+ def frontend_port_range_end(self, value: pulumi.Input[int]):
1903
+ pulumi.set(self, "frontend_port_range_end", value)
1904
+
1905
+ @property
1906
+ @pulumi.getter(name="frontendPortRangeStart")
1907
+ def frontend_port_range_start(self) -> pulumi.Input[int]:
1908
+ """
1909
+ Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400.
1910
+ """
1911
+ return pulumi.get(self, "frontend_port_range_start")
1912
+
1913
+ @frontend_port_range_start.setter
1914
+ def frontend_port_range_start(self, value: pulumi.Input[int]):
1915
+ pulumi.set(self, "frontend_port_range_start", value)
1916
+
1917
+ @property
1918
+ @pulumi.getter
1919
+ def name(self) -> pulumi.Input[str]:
1920
+ """
1921
+ The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400.
1922
+ """
1923
+ return pulumi.get(self, "name")
1924
+
1925
+ @name.setter
1926
+ def name(self, value: pulumi.Input[str]):
1927
+ pulumi.set(self, "name", value)
1928
+
1929
+ @property
1930
+ @pulumi.getter
1931
+ def protocol(self) -> pulumi.Input['InboundEndpointProtocol']:
1932
+ return pulumi.get(self, "protocol")
1933
+
1934
+ @protocol.setter
1935
+ def protocol(self, value: pulumi.Input['InboundEndpointProtocol']):
1936
+ pulumi.set(self, "protocol", value)
1937
+
1938
+ @property
1939
+ @pulumi.getter(name="networkSecurityGroupRules")
1940
+ def network_security_group_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkSecurityGroupRuleArgs']]]]:
1941
+ """
1942
+ The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.
1943
+ """
1944
+ return pulumi.get(self, "network_security_group_rules")
1945
+
1946
+ @network_security_group_rules.setter
1947
+ def network_security_group_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkSecurityGroupRuleArgs']]]]):
1948
+ pulumi.set(self, "network_security_group_rules", value)
1949
+
1950
+
1951
+ if not MYPY:
1952
+ class KeyVaultPropertiesArgsDict(TypedDict):
1953
+ """
1954
+ KeyVault configuration when using an encryption KeySource of Microsoft.KeyVault.
1955
+ """
1956
+ key_identifier: NotRequired[pulumi.Input[str]]
1957
+ """
1958
+ Full path to the secret with or without version. Example https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the following prerequisites must be met:
1959
+
1960
+ The Batch Account has a System Assigned identity
1961
+ The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap permissions
1962
+ The KeyVault has soft-delete and purge protection enabled
1963
+ """
1964
+ elif False:
1965
+ KeyVaultPropertiesArgsDict: TypeAlias = Mapping[str, Any]
1966
+
1967
+ @pulumi.input_type
1968
+ class KeyVaultPropertiesArgs:
1969
+ def __init__(__self__, *,
1970
+ key_identifier: Optional[pulumi.Input[str]] = None):
1971
+ """
1972
+ KeyVault configuration when using an encryption KeySource of Microsoft.KeyVault.
1973
+ :param pulumi.Input[str] key_identifier: Full path to the secret with or without version. Example https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the following prerequisites must be met:
1974
+
1975
+ The Batch Account has a System Assigned identity
1976
+ The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap permissions
1977
+ The KeyVault has soft-delete and purge protection enabled
1978
+ """
1979
+ if key_identifier is not None:
1980
+ pulumi.set(__self__, "key_identifier", key_identifier)
1981
+
1982
+ @property
1983
+ @pulumi.getter(name="keyIdentifier")
1984
+ def key_identifier(self) -> Optional[pulumi.Input[str]]:
1985
+ """
1986
+ Full path to the secret with or without version. Example https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the following prerequisites must be met:
1987
+
1988
+ The Batch Account has a System Assigned identity
1989
+ The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap permissions
1990
+ The KeyVault has soft-delete and purge protection enabled
1991
+ """
1992
+ return pulumi.get(self, "key_identifier")
1993
+
1994
+ @key_identifier.setter
1995
+ def key_identifier(self, value: Optional[pulumi.Input[str]]):
1996
+ pulumi.set(self, "key_identifier", value)
1997
+
1998
+
1999
+ if not MYPY:
2000
+ class KeyVaultReferenceArgsDict(TypedDict):
2001
+ """
2002
+ Identifies the Azure key vault associated with a Batch account.
2003
+ """
2004
+ id: pulumi.Input[str]
2005
+ """
2006
+ The resource ID of the Azure key vault associated with the Batch account.
2007
+ """
2008
+ url: pulumi.Input[str]
2009
+ """
2010
+ The URL of the Azure key vault associated with the Batch account.
2011
+ """
2012
+ elif False:
2013
+ KeyVaultReferenceArgsDict: TypeAlias = Mapping[str, Any]
2014
+
2015
+ @pulumi.input_type
2016
+ class KeyVaultReferenceArgs:
2017
+ def __init__(__self__, *,
2018
+ id: pulumi.Input[str],
2019
+ url: pulumi.Input[str]):
2020
+ """
2021
+ Identifies the Azure key vault associated with a Batch account.
2022
+ :param pulumi.Input[str] id: The resource ID of the Azure key vault associated with the Batch account.
2023
+ :param pulumi.Input[str] url: The URL of the Azure key vault associated with the Batch account.
2024
+ """
2025
+ pulumi.set(__self__, "id", id)
2026
+ pulumi.set(__self__, "url", url)
2027
+
2028
+ @property
2029
+ @pulumi.getter
2030
+ def id(self) -> pulumi.Input[str]:
2031
+ """
2032
+ The resource ID of the Azure key vault associated with the Batch account.
2033
+ """
2034
+ return pulumi.get(self, "id")
2035
+
2036
+ @id.setter
2037
+ def id(self, value: pulumi.Input[str]):
2038
+ pulumi.set(self, "id", value)
2039
+
2040
+ @property
2041
+ @pulumi.getter
2042
+ def url(self) -> pulumi.Input[str]:
2043
+ """
2044
+ The URL of the Azure key vault associated with the Batch account.
2045
+ """
2046
+ return pulumi.get(self, "url")
2047
+
2048
+ @url.setter
2049
+ def url(self, value: pulumi.Input[str]):
2050
+ pulumi.set(self, "url", value)
2051
+
2052
+
2053
+ if not MYPY:
2054
+ class LinuxUserConfigurationArgsDict(TypedDict):
2055
+ gid: NotRequired[pulumi.Input[int]]
2056
+ """
2057
+ The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the gid.
2058
+ """
2059
+ ssh_private_key: NotRequired[pulumi.Input[str]]
2060
+ """
2061
+ The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between nodes in a Linux pool when the pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between nodes (no modification of the user's .ssh directory is done).
2062
+ """
2063
+ uid: NotRequired[pulumi.Input[int]]
2064
+ """
2065
+ The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the uid.
2066
+ """
2067
+ elif False:
2068
+ LinuxUserConfigurationArgsDict: TypeAlias = Mapping[str, Any]
2069
+
2070
+ @pulumi.input_type
2071
+ class LinuxUserConfigurationArgs:
2072
+ def __init__(__self__, *,
2073
+ gid: Optional[pulumi.Input[int]] = None,
2074
+ ssh_private_key: Optional[pulumi.Input[str]] = None,
2075
+ uid: Optional[pulumi.Input[int]] = None):
2076
+ """
2077
+ :param pulumi.Input[int] gid: The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the gid.
2078
+ :param pulumi.Input[str] ssh_private_key: The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between nodes in a Linux pool when the pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between nodes (no modification of the user's .ssh directory is done).
2079
+ :param pulumi.Input[int] uid: The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the uid.
2080
+ """
2081
+ if gid is not None:
2082
+ pulumi.set(__self__, "gid", gid)
2083
+ if ssh_private_key is not None:
2084
+ pulumi.set(__self__, "ssh_private_key", ssh_private_key)
2085
+ if uid is not None:
2086
+ pulumi.set(__self__, "uid", uid)
2087
+
2088
+ @property
2089
+ @pulumi.getter
2090
+ def gid(self) -> Optional[pulumi.Input[int]]:
2091
+ """
2092
+ The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the gid.
2093
+ """
2094
+ return pulumi.get(self, "gid")
2095
+
2096
+ @gid.setter
2097
+ def gid(self, value: Optional[pulumi.Input[int]]):
2098
+ pulumi.set(self, "gid", value)
2099
+
2100
+ @property
2101
+ @pulumi.getter(name="sshPrivateKey")
2102
+ def ssh_private_key(self) -> Optional[pulumi.Input[str]]:
2103
+ """
2104
+ The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between nodes in a Linux pool when the pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between nodes (no modification of the user's .ssh directory is done).
2105
+ """
2106
+ return pulumi.get(self, "ssh_private_key")
2107
+
2108
+ @ssh_private_key.setter
2109
+ def ssh_private_key(self, value: Optional[pulumi.Input[str]]):
2110
+ pulumi.set(self, "ssh_private_key", value)
2111
+
2112
+ @property
2113
+ @pulumi.getter
2114
+ def uid(self) -> Optional[pulumi.Input[int]]:
2115
+ """
2116
+ The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the uid.
2117
+ """
2118
+ return pulumi.get(self, "uid")
2119
+
2120
+ @uid.setter
2121
+ def uid(self, value: Optional[pulumi.Input[int]]):
2122
+ pulumi.set(self, "uid", value)
2123
+
2124
+
2125
+ if not MYPY:
2126
+ class ManagedDiskArgsDict(TypedDict):
2127
+ security_profile: NotRequired[pulumi.Input['VMDiskSecurityProfileArgsDict']]
2128
+ """
2129
+ Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs.
2130
+ """
2131
+ storage_account_type: NotRequired[pulumi.Input['StorageAccountType']]
2132
+ elif False:
2133
+ ManagedDiskArgsDict: TypeAlias = Mapping[str, Any]
2134
+
2135
+ @pulumi.input_type
2136
+ class ManagedDiskArgs:
2137
+ def __init__(__self__, *,
2138
+ security_profile: Optional[pulumi.Input['VMDiskSecurityProfileArgs']] = None,
2139
+ storage_account_type: Optional[pulumi.Input['StorageAccountType']] = None):
2140
+ """
2141
+ :param pulumi.Input['VMDiskSecurityProfileArgs'] security_profile: Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs.
2142
+ """
2143
+ if security_profile is not None:
2144
+ pulumi.set(__self__, "security_profile", security_profile)
2145
+ if storage_account_type is not None:
2146
+ pulumi.set(__self__, "storage_account_type", storage_account_type)
2147
+
2148
+ @property
2149
+ @pulumi.getter(name="securityProfile")
2150
+ def security_profile(self) -> Optional[pulumi.Input['VMDiskSecurityProfileArgs']]:
2151
+ """
2152
+ Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs.
2153
+ """
2154
+ return pulumi.get(self, "security_profile")
2155
+
2156
+ @security_profile.setter
2157
+ def security_profile(self, value: Optional[pulumi.Input['VMDiskSecurityProfileArgs']]):
2158
+ pulumi.set(self, "security_profile", value)
2159
+
2160
+ @property
2161
+ @pulumi.getter(name="storageAccountType")
2162
+ def storage_account_type(self) -> Optional[pulumi.Input['StorageAccountType']]:
2163
+ return pulumi.get(self, "storage_account_type")
2164
+
2165
+ @storage_account_type.setter
2166
+ def storage_account_type(self, value: Optional[pulumi.Input['StorageAccountType']]):
2167
+ pulumi.set(self, "storage_account_type", value)
2168
+
2169
+
2170
+ if not MYPY:
2171
+ class MetadataItemArgsDict(TypedDict):
2172
+ """
2173
+ The Batch service does not assign any meaning to this metadata; it is solely for the use of user code.
2174
+ """
2175
+ name: pulumi.Input[str]
2176
+ value: pulumi.Input[str]
2177
+ elif False:
2178
+ MetadataItemArgsDict: TypeAlias = Mapping[str, Any]
2179
+
2180
+ @pulumi.input_type
2181
+ class MetadataItemArgs:
2182
+ def __init__(__self__, *,
2183
+ name: pulumi.Input[str],
2184
+ value: pulumi.Input[str]):
2185
+ """
2186
+ The Batch service does not assign any meaning to this metadata; it is solely for the use of user code.
2187
+ """
2188
+ pulumi.set(__self__, "name", name)
2189
+ pulumi.set(__self__, "value", value)
2190
+
2191
+ @property
2192
+ @pulumi.getter
2193
+ def name(self) -> pulumi.Input[str]:
2194
+ return pulumi.get(self, "name")
2195
+
2196
+ @name.setter
2197
+ def name(self, value: pulumi.Input[str]):
2198
+ pulumi.set(self, "name", value)
2199
+
2200
+ @property
2201
+ @pulumi.getter
2202
+ def value(self) -> pulumi.Input[str]:
2203
+ return pulumi.get(self, "value")
2204
+
2205
+ @value.setter
2206
+ def value(self, value: pulumi.Input[str]):
2207
+ pulumi.set(self, "value", value)
2208
+
2209
+
2210
+ if not MYPY:
2211
+ class MountConfigurationArgsDict(TypedDict):
2212
+ azure_blob_file_system_configuration: NotRequired[pulumi.Input['AzureBlobFileSystemConfigurationArgsDict']]
2213
+ """
2214
+ This property is mutually exclusive with all other properties.
2215
+ """
2216
+ azure_file_share_configuration: NotRequired[pulumi.Input['AzureFileShareConfigurationArgsDict']]
2217
+ """
2218
+ This property is mutually exclusive with all other properties.
2219
+ """
2220
+ cifs_mount_configuration: NotRequired[pulumi.Input['CIFSMountConfigurationArgsDict']]
2221
+ """
2222
+ This property is mutually exclusive with all other properties.
2223
+ """
2224
+ nfs_mount_configuration: NotRequired[pulumi.Input['NFSMountConfigurationArgsDict']]
2225
+ """
2226
+ This property is mutually exclusive with all other properties.
2227
+ """
2228
+ elif False:
2229
+ MountConfigurationArgsDict: TypeAlias = Mapping[str, Any]
2230
+
2231
+ @pulumi.input_type
2232
+ class MountConfigurationArgs:
2233
+ def __init__(__self__, *,
2234
+ azure_blob_file_system_configuration: Optional[pulumi.Input['AzureBlobFileSystemConfigurationArgs']] = None,
2235
+ azure_file_share_configuration: Optional[pulumi.Input['AzureFileShareConfigurationArgs']] = None,
2236
+ cifs_mount_configuration: Optional[pulumi.Input['CIFSMountConfigurationArgs']] = None,
2237
+ nfs_mount_configuration: Optional[pulumi.Input['NFSMountConfigurationArgs']] = None):
2238
+ """
2239
+ :param pulumi.Input['AzureBlobFileSystemConfigurationArgs'] azure_blob_file_system_configuration: This property is mutually exclusive with all other properties.
2240
+ :param pulumi.Input['AzureFileShareConfigurationArgs'] azure_file_share_configuration: This property is mutually exclusive with all other properties.
2241
+ :param pulumi.Input['CIFSMountConfigurationArgs'] cifs_mount_configuration: This property is mutually exclusive with all other properties.
2242
+ :param pulumi.Input['NFSMountConfigurationArgs'] nfs_mount_configuration: This property is mutually exclusive with all other properties.
2243
+ """
2244
+ if azure_blob_file_system_configuration is not None:
2245
+ pulumi.set(__self__, "azure_blob_file_system_configuration", azure_blob_file_system_configuration)
2246
+ if azure_file_share_configuration is not None:
2247
+ pulumi.set(__self__, "azure_file_share_configuration", azure_file_share_configuration)
2248
+ if cifs_mount_configuration is not None:
2249
+ pulumi.set(__self__, "cifs_mount_configuration", cifs_mount_configuration)
2250
+ if nfs_mount_configuration is not None:
2251
+ pulumi.set(__self__, "nfs_mount_configuration", nfs_mount_configuration)
2252
+
2253
+ @property
2254
+ @pulumi.getter(name="azureBlobFileSystemConfiguration")
2255
+ def azure_blob_file_system_configuration(self) -> Optional[pulumi.Input['AzureBlobFileSystemConfigurationArgs']]:
2256
+ """
2257
+ This property is mutually exclusive with all other properties.
2258
+ """
2259
+ return pulumi.get(self, "azure_blob_file_system_configuration")
2260
+
2261
+ @azure_blob_file_system_configuration.setter
2262
+ def azure_blob_file_system_configuration(self, value: Optional[pulumi.Input['AzureBlobFileSystemConfigurationArgs']]):
2263
+ pulumi.set(self, "azure_blob_file_system_configuration", value)
2264
+
2265
+ @property
2266
+ @pulumi.getter(name="azureFileShareConfiguration")
2267
+ def azure_file_share_configuration(self) -> Optional[pulumi.Input['AzureFileShareConfigurationArgs']]:
2268
+ """
2269
+ This property is mutually exclusive with all other properties.
2270
+ """
2271
+ return pulumi.get(self, "azure_file_share_configuration")
2272
+
2273
+ @azure_file_share_configuration.setter
2274
+ def azure_file_share_configuration(self, value: Optional[pulumi.Input['AzureFileShareConfigurationArgs']]):
2275
+ pulumi.set(self, "azure_file_share_configuration", value)
2276
+
2277
+ @property
2278
+ @pulumi.getter(name="cifsMountConfiguration")
2279
+ def cifs_mount_configuration(self) -> Optional[pulumi.Input['CIFSMountConfigurationArgs']]:
2280
+ """
2281
+ This property is mutually exclusive with all other properties.
2282
+ """
2283
+ return pulumi.get(self, "cifs_mount_configuration")
2284
+
2285
+ @cifs_mount_configuration.setter
2286
+ def cifs_mount_configuration(self, value: Optional[pulumi.Input['CIFSMountConfigurationArgs']]):
2287
+ pulumi.set(self, "cifs_mount_configuration", value)
2288
+
2289
+ @property
2290
+ @pulumi.getter(name="nfsMountConfiguration")
2291
+ def nfs_mount_configuration(self) -> Optional[pulumi.Input['NFSMountConfigurationArgs']]:
2292
+ """
2293
+ This property is mutually exclusive with all other properties.
2294
+ """
2295
+ return pulumi.get(self, "nfs_mount_configuration")
2296
+
2297
+ @nfs_mount_configuration.setter
2298
+ def nfs_mount_configuration(self, value: Optional[pulumi.Input['NFSMountConfigurationArgs']]):
2299
+ pulumi.set(self, "nfs_mount_configuration", value)
2300
+
2301
+
2302
+ if not MYPY:
2303
+ class NFSMountConfigurationArgsDict(TypedDict):
2304
+ relative_mount_path: pulumi.Input[str]
2305
+ """
2306
+ All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
2307
+ """
2308
+ source: pulumi.Input[str]
2309
+ mount_options: NotRequired[pulumi.Input[str]]
2310
+ """
2311
+ These are 'net use' options in Windows and 'mount' options in Linux.
2312
+ """
2313
+ elif False:
2314
+ NFSMountConfigurationArgsDict: TypeAlias = Mapping[str, Any]
2315
+
2316
+ @pulumi.input_type
2317
+ class NFSMountConfigurationArgs:
2318
+ def __init__(__self__, *,
2319
+ relative_mount_path: pulumi.Input[str],
2320
+ source: pulumi.Input[str],
2321
+ mount_options: Optional[pulumi.Input[str]] = None):
2322
+ """
2323
+ :param pulumi.Input[str] relative_mount_path: All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
2324
+ :param pulumi.Input[str] mount_options: These are 'net use' options in Windows and 'mount' options in Linux.
2325
+ """
2326
+ pulumi.set(__self__, "relative_mount_path", relative_mount_path)
2327
+ pulumi.set(__self__, "source", source)
2328
+ if mount_options is not None:
2329
+ pulumi.set(__self__, "mount_options", mount_options)
2330
+
2331
+ @property
2332
+ @pulumi.getter(name="relativeMountPath")
2333
+ def relative_mount_path(self) -> pulumi.Input[str]:
2334
+ """
2335
+ All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable.
2336
+ """
2337
+ return pulumi.get(self, "relative_mount_path")
2338
+
2339
+ @relative_mount_path.setter
2340
+ def relative_mount_path(self, value: pulumi.Input[str]):
2341
+ pulumi.set(self, "relative_mount_path", value)
2342
+
2343
+ @property
2344
+ @pulumi.getter
2345
+ def source(self) -> pulumi.Input[str]:
2346
+ return pulumi.get(self, "source")
2347
+
2348
+ @source.setter
2349
+ def source(self, value: pulumi.Input[str]):
2350
+ pulumi.set(self, "source", value)
2351
+
2352
+ @property
2353
+ @pulumi.getter(name="mountOptions")
2354
+ def mount_options(self) -> Optional[pulumi.Input[str]]:
2355
+ """
2356
+ These are 'net use' options in Windows and 'mount' options in Linux.
2357
+ """
2358
+ return pulumi.get(self, "mount_options")
2359
+
2360
+ @mount_options.setter
2361
+ def mount_options(self, value: Optional[pulumi.Input[str]]):
2362
+ pulumi.set(self, "mount_options", value)
2363
+
2364
+
2365
+ if not MYPY:
2366
+ class NetworkConfigurationArgsDict(TypedDict):
2367
+ """
2368
+ The network configuration for a pool.
2369
+ """
2370
+ dynamic_vnet_assignment_scope: NotRequired[pulumi.Input['DynamicVNetAssignmentScope']]
2371
+ enable_accelerated_networking: NotRequired[pulumi.Input[bool]]
2372
+ """
2373
+ Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, which may lead to improved networking performance. For more details, see: https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview.
2374
+ """
2375
+ endpoint_configuration: NotRequired[pulumi.Input['PoolEndpointConfigurationArgsDict']]
2376
+ public_ip_address_configuration: NotRequired[pulumi.Input['PublicIPAddressConfigurationArgsDict']]
2377
+ """
2378
+ The public IP Address configuration of the networking configuration of a Pool.
2379
+ """
2380
+ subnet_id: NotRequired[pulumi.Input[str]]
2381
+ """
2382
+ The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication. Enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. Also enable outbound connections to Azure Storage on port 443. For more details see: https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration
2383
+ """
2384
+ elif False:
2385
+ NetworkConfigurationArgsDict: TypeAlias = Mapping[str, Any]
2386
+
2387
+ @pulumi.input_type
2388
+ class NetworkConfigurationArgs:
2389
+ def __init__(__self__, *,
2390
+ dynamic_vnet_assignment_scope: Optional[pulumi.Input['DynamicVNetAssignmentScope']] = None,
2391
+ enable_accelerated_networking: Optional[pulumi.Input[bool]] = None,
2392
+ endpoint_configuration: Optional[pulumi.Input['PoolEndpointConfigurationArgs']] = None,
2393
+ public_ip_address_configuration: Optional[pulumi.Input['PublicIPAddressConfigurationArgs']] = None,
2394
+ subnet_id: Optional[pulumi.Input[str]] = None):
2395
+ """
2396
+ The network configuration for a pool.
2397
+ :param pulumi.Input[bool] enable_accelerated_networking: Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, which may lead to improved networking performance. For more details, see: https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview.
2398
+ :param pulumi.Input['PublicIPAddressConfigurationArgs'] public_ip_address_configuration: The public IP Address configuration of the networking configuration of a Pool.
2399
+ :param pulumi.Input[str] subnet_id: The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication. Enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. Also enable outbound connections to Azure Storage on port 443. For more details see: https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration
2400
+ """
2401
+ if dynamic_vnet_assignment_scope is None:
2402
+ dynamic_vnet_assignment_scope = 'none'
2403
+ if dynamic_vnet_assignment_scope is not None:
2404
+ pulumi.set(__self__, "dynamic_vnet_assignment_scope", dynamic_vnet_assignment_scope)
2405
+ if enable_accelerated_networking is not None:
2406
+ pulumi.set(__self__, "enable_accelerated_networking", enable_accelerated_networking)
2407
+ if endpoint_configuration is not None:
2408
+ pulumi.set(__self__, "endpoint_configuration", endpoint_configuration)
2409
+ if public_ip_address_configuration is not None:
2410
+ pulumi.set(__self__, "public_ip_address_configuration", public_ip_address_configuration)
2411
+ if subnet_id is not None:
2412
+ pulumi.set(__self__, "subnet_id", subnet_id)
2413
+
2414
+ @property
2415
+ @pulumi.getter(name="dynamicVnetAssignmentScope")
2416
+ def dynamic_vnet_assignment_scope(self) -> Optional[pulumi.Input['DynamicVNetAssignmentScope']]:
2417
+ return pulumi.get(self, "dynamic_vnet_assignment_scope")
2418
+
2419
+ @dynamic_vnet_assignment_scope.setter
2420
+ def dynamic_vnet_assignment_scope(self, value: Optional[pulumi.Input['DynamicVNetAssignmentScope']]):
2421
+ pulumi.set(self, "dynamic_vnet_assignment_scope", value)
2422
+
2423
+ @property
2424
+ @pulumi.getter(name="enableAcceleratedNetworking")
2425
+ def enable_accelerated_networking(self) -> Optional[pulumi.Input[bool]]:
2426
+ """
2427
+ Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, which may lead to improved networking performance. For more details, see: https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview.
2428
+ """
2429
+ return pulumi.get(self, "enable_accelerated_networking")
2430
+
2431
+ @enable_accelerated_networking.setter
2432
+ def enable_accelerated_networking(self, value: Optional[pulumi.Input[bool]]):
2433
+ pulumi.set(self, "enable_accelerated_networking", value)
2434
+
2435
+ @property
2436
+ @pulumi.getter(name="endpointConfiguration")
2437
+ def endpoint_configuration(self) -> Optional[pulumi.Input['PoolEndpointConfigurationArgs']]:
2438
+ return pulumi.get(self, "endpoint_configuration")
2439
+
2440
+ @endpoint_configuration.setter
2441
+ def endpoint_configuration(self, value: Optional[pulumi.Input['PoolEndpointConfigurationArgs']]):
2442
+ pulumi.set(self, "endpoint_configuration", value)
2443
+
2444
+ @property
2445
+ @pulumi.getter(name="publicIPAddressConfiguration")
2446
+ def public_ip_address_configuration(self) -> Optional[pulumi.Input['PublicIPAddressConfigurationArgs']]:
2447
+ """
2448
+ The public IP Address configuration of the networking configuration of a Pool.
2449
+ """
2450
+ return pulumi.get(self, "public_ip_address_configuration")
2451
+
2452
+ @public_ip_address_configuration.setter
2453
+ def public_ip_address_configuration(self, value: Optional[pulumi.Input['PublicIPAddressConfigurationArgs']]):
2454
+ pulumi.set(self, "public_ip_address_configuration", value)
2455
+
2456
+ @property
2457
+ @pulumi.getter(name="subnetId")
2458
+ def subnet_id(self) -> Optional[pulumi.Input[str]]:
2459
+ """
2460
+ The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication. Enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. Also enable outbound connections to Azure Storage on port 443. For more details see: https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration
2461
+ """
2462
+ return pulumi.get(self, "subnet_id")
2463
+
2464
+ @subnet_id.setter
2465
+ def subnet_id(self, value: Optional[pulumi.Input[str]]):
2466
+ pulumi.set(self, "subnet_id", value)
2467
+
2468
+
2469
+ if not MYPY:
2470
+ class NetworkProfileArgsDict(TypedDict):
2471
+ """
2472
+ Network profile for Batch account, which contains network rule settings for each endpoint.
2473
+ """
2474
+ account_access: NotRequired[pulumi.Input['EndpointAccessProfileArgsDict']]
2475
+ """
2476
+ Network access profile for batchAccount endpoint (Batch account data plane API).
2477
+ """
2478
+ node_management_access: NotRequired[pulumi.Input['EndpointAccessProfileArgsDict']]
2479
+ """
2480
+ Network access profile for nodeManagement endpoint (Batch service managing compute nodes for Batch pools).
2481
+ """
2482
+ elif False:
2483
+ NetworkProfileArgsDict: TypeAlias = Mapping[str, Any]
2484
+
2485
+ @pulumi.input_type
2486
+ class NetworkProfileArgs:
2487
+ def __init__(__self__, *,
2488
+ account_access: Optional[pulumi.Input['EndpointAccessProfileArgs']] = None,
2489
+ node_management_access: Optional[pulumi.Input['EndpointAccessProfileArgs']] = None):
2490
+ """
2491
+ Network profile for Batch account, which contains network rule settings for each endpoint.
2492
+ :param pulumi.Input['EndpointAccessProfileArgs'] account_access: Network access profile for batchAccount endpoint (Batch account data plane API).
2493
+ :param pulumi.Input['EndpointAccessProfileArgs'] node_management_access: Network access profile for nodeManagement endpoint (Batch service managing compute nodes for Batch pools).
2494
+ """
2495
+ if account_access is not None:
2496
+ pulumi.set(__self__, "account_access", account_access)
2497
+ if node_management_access is not None:
2498
+ pulumi.set(__self__, "node_management_access", node_management_access)
2499
+
2500
+ @property
2501
+ @pulumi.getter(name="accountAccess")
2502
+ def account_access(self) -> Optional[pulumi.Input['EndpointAccessProfileArgs']]:
2503
+ """
2504
+ Network access profile for batchAccount endpoint (Batch account data plane API).
2505
+ """
2506
+ return pulumi.get(self, "account_access")
2507
+
2508
+ @account_access.setter
2509
+ def account_access(self, value: Optional[pulumi.Input['EndpointAccessProfileArgs']]):
2510
+ pulumi.set(self, "account_access", value)
2511
+
2512
+ @property
2513
+ @pulumi.getter(name="nodeManagementAccess")
2514
+ def node_management_access(self) -> Optional[pulumi.Input['EndpointAccessProfileArgs']]:
2515
+ """
2516
+ Network access profile for nodeManagement endpoint (Batch service managing compute nodes for Batch pools).
2517
+ """
2518
+ return pulumi.get(self, "node_management_access")
2519
+
2520
+ @node_management_access.setter
2521
+ def node_management_access(self, value: Optional[pulumi.Input['EndpointAccessProfileArgs']]):
2522
+ pulumi.set(self, "node_management_access", value)
2523
+
2524
+
2525
+ if not MYPY:
2526
+ class NetworkSecurityGroupRuleArgsDict(TypedDict):
2527
+ access: pulumi.Input['NetworkSecurityGroupRuleAccess']
2528
+ priority: pulumi.Input[int]
2529
+ """
2530
+ Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400.
2531
+ """
2532
+ source_address_prefix: pulumi.Input[str]
2533
+ """
2534
+ Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400.
2535
+ """
2536
+ source_port_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2537
+ """
2538
+ Valid values are '*' (for all ports 0 - 65535) or arrays of ports or port ranges (i.e. 100-200). The ports should in the range of 0 to 65535 and the port ranges or ports can't overlap. If any other values are provided the request fails with HTTP status code 400. Default value will be *.
2539
+ """
2540
+ elif False:
2541
+ NetworkSecurityGroupRuleArgsDict: TypeAlias = Mapping[str, Any]
2542
+
2543
+ @pulumi.input_type
2544
+ class NetworkSecurityGroupRuleArgs:
2545
+ def __init__(__self__, *,
2546
+ access: pulumi.Input['NetworkSecurityGroupRuleAccess'],
2547
+ priority: pulumi.Input[int],
2548
+ source_address_prefix: pulumi.Input[str],
2549
+ source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
2550
+ """
2551
+ :param pulumi.Input[int] priority: Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400.
2552
+ :param pulumi.Input[str] source_address_prefix: Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400.
2553
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] source_port_ranges: Valid values are '*' (for all ports 0 - 65535) or arrays of ports or port ranges (i.e. 100-200). The ports should in the range of 0 to 65535 and the port ranges or ports can't overlap. If any other values are provided the request fails with HTTP status code 400. Default value will be *.
2554
+ """
2555
+ pulumi.set(__self__, "access", access)
2556
+ pulumi.set(__self__, "priority", priority)
2557
+ pulumi.set(__self__, "source_address_prefix", source_address_prefix)
2558
+ if source_port_ranges is not None:
2559
+ pulumi.set(__self__, "source_port_ranges", source_port_ranges)
2560
+
2561
+ @property
2562
+ @pulumi.getter
2563
+ def access(self) -> pulumi.Input['NetworkSecurityGroupRuleAccess']:
2564
+ return pulumi.get(self, "access")
2565
+
2566
+ @access.setter
2567
+ def access(self, value: pulumi.Input['NetworkSecurityGroupRuleAccess']):
2568
+ pulumi.set(self, "access", value)
2569
+
2570
+ @property
2571
+ @pulumi.getter
2572
+ def priority(self) -> pulumi.Input[int]:
2573
+ """
2574
+ Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400.
2575
+ """
2576
+ return pulumi.get(self, "priority")
2577
+
2578
+ @priority.setter
2579
+ def priority(self, value: pulumi.Input[int]):
2580
+ pulumi.set(self, "priority", value)
2581
+
2582
+ @property
2583
+ @pulumi.getter(name="sourceAddressPrefix")
2584
+ def source_address_prefix(self) -> pulumi.Input[str]:
2585
+ """
2586
+ Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400.
2587
+ """
2588
+ return pulumi.get(self, "source_address_prefix")
2589
+
2590
+ @source_address_prefix.setter
2591
+ def source_address_prefix(self, value: pulumi.Input[str]):
2592
+ pulumi.set(self, "source_address_prefix", value)
2593
+
2594
+ @property
2595
+ @pulumi.getter(name="sourcePortRanges")
2596
+ def source_port_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2597
+ """
2598
+ Valid values are '*' (for all ports 0 - 65535) or arrays of ports or port ranges (i.e. 100-200). The ports should in the range of 0 to 65535 and the port ranges or ports can't overlap. If any other values are provided the request fails with HTTP status code 400. Default value will be *.
2599
+ """
2600
+ return pulumi.get(self, "source_port_ranges")
2601
+
2602
+ @source_port_ranges.setter
2603
+ def source_port_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2604
+ pulumi.set(self, "source_port_ranges", value)
2605
+
2606
+
2607
+ if not MYPY:
2608
+ class NodePlacementConfigurationArgsDict(TypedDict):
2609
+ """
2610
+ Allocation configuration used by Batch Service to provision the nodes.
2611
+ """
2612
+ policy: NotRequired[pulumi.Input['NodePlacementPolicyType']]
2613
+ """
2614
+ Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy.
2615
+ """
2616
+ elif False:
2617
+ NodePlacementConfigurationArgsDict: TypeAlias = Mapping[str, Any]
2618
+
2619
+ @pulumi.input_type
2620
+ class NodePlacementConfigurationArgs:
2621
+ def __init__(__self__, *,
2622
+ policy: Optional[pulumi.Input['NodePlacementPolicyType']] = None):
2623
+ """
2624
+ Allocation configuration used by Batch Service to provision the nodes.
2625
+ :param pulumi.Input['NodePlacementPolicyType'] policy: Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy.
2626
+ """
2627
+ if policy is not None:
2628
+ pulumi.set(__self__, "policy", policy)
2629
+
2630
+ @property
2631
+ @pulumi.getter
2632
+ def policy(self) -> Optional[pulumi.Input['NodePlacementPolicyType']]:
2633
+ """
2634
+ Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy.
2635
+ """
2636
+ return pulumi.get(self, "policy")
2637
+
2638
+ @policy.setter
2639
+ def policy(self, value: Optional[pulumi.Input['NodePlacementPolicyType']]):
2640
+ pulumi.set(self, "policy", value)
2641
+
2642
+
2643
+ if not MYPY:
2644
+ class OSDiskArgsDict(TypedDict):
2645
+ caching: NotRequired[pulumi.Input['CachingType']]
2646
+ disk_size_gb: NotRequired[pulumi.Input[int]]
2647
+ ephemeral_os_disk_settings: NotRequired[pulumi.Input['DiffDiskSettingsArgsDict']]
2648
+ managed_disk: NotRequired[pulumi.Input['ManagedDiskArgsDict']]
2649
+ write_accelerator_enabled: NotRequired[pulumi.Input[bool]]
2650
+ elif False:
2651
+ OSDiskArgsDict: TypeAlias = Mapping[str, Any]
2652
+
2653
+ @pulumi.input_type
2654
+ class OSDiskArgs:
2655
+ def __init__(__self__, *,
2656
+ caching: Optional[pulumi.Input['CachingType']] = None,
2657
+ disk_size_gb: Optional[pulumi.Input[int]] = None,
2658
+ ephemeral_os_disk_settings: Optional[pulumi.Input['DiffDiskSettingsArgs']] = None,
2659
+ managed_disk: Optional[pulumi.Input['ManagedDiskArgs']] = None,
2660
+ write_accelerator_enabled: Optional[pulumi.Input[bool]] = None):
2661
+ if caching is not None:
2662
+ pulumi.set(__self__, "caching", caching)
2663
+ if disk_size_gb is not None:
2664
+ pulumi.set(__self__, "disk_size_gb", disk_size_gb)
2665
+ if ephemeral_os_disk_settings is not None:
2666
+ pulumi.set(__self__, "ephemeral_os_disk_settings", ephemeral_os_disk_settings)
2667
+ if managed_disk is not None:
2668
+ pulumi.set(__self__, "managed_disk", managed_disk)
2669
+ if write_accelerator_enabled is not None:
2670
+ pulumi.set(__self__, "write_accelerator_enabled", write_accelerator_enabled)
2671
+
2672
+ @property
2673
+ @pulumi.getter
2674
+ def caching(self) -> Optional[pulumi.Input['CachingType']]:
2675
+ return pulumi.get(self, "caching")
2676
+
2677
+ @caching.setter
2678
+ def caching(self, value: Optional[pulumi.Input['CachingType']]):
2679
+ pulumi.set(self, "caching", value)
2680
+
2681
+ @property
2682
+ @pulumi.getter(name="diskSizeGB")
2683
+ def disk_size_gb(self) -> Optional[pulumi.Input[int]]:
2684
+ return pulumi.get(self, "disk_size_gb")
2685
+
2686
+ @disk_size_gb.setter
2687
+ def disk_size_gb(self, value: Optional[pulumi.Input[int]]):
2688
+ pulumi.set(self, "disk_size_gb", value)
2689
+
2690
+ @property
2691
+ @pulumi.getter(name="ephemeralOSDiskSettings")
2692
+ def ephemeral_os_disk_settings(self) -> Optional[pulumi.Input['DiffDiskSettingsArgs']]:
2693
+ return pulumi.get(self, "ephemeral_os_disk_settings")
2694
+
2695
+ @ephemeral_os_disk_settings.setter
2696
+ def ephemeral_os_disk_settings(self, value: Optional[pulumi.Input['DiffDiskSettingsArgs']]):
2697
+ pulumi.set(self, "ephemeral_os_disk_settings", value)
2698
+
2699
+ @property
2700
+ @pulumi.getter(name="managedDisk")
2701
+ def managed_disk(self) -> Optional[pulumi.Input['ManagedDiskArgs']]:
2702
+ return pulumi.get(self, "managed_disk")
2703
+
2704
+ @managed_disk.setter
2705
+ def managed_disk(self, value: Optional[pulumi.Input['ManagedDiskArgs']]):
2706
+ pulumi.set(self, "managed_disk", value)
2707
+
2708
+ @property
2709
+ @pulumi.getter(name="writeAcceleratorEnabled")
2710
+ def write_accelerator_enabled(self) -> Optional[pulumi.Input[bool]]:
2711
+ return pulumi.get(self, "write_accelerator_enabled")
2712
+
2713
+ @write_accelerator_enabled.setter
2714
+ def write_accelerator_enabled(self, value: Optional[pulumi.Input[bool]]):
2715
+ pulumi.set(self, "write_accelerator_enabled", value)
2716
+
2717
+
2718
+ if not MYPY:
2719
+ class PoolEndpointConfigurationArgsDict(TypedDict):
2720
+ inbound_nat_pools: pulumi.Input[Sequence[pulumi.Input['InboundNatPoolArgsDict']]]
2721
+ """
2722
+ The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses.
2723
+ """
2724
+ elif False:
2725
+ PoolEndpointConfigurationArgsDict: TypeAlias = Mapping[str, Any]
2726
+
2727
+ @pulumi.input_type
2728
+ class PoolEndpointConfigurationArgs:
2729
+ def __init__(__self__, *,
2730
+ inbound_nat_pools: pulumi.Input[Sequence[pulumi.Input['InboundNatPoolArgs']]]):
2731
+ """
2732
+ :param pulumi.Input[Sequence[pulumi.Input['InboundNatPoolArgs']]] inbound_nat_pools: The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses.
2733
+ """
2734
+ pulumi.set(__self__, "inbound_nat_pools", inbound_nat_pools)
2735
+
2736
+ @property
2737
+ @pulumi.getter(name="inboundNatPools")
2738
+ def inbound_nat_pools(self) -> pulumi.Input[Sequence[pulumi.Input['InboundNatPoolArgs']]]:
2739
+ """
2740
+ The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses.
2741
+ """
2742
+ return pulumi.get(self, "inbound_nat_pools")
2743
+
2744
+ @inbound_nat_pools.setter
2745
+ def inbound_nat_pools(self, value: pulumi.Input[Sequence[pulumi.Input['InboundNatPoolArgs']]]):
2746
+ pulumi.set(self, "inbound_nat_pools", value)
2747
+
2748
+
2749
+ if not MYPY:
2750
+ class PublicIPAddressConfigurationArgsDict(TypedDict):
2751
+ """
2752
+ The public IP Address configuration of the networking configuration of a Pool.
2753
+ """
2754
+ ip_address_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2755
+ """
2756
+ The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 Spot/low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}.
2757
+ """
2758
+ provision: NotRequired[pulumi.Input['IPAddressProvisioningType']]
2759
+ """
2760
+ The default value is BatchManaged
2761
+ """
2762
+ elif False:
2763
+ PublicIPAddressConfigurationArgsDict: TypeAlias = Mapping[str, Any]
2764
+
2765
+ @pulumi.input_type
2766
+ class PublicIPAddressConfigurationArgs:
2767
+ def __init__(__self__, *,
2768
+ ip_address_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2769
+ provision: Optional[pulumi.Input['IPAddressProvisioningType']] = None):
2770
+ """
2771
+ The public IP Address configuration of the networking configuration of a Pool.
2772
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_address_ids: The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 Spot/low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}.
2773
+ :param pulumi.Input['IPAddressProvisioningType'] provision: The default value is BatchManaged
2774
+ """
2775
+ if ip_address_ids is not None:
2776
+ pulumi.set(__self__, "ip_address_ids", ip_address_ids)
2777
+ if provision is not None:
2778
+ pulumi.set(__self__, "provision", provision)
2779
+
2780
+ @property
2781
+ @pulumi.getter(name="ipAddressIds")
2782
+ def ip_address_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2783
+ """
2784
+ The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 Spot/low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}.
2785
+ """
2786
+ return pulumi.get(self, "ip_address_ids")
2787
+
2788
+ @ip_address_ids.setter
2789
+ def ip_address_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2790
+ pulumi.set(self, "ip_address_ids", value)
2791
+
2792
+ @property
2793
+ @pulumi.getter
2794
+ def provision(self) -> Optional[pulumi.Input['IPAddressProvisioningType']]:
2795
+ """
2796
+ The default value is BatchManaged
2797
+ """
2798
+ return pulumi.get(self, "provision")
2799
+
2800
+ @provision.setter
2801
+ def provision(self, value: Optional[pulumi.Input['IPAddressProvisioningType']]):
2802
+ pulumi.set(self, "provision", value)
2803
+
2804
+
2805
+ if not MYPY:
2806
+ class ResourceFileArgsDict(TypedDict):
2807
+ auto_storage_container_name: NotRequired[pulumi.Input[str]]
2808
+ """
2809
+ The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified.
2810
+ """
2811
+ blob_prefix: NotRequired[pulumi.Input[str]]
2812
+ """
2813
+ The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded.
2814
+ """
2815
+ file_mode: NotRequired[pulumi.Input[str]]
2816
+ """
2817
+ This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file.
2818
+ """
2819
+ file_path: NotRequired[pulumi.Input[str]]
2820
+ """
2821
+ If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..').
2822
+ """
2823
+ http_url: NotRequired[pulumi.Input[str]]
2824
+ """
2825
+ The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable from compute nodes. There are three ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, use a managed identity with read permission, or set the ACL for the blob or its container to allow public access.
2826
+ """
2827
+ identity_reference: NotRequired[pulumi.Input['ComputeNodeIdentityReferenceArgsDict']]
2828
+ """
2829
+ The reference to a user assigned identity associated with the Batch pool which a compute node will use.
2830
+ """
2831
+ storage_container_url: NotRequired[pulumi.Input[str]]
2832
+ """
2833
+ The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable from compute nodes. There are three ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, use a managed identity with read and list permissions, or set the ACL for the container to allow public access.
2834
+ """
2835
+ elif False:
2836
+ ResourceFileArgsDict: TypeAlias = Mapping[str, Any]
2837
+
2838
+ @pulumi.input_type
2839
+ class ResourceFileArgs:
2840
+ def __init__(__self__, *,
2841
+ auto_storage_container_name: Optional[pulumi.Input[str]] = None,
2842
+ blob_prefix: Optional[pulumi.Input[str]] = None,
2843
+ file_mode: Optional[pulumi.Input[str]] = None,
2844
+ file_path: Optional[pulumi.Input[str]] = None,
2845
+ http_url: Optional[pulumi.Input[str]] = None,
2846
+ identity_reference: Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']] = None,
2847
+ storage_container_url: Optional[pulumi.Input[str]] = None):
2848
+ """
2849
+ :param pulumi.Input[str] auto_storage_container_name: The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified.
2850
+ :param pulumi.Input[str] blob_prefix: The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded.
2851
+ :param pulumi.Input[str] file_mode: This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file.
2852
+ :param pulumi.Input[str] file_path: If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..').
2853
+ :param pulumi.Input[str] http_url: The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable from compute nodes. There are three ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, use a managed identity with read permission, or set the ACL for the blob or its container to allow public access.
2854
+ :param pulumi.Input['ComputeNodeIdentityReferenceArgs'] identity_reference: The reference to a user assigned identity associated with the Batch pool which a compute node will use.
2855
+ :param pulumi.Input[str] storage_container_url: The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable from compute nodes. There are three ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, use a managed identity with read and list permissions, or set the ACL for the container to allow public access.
2856
+ """
2857
+ if auto_storage_container_name is not None:
2858
+ pulumi.set(__self__, "auto_storage_container_name", auto_storage_container_name)
2859
+ if blob_prefix is not None:
2860
+ pulumi.set(__self__, "blob_prefix", blob_prefix)
2861
+ if file_mode is not None:
2862
+ pulumi.set(__self__, "file_mode", file_mode)
2863
+ if file_path is not None:
2864
+ pulumi.set(__self__, "file_path", file_path)
2865
+ if http_url is not None:
2866
+ pulumi.set(__self__, "http_url", http_url)
2867
+ if identity_reference is not None:
2868
+ pulumi.set(__self__, "identity_reference", identity_reference)
2869
+ if storage_container_url is not None:
2870
+ pulumi.set(__self__, "storage_container_url", storage_container_url)
2871
+
2872
+ @property
2873
+ @pulumi.getter(name="autoStorageContainerName")
2874
+ def auto_storage_container_name(self) -> Optional[pulumi.Input[str]]:
2875
+ """
2876
+ The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified.
2877
+ """
2878
+ return pulumi.get(self, "auto_storage_container_name")
2879
+
2880
+ @auto_storage_container_name.setter
2881
+ def auto_storage_container_name(self, value: Optional[pulumi.Input[str]]):
2882
+ pulumi.set(self, "auto_storage_container_name", value)
2883
+
2884
+ @property
2885
+ @pulumi.getter(name="blobPrefix")
2886
+ def blob_prefix(self) -> Optional[pulumi.Input[str]]:
2887
+ """
2888
+ The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded.
2889
+ """
2890
+ return pulumi.get(self, "blob_prefix")
2891
+
2892
+ @blob_prefix.setter
2893
+ def blob_prefix(self, value: Optional[pulumi.Input[str]]):
2894
+ pulumi.set(self, "blob_prefix", value)
2895
+
2896
+ @property
2897
+ @pulumi.getter(name="fileMode")
2898
+ def file_mode(self) -> Optional[pulumi.Input[str]]:
2899
+ """
2900
+ This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file.
2901
+ """
2902
+ return pulumi.get(self, "file_mode")
2903
+
2904
+ @file_mode.setter
2905
+ def file_mode(self, value: Optional[pulumi.Input[str]]):
2906
+ pulumi.set(self, "file_mode", value)
2907
+
2908
+ @property
2909
+ @pulumi.getter(name="filePath")
2910
+ def file_path(self) -> Optional[pulumi.Input[str]]:
2911
+ """
2912
+ If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..').
2913
+ """
2914
+ return pulumi.get(self, "file_path")
2915
+
2916
+ @file_path.setter
2917
+ def file_path(self, value: Optional[pulumi.Input[str]]):
2918
+ pulumi.set(self, "file_path", value)
2919
+
2920
+ @property
2921
+ @pulumi.getter(name="httpUrl")
2922
+ def http_url(self) -> Optional[pulumi.Input[str]]:
2923
+ """
2924
+ The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable from compute nodes. There are three ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, use a managed identity with read permission, or set the ACL for the blob or its container to allow public access.
2925
+ """
2926
+ return pulumi.get(self, "http_url")
2927
+
2928
+ @http_url.setter
2929
+ def http_url(self, value: Optional[pulumi.Input[str]]):
2930
+ pulumi.set(self, "http_url", value)
2931
+
2932
+ @property
2933
+ @pulumi.getter(name="identityReference")
2934
+ def identity_reference(self) -> Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']]:
2935
+ """
2936
+ The reference to a user assigned identity associated with the Batch pool which a compute node will use.
2937
+ """
2938
+ return pulumi.get(self, "identity_reference")
2939
+
2940
+ @identity_reference.setter
2941
+ def identity_reference(self, value: Optional[pulumi.Input['ComputeNodeIdentityReferenceArgs']]):
2942
+ pulumi.set(self, "identity_reference", value)
2943
+
2944
+ @property
2945
+ @pulumi.getter(name="storageContainerUrl")
2946
+ def storage_container_url(self) -> Optional[pulumi.Input[str]]:
2947
+ """
2948
+ The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable from compute nodes. There are three ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, use a managed identity with read and list permissions, or set the ACL for the container to allow public access.
2949
+ """
2950
+ return pulumi.get(self, "storage_container_url")
2951
+
2952
+ @storage_container_url.setter
2953
+ def storage_container_url(self, value: Optional[pulumi.Input[str]]):
2954
+ pulumi.set(self, "storage_container_url", value)
2955
+
2956
+
2957
+ if not MYPY:
2958
+ class RollingUpgradePolicyArgsDict(TypedDict):
2959
+ """
2960
+ The configuration parameters used while performing a rolling upgrade.
2961
+ """
2962
+ enable_cross_zone_upgrade: NotRequired[pulumi.Input[bool]]
2963
+ """
2964
+ Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size. If this field is not set, Azure Azure Batch will not set its default value. The value of enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be decided by the default configurations on VirtualMachineScaleSet. This field is able to be set to true or false only when using NodePlacementConfiguration as Zonal.
2965
+ """
2966
+ max_batch_instance_percent: NotRequired[pulumi.Input[int]]
2967
+ """
2968
+ The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent.
2969
+ """
2970
+ max_unhealthy_instance_percent: NotRequired[pulumi.Input[int]]
2971
+ """
2972
+ The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent.
2973
+ """
2974
+ max_unhealthy_upgraded_instance_percent: NotRequired[pulumi.Input[int]]
2975
+ """
2976
+ The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The value of this field should be between 0 and 100, inclusive.
2977
+ """
2978
+ pause_time_between_batches: NotRequired[pulumi.Input[str]]
2979
+ """
2980
+ The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format.
2981
+ """
2982
+ prioritize_unhealthy_instances: NotRequired[pulumi.Input[bool]]
2983
+ """
2984
+ Upgrade all unhealthy instances in a scale set before any healthy instances.
2985
+ """
2986
+ rollback_failed_instances_on_policy_breach: NotRequired[pulumi.Input[bool]]
2987
+ """
2988
+ Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
2989
+ """
2990
+ elif False:
2991
+ RollingUpgradePolicyArgsDict: TypeAlias = Mapping[str, Any]
2992
+
2993
+ @pulumi.input_type
2994
+ class RollingUpgradePolicyArgs:
2995
+ def __init__(__self__, *,
2996
+ enable_cross_zone_upgrade: Optional[pulumi.Input[bool]] = None,
2997
+ max_batch_instance_percent: Optional[pulumi.Input[int]] = None,
2998
+ max_unhealthy_instance_percent: Optional[pulumi.Input[int]] = None,
2999
+ max_unhealthy_upgraded_instance_percent: Optional[pulumi.Input[int]] = None,
3000
+ pause_time_between_batches: Optional[pulumi.Input[str]] = None,
3001
+ prioritize_unhealthy_instances: Optional[pulumi.Input[bool]] = None,
3002
+ rollback_failed_instances_on_policy_breach: Optional[pulumi.Input[bool]] = None):
3003
+ """
3004
+ The configuration parameters used while performing a rolling upgrade.
3005
+ :param pulumi.Input[bool] enable_cross_zone_upgrade: Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size. If this field is not set, Azure Azure Batch will not set its default value. The value of enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be decided by the default configurations on VirtualMachineScaleSet. This field is able to be set to true or false only when using NodePlacementConfiguration as Zonal.
3006
+ :param pulumi.Input[int] max_batch_instance_percent: The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent.
3007
+ :param pulumi.Input[int] max_unhealthy_instance_percent: The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent.
3008
+ :param pulumi.Input[int] max_unhealthy_upgraded_instance_percent: The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The value of this field should be between 0 and 100, inclusive.
3009
+ :param pulumi.Input[str] pause_time_between_batches: The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format.
3010
+ :param pulumi.Input[bool] prioritize_unhealthy_instances: Upgrade all unhealthy instances in a scale set before any healthy instances.
3011
+ :param pulumi.Input[bool] rollback_failed_instances_on_policy_breach: Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
3012
+ """
3013
+ if enable_cross_zone_upgrade is not None:
3014
+ pulumi.set(__self__, "enable_cross_zone_upgrade", enable_cross_zone_upgrade)
3015
+ if max_batch_instance_percent is not None:
3016
+ pulumi.set(__self__, "max_batch_instance_percent", max_batch_instance_percent)
3017
+ if max_unhealthy_instance_percent is not None:
3018
+ pulumi.set(__self__, "max_unhealthy_instance_percent", max_unhealthy_instance_percent)
3019
+ if max_unhealthy_upgraded_instance_percent is not None:
3020
+ pulumi.set(__self__, "max_unhealthy_upgraded_instance_percent", max_unhealthy_upgraded_instance_percent)
3021
+ if pause_time_between_batches is not None:
3022
+ pulumi.set(__self__, "pause_time_between_batches", pause_time_between_batches)
3023
+ if prioritize_unhealthy_instances is not None:
3024
+ pulumi.set(__self__, "prioritize_unhealthy_instances", prioritize_unhealthy_instances)
3025
+ if rollback_failed_instances_on_policy_breach is not None:
3026
+ pulumi.set(__self__, "rollback_failed_instances_on_policy_breach", rollback_failed_instances_on_policy_breach)
3027
+
3028
+ @property
3029
+ @pulumi.getter(name="enableCrossZoneUpgrade")
3030
+ def enable_cross_zone_upgrade(self) -> Optional[pulumi.Input[bool]]:
3031
+ """
3032
+ Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size. If this field is not set, Azure Azure Batch will not set its default value. The value of enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be decided by the default configurations on VirtualMachineScaleSet. This field is able to be set to true or false only when using NodePlacementConfiguration as Zonal.
3033
+ """
3034
+ return pulumi.get(self, "enable_cross_zone_upgrade")
3035
+
3036
+ @enable_cross_zone_upgrade.setter
3037
+ def enable_cross_zone_upgrade(self, value: Optional[pulumi.Input[bool]]):
3038
+ pulumi.set(self, "enable_cross_zone_upgrade", value)
3039
+
3040
+ @property
3041
+ @pulumi.getter(name="maxBatchInstancePercent")
3042
+ def max_batch_instance_percent(self) -> Optional[pulumi.Input[int]]:
3043
+ """
3044
+ The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent.
3045
+ """
3046
+ return pulumi.get(self, "max_batch_instance_percent")
3047
+
3048
+ @max_batch_instance_percent.setter
3049
+ def max_batch_instance_percent(self, value: Optional[pulumi.Input[int]]):
3050
+ pulumi.set(self, "max_batch_instance_percent", value)
3051
+
3052
+ @property
3053
+ @pulumi.getter(name="maxUnhealthyInstancePercent")
3054
+ def max_unhealthy_instance_percent(self) -> Optional[pulumi.Input[int]]:
3055
+ """
3056
+ The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent.
3057
+ """
3058
+ return pulumi.get(self, "max_unhealthy_instance_percent")
3059
+
3060
+ @max_unhealthy_instance_percent.setter
3061
+ def max_unhealthy_instance_percent(self, value: Optional[pulumi.Input[int]]):
3062
+ pulumi.set(self, "max_unhealthy_instance_percent", value)
3063
+
3064
+ @property
3065
+ @pulumi.getter(name="maxUnhealthyUpgradedInstancePercent")
3066
+ def max_unhealthy_upgraded_instance_percent(self) -> Optional[pulumi.Input[int]]:
3067
+ """
3068
+ The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The value of this field should be between 0 and 100, inclusive.
3069
+ """
3070
+ return pulumi.get(self, "max_unhealthy_upgraded_instance_percent")
3071
+
3072
+ @max_unhealthy_upgraded_instance_percent.setter
3073
+ def max_unhealthy_upgraded_instance_percent(self, value: Optional[pulumi.Input[int]]):
3074
+ pulumi.set(self, "max_unhealthy_upgraded_instance_percent", value)
3075
+
3076
+ @property
3077
+ @pulumi.getter(name="pauseTimeBetweenBatches")
3078
+ def pause_time_between_batches(self) -> Optional[pulumi.Input[str]]:
3079
+ """
3080
+ The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format.
3081
+ """
3082
+ return pulumi.get(self, "pause_time_between_batches")
3083
+
3084
+ @pause_time_between_batches.setter
3085
+ def pause_time_between_batches(self, value: Optional[pulumi.Input[str]]):
3086
+ pulumi.set(self, "pause_time_between_batches", value)
3087
+
3088
+ @property
3089
+ @pulumi.getter(name="prioritizeUnhealthyInstances")
3090
+ def prioritize_unhealthy_instances(self) -> Optional[pulumi.Input[bool]]:
3091
+ """
3092
+ Upgrade all unhealthy instances in a scale set before any healthy instances.
3093
+ """
3094
+ return pulumi.get(self, "prioritize_unhealthy_instances")
3095
+
3096
+ @prioritize_unhealthy_instances.setter
3097
+ def prioritize_unhealthy_instances(self, value: Optional[pulumi.Input[bool]]):
3098
+ pulumi.set(self, "prioritize_unhealthy_instances", value)
3099
+
3100
+ @property
3101
+ @pulumi.getter(name="rollbackFailedInstancesOnPolicyBreach")
3102
+ def rollback_failed_instances_on_policy_breach(self) -> Optional[pulumi.Input[bool]]:
3103
+ """
3104
+ Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
3105
+ """
3106
+ return pulumi.get(self, "rollback_failed_instances_on_policy_breach")
3107
+
3108
+ @rollback_failed_instances_on_policy_breach.setter
3109
+ def rollback_failed_instances_on_policy_breach(self, value: Optional[pulumi.Input[bool]]):
3110
+ pulumi.set(self, "rollback_failed_instances_on_policy_breach", value)
3111
+
3112
+
3113
+ if not MYPY:
3114
+ class ScaleSettingsArgsDict(TypedDict):
3115
+ """
3116
+ Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes.
3117
+ """
3118
+ auto_scale: NotRequired[pulumi.Input['AutoScaleSettingsArgsDict']]
3119
+ """
3120
+ This property and fixedScale are mutually exclusive and one of the properties must be specified.
3121
+ """
3122
+ fixed_scale: NotRequired[pulumi.Input['FixedScaleSettingsArgsDict']]
3123
+ """
3124
+ This property and autoScale are mutually exclusive and one of the properties must be specified.
3125
+ """
3126
+ elif False:
3127
+ ScaleSettingsArgsDict: TypeAlias = Mapping[str, Any]
3128
+
3129
+ @pulumi.input_type
3130
+ class ScaleSettingsArgs:
3131
+ def __init__(__self__, *,
3132
+ auto_scale: Optional[pulumi.Input['AutoScaleSettingsArgs']] = None,
3133
+ fixed_scale: Optional[pulumi.Input['FixedScaleSettingsArgs']] = None):
3134
+ """
3135
+ Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes.
3136
+ :param pulumi.Input['AutoScaleSettingsArgs'] auto_scale: This property and fixedScale are mutually exclusive and one of the properties must be specified.
3137
+ :param pulumi.Input['FixedScaleSettingsArgs'] fixed_scale: This property and autoScale are mutually exclusive and one of the properties must be specified.
3138
+ """
3139
+ if auto_scale is not None:
3140
+ pulumi.set(__self__, "auto_scale", auto_scale)
3141
+ if fixed_scale is not None:
3142
+ pulumi.set(__self__, "fixed_scale", fixed_scale)
3143
+
3144
+ @property
3145
+ @pulumi.getter(name="autoScale")
3146
+ def auto_scale(self) -> Optional[pulumi.Input['AutoScaleSettingsArgs']]:
3147
+ """
3148
+ This property and fixedScale are mutually exclusive and one of the properties must be specified.
3149
+ """
3150
+ return pulumi.get(self, "auto_scale")
3151
+
3152
+ @auto_scale.setter
3153
+ def auto_scale(self, value: Optional[pulumi.Input['AutoScaleSettingsArgs']]):
3154
+ pulumi.set(self, "auto_scale", value)
3155
+
3156
+ @property
3157
+ @pulumi.getter(name="fixedScale")
3158
+ def fixed_scale(self) -> Optional[pulumi.Input['FixedScaleSettingsArgs']]:
3159
+ """
3160
+ This property and autoScale are mutually exclusive and one of the properties must be specified.
3161
+ """
3162
+ return pulumi.get(self, "fixed_scale")
3163
+
3164
+ @fixed_scale.setter
3165
+ def fixed_scale(self, value: Optional[pulumi.Input['FixedScaleSettingsArgs']]):
3166
+ pulumi.set(self, "fixed_scale", value)
3167
+
3168
+
3169
+ if not MYPY:
3170
+ class SecurityProfileArgsDict(TypedDict):
3171
+ """
3172
+ Specifies the security profile settings for the virtual machine or virtual machine scale set.
3173
+ """
3174
+ encryption_at_host: NotRequired[pulumi.Input[bool]]
3175
+ """
3176
+ This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.
3177
+ """
3178
+ security_type: NotRequired[pulumi.Input['SecurityTypes']]
3179
+ uefi_settings: NotRequired[pulumi.Input['UefiSettingsArgsDict']]
3180
+ """
3181
+ Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
3182
+ """
3183
+ elif False:
3184
+ SecurityProfileArgsDict: TypeAlias = Mapping[str, Any]
3185
+
3186
+ @pulumi.input_type
3187
+ class SecurityProfileArgs:
3188
+ def __init__(__self__, *,
3189
+ encryption_at_host: Optional[pulumi.Input[bool]] = None,
3190
+ security_type: Optional[pulumi.Input['SecurityTypes']] = None,
3191
+ uefi_settings: Optional[pulumi.Input['UefiSettingsArgs']] = None):
3192
+ """
3193
+ Specifies the security profile settings for the virtual machine or virtual machine scale set.
3194
+ :param pulumi.Input[bool] encryption_at_host: This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.
3195
+ :param pulumi.Input['UefiSettingsArgs'] uefi_settings: Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
3196
+ """
3197
+ if encryption_at_host is not None:
3198
+ pulumi.set(__self__, "encryption_at_host", encryption_at_host)
3199
+ if security_type is not None:
3200
+ pulumi.set(__self__, "security_type", security_type)
3201
+ if uefi_settings is not None:
3202
+ pulumi.set(__self__, "uefi_settings", uefi_settings)
3203
+
3204
+ @property
3205
+ @pulumi.getter(name="encryptionAtHost")
3206
+ def encryption_at_host(self) -> Optional[pulumi.Input[bool]]:
3207
+ """
3208
+ This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.
3209
+ """
3210
+ return pulumi.get(self, "encryption_at_host")
3211
+
3212
+ @encryption_at_host.setter
3213
+ def encryption_at_host(self, value: Optional[pulumi.Input[bool]]):
3214
+ pulumi.set(self, "encryption_at_host", value)
3215
+
3216
+ @property
3217
+ @pulumi.getter(name="securityType")
3218
+ def security_type(self) -> Optional[pulumi.Input['SecurityTypes']]:
3219
+ return pulumi.get(self, "security_type")
3220
+
3221
+ @security_type.setter
3222
+ def security_type(self, value: Optional[pulumi.Input['SecurityTypes']]):
3223
+ pulumi.set(self, "security_type", value)
3224
+
3225
+ @property
3226
+ @pulumi.getter(name="uefiSettings")
3227
+ def uefi_settings(self) -> Optional[pulumi.Input['UefiSettingsArgs']]:
3228
+ """
3229
+ Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
3230
+ """
3231
+ return pulumi.get(self, "uefi_settings")
3232
+
3233
+ @uefi_settings.setter
3234
+ def uefi_settings(self, value: Optional[pulumi.Input['UefiSettingsArgs']]):
3235
+ pulumi.set(self, "uefi_settings", value)
3236
+
3237
+
3238
+ if not MYPY:
3239
+ class ServiceArtifactReferenceArgsDict(TypedDict):
3240
+ """
3241
+ Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.
3242
+ """
3243
+ id: pulumi.Input[str]
3244
+ """
3245
+ The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
3246
+ """
3247
+ elif False:
3248
+ ServiceArtifactReferenceArgsDict: TypeAlias = Mapping[str, Any]
3249
+
3250
+ @pulumi.input_type
3251
+ class ServiceArtifactReferenceArgs:
3252
+ def __init__(__self__, *,
3253
+ id: pulumi.Input[str]):
3254
+ """
3255
+ Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.
3256
+ :param pulumi.Input[str] id: The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
3257
+ """
3258
+ pulumi.set(__self__, "id", id)
3259
+
3260
+ @property
3261
+ @pulumi.getter
3262
+ def id(self) -> pulumi.Input[str]:
3263
+ """
3264
+ The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
3265
+ """
3266
+ return pulumi.get(self, "id")
3267
+
3268
+ @id.setter
3269
+ def id(self, value: pulumi.Input[str]):
3270
+ pulumi.set(self, "id", value)
3271
+
3272
+
3273
+ if not MYPY:
3274
+ class StartTaskArgsDict(TypedDict):
3275
+ """
3276
+ In some cases the start task may be re-run even though the node was not rebooted. Due to this, start tasks should be idempotent and exit gracefully if the setup they're performing has already been done. Special care should be taken to avoid start tasks which create breakaway process or install/launch services from the start task working directory, as this will block Batch from being able to re-run the start task.
3277
+ """
3278
+ command_line: NotRequired[pulumi.Input[str]]
3279
+ """
3280
+ The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c MyCommand" in Linux. Required if any other properties of the startTask are specified.
3281
+ """
3282
+ container_settings: NotRequired[pulumi.Input['TaskContainerSettingsArgsDict']]
3283
+ """
3284
+ When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all task environment variables are mapped into the container, and the task command line is executed in the container.
3285
+ """
3286
+ environment_settings: NotRequired[pulumi.Input[Sequence[pulumi.Input['EnvironmentSettingArgsDict']]]]
3287
+ max_task_retry_count: NotRequired[pulumi.Input[int]]
3288
+ """
3289
+ The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit. Default is 0
3290
+ """
3291
+ resource_files: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResourceFileArgsDict']]]]
3292
+ user_identity: NotRequired[pulumi.Input['UserIdentityArgsDict']]
3293
+ """
3294
+ If omitted, the task runs as a non-administrative user unique to the task.
3295
+ """
3296
+ wait_for_success: NotRequired[pulumi.Input[bool]]
3297
+ """
3298
+ If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and scheduling error detail. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is true.
3299
+ """
3300
+ elif False:
3301
+ StartTaskArgsDict: TypeAlias = Mapping[str, Any]
3302
+
3303
+ @pulumi.input_type
3304
+ class StartTaskArgs:
3305
+ def __init__(__self__, *,
3306
+ command_line: Optional[pulumi.Input[str]] = None,
3307
+ container_settings: Optional[pulumi.Input['TaskContainerSettingsArgs']] = None,
3308
+ environment_settings: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentSettingArgs']]]] = None,
3309
+ max_task_retry_count: Optional[pulumi.Input[int]] = None,
3310
+ resource_files: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceFileArgs']]]] = None,
3311
+ user_identity: Optional[pulumi.Input['UserIdentityArgs']] = None,
3312
+ wait_for_success: Optional[pulumi.Input[bool]] = None):
3313
+ """
3314
+ In some cases the start task may be re-run even though the node was not rebooted. Due to this, start tasks should be idempotent and exit gracefully if the setup they're performing has already been done. Special care should be taken to avoid start tasks which create breakaway process or install/launch services from the start task working directory, as this will block Batch from being able to re-run the start task.
3315
+ :param pulumi.Input[str] command_line: The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c MyCommand" in Linux. Required if any other properties of the startTask are specified.
3316
+ :param pulumi.Input['TaskContainerSettingsArgs'] container_settings: When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all task environment variables are mapped into the container, and the task command line is executed in the container.
3317
+ :param pulumi.Input[int] max_task_retry_count: The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit. Default is 0
3318
+ :param pulumi.Input['UserIdentityArgs'] user_identity: If omitted, the task runs as a non-administrative user unique to the task.
3319
+ :param pulumi.Input[bool] wait_for_success: If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and scheduling error detail. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is true.
3320
+ """
3321
+ if command_line is not None:
3322
+ pulumi.set(__self__, "command_line", command_line)
3323
+ if container_settings is not None:
3324
+ pulumi.set(__self__, "container_settings", container_settings)
3325
+ if environment_settings is not None:
3326
+ pulumi.set(__self__, "environment_settings", environment_settings)
3327
+ if max_task_retry_count is None:
3328
+ max_task_retry_count = 0
3329
+ if max_task_retry_count is not None:
3330
+ pulumi.set(__self__, "max_task_retry_count", max_task_retry_count)
3331
+ if resource_files is not None:
3332
+ pulumi.set(__self__, "resource_files", resource_files)
3333
+ if user_identity is not None:
3334
+ pulumi.set(__self__, "user_identity", user_identity)
3335
+ if wait_for_success is not None:
3336
+ pulumi.set(__self__, "wait_for_success", wait_for_success)
3337
+
3338
+ @property
3339
+ @pulumi.getter(name="commandLine")
3340
+ def command_line(self) -> Optional[pulumi.Input[str]]:
3341
+ """
3342
+ The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c MyCommand" in Linux. Required if any other properties of the startTask are specified.
3343
+ """
3344
+ return pulumi.get(self, "command_line")
3345
+
3346
+ @command_line.setter
3347
+ def command_line(self, value: Optional[pulumi.Input[str]]):
3348
+ pulumi.set(self, "command_line", value)
3349
+
3350
+ @property
3351
+ @pulumi.getter(name="containerSettings")
3352
+ def container_settings(self) -> Optional[pulumi.Input['TaskContainerSettingsArgs']]:
3353
+ """
3354
+ When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all task environment variables are mapped into the container, and the task command line is executed in the container.
3355
+ """
3356
+ return pulumi.get(self, "container_settings")
3357
+
3358
+ @container_settings.setter
3359
+ def container_settings(self, value: Optional[pulumi.Input['TaskContainerSettingsArgs']]):
3360
+ pulumi.set(self, "container_settings", value)
3361
+
3362
+ @property
3363
+ @pulumi.getter(name="environmentSettings")
3364
+ def environment_settings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentSettingArgs']]]]:
3365
+ return pulumi.get(self, "environment_settings")
3366
+
3367
+ @environment_settings.setter
3368
+ def environment_settings(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentSettingArgs']]]]):
3369
+ pulumi.set(self, "environment_settings", value)
3370
+
3371
+ @property
3372
+ @pulumi.getter(name="maxTaskRetryCount")
3373
+ def max_task_retry_count(self) -> Optional[pulumi.Input[int]]:
3374
+ """
3375
+ The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit. Default is 0
3376
+ """
3377
+ return pulumi.get(self, "max_task_retry_count")
3378
+
3379
+ @max_task_retry_count.setter
3380
+ def max_task_retry_count(self, value: Optional[pulumi.Input[int]]):
3381
+ pulumi.set(self, "max_task_retry_count", value)
3382
+
3383
+ @property
3384
+ @pulumi.getter(name="resourceFiles")
3385
+ def resource_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceFileArgs']]]]:
3386
+ return pulumi.get(self, "resource_files")
3387
+
3388
+ @resource_files.setter
3389
+ def resource_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceFileArgs']]]]):
3390
+ pulumi.set(self, "resource_files", value)
3391
+
3392
+ @property
3393
+ @pulumi.getter(name="userIdentity")
3394
+ def user_identity(self) -> Optional[pulumi.Input['UserIdentityArgs']]:
3395
+ """
3396
+ If omitted, the task runs as a non-administrative user unique to the task.
3397
+ """
3398
+ return pulumi.get(self, "user_identity")
3399
+
3400
+ @user_identity.setter
3401
+ def user_identity(self, value: Optional[pulumi.Input['UserIdentityArgs']]):
3402
+ pulumi.set(self, "user_identity", value)
3403
+
3404
+ @property
3405
+ @pulumi.getter(name="waitForSuccess")
3406
+ def wait_for_success(self) -> Optional[pulumi.Input[bool]]:
3407
+ """
3408
+ If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and scheduling error detail. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is true.
3409
+ """
3410
+ return pulumi.get(self, "wait_for_success")
3411
+
3412
+ @wait_for_success.setter
3413
+ def wait_for_success(self, value: Optional[pulumi.Input[bool]]):
3414
+ pulumi.set(self, "wait_for_success", value)
3415
+
3416
+
3417
+ if not MYPY:
3418
+ class TaskContainerSettingsArgsDict(TypedDict):
3419
+ image_name: pulumi.Input[str]
3420
+ """
3421
+ This is the full image reference, as would be specified to "docker pull". If no tag is provided as part of the image name, the tag ":latest" is used as a default.
3422
+ """
3423
+ container_host_batch_bind_mounts: NotRequired[pulumi.Input[Sequence[pulumi.Input['ContainerHostBatchBindMountEntryArgsDict']]]]
3424
+ """
3425
+ If this array is null or be not present, container task will mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It won't' mount any data paths into container if this array is set as empty.
3426
+ """
3427
+ container_run_options: NotRequired[pulumi.Input[str]]
3428
+ """
3429
+ These additional options are supplied as arguments to the "docker create" command, in addition to those controlled by the Batch Service.
3430
+ """
3431
+ registry: NotRequired[pulumi.Input['ContainerRegistryArgsDict']]
3432
+ """
3433
+ This setting can be omitted if was already provided at pool creation.
3434
+ """
3435
+ working_directory: NotRequired[pulumi.Input['ContainerWorkingDirectory']]
3436
+ elif False:
3437
+ TaskContainerSettingsArgsDict: TypeAlias = Mapping[str, Any]
3438
+
3439
+ @pulumi.input_type
3440
+ class TaskContainerSettingsArgs:
3441
+ def __init__(__self__, *,
3442
+ image_name: pulumi.Input[str],
3443
+ container_host_batch_bind_mounts: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostBatchBindMountEntryArgs']]]] = None,
3444
+ container_run_options: Optional[pulumi.Input[str]] = None,
3445
+ registry: Optional[pulumi.Input['ContainerRegistryArgs']] = None,
3446
+ working_directory: Optional[pulumi.Input['ContainerWorkingDirectory']] = None):
3447
+ """
3448
+ :param pulumi.Input[str] image_name: This is the full image reference, as would be specified to "docker pull". If no tag is provided as part of the image name, the tag ":latest" is used as a default.
3449
+ :param pulumi.Input[Sequence[pulumi.Input['ContainerHostBatchBindMountEntryArgs']]] container_host_batch_bind_mounts: If this array is null or be not present, container task will mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It won't' mount any data paths into container if this array is set as empty.
3450
+ :param pulumi.Input[str] container_run_options: These additional options are supplied as arguments to the "docker create" command, in addition to those controlled by the Batch Service.
3451
+ :param pulumi.Input['ContainerRegistryArgs'] registry: This setting can be omitted if was already provided at pool creation.
3452
+ """
3453
+ pulumi.set(__self__, "image_name", image_name)
3454
+ if container_host_batch_bind_mounts is not None:
3455
+ pulumi.set(__self__, "container_host_batch_bind_mounts", container_host_batch_bind_mounts)
3456
+ if container_run_options is not None:
3457
+ pulumi.set(__self__, "container_run_options", container_run_options)
3458
+ if registry is not None:
3459
+ pulumi.set(__self__, "registry", registry)
3460
+ if working_directory is not None:
3461
+ pulumi.set(__self__, "working_directory", working_directory)
3462
+
3463
+ @property
3464
+ @pulumi.getter(name="imageName")
3465
+ def image_name(self) -> pulumi.Input[str]:
3466
+ """
3467
+ This is the full image reference, as would be specified to "docker pull". If no tag is provided as part of the image name, the tag ":latest" is used as a default.
3468
+ """
3469
+ return pulumi.get(self, "image_name")
3470
+
3471
+ @image_name.setter
3472
+ def image_name(self, value: pulumi.Input[str]):
3473
+ pulumi.set(self, "image_name", value)
3474
+
3475
+ @property
3476
+ @pulumi.getter(name="containerHostBatchBindMounts")
3477
+ def container_host_batch_bind_mounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostBatchBindMountEntryArgs']]]]:
3478
+ """
3479
+ If this array is null or be not present, container task will mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It won't' mount any data paths into container if this array is set as empty.
3480
+ """
3481
+ return pulumi.get(self, "container_host_batch_bind_mounts")
3482
+
3483
+ @container_host_batch_bind_mounts.setter
3484
+ def container_host_batch_bind_mounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostBatchBindMountEntryArgs']]]]):
3485
+ pulumi.set(self, "container_host_batch_bind_mounts", value)
3486
+
3487
+ @property
3488
+ @pulumi.getter(name="containerRunOptions")
3489
+ def container_run_options(self) -> Optional[pulumi.Input[str]]:
3490
+ """
3491
+ These additional options are supplied as arguments to the "docker create" command, in addition to those controlled by the Batch Service.
3492
+ """
3493
+ return pulumi.get(self, "container_run_options")
3494
+
3495
+ @container_run_options.setter
3496
+ def container_run_options(self, value: Optional[pulumi.Input[str]]):
3497
+ pulumi.set(self, "container_run_options", value)
3498
+
3499
+ @property
3500
+ @pulumi.getter
3501
+ def registry(self) -> Optional[pulumi.Input['ContainerRegistryArgs']]:
3502
+ """
3503
+ This setting can be omitted if was already provided at pool creation.
3504
+ """
3505
+ return pulumi.get(self, "registry")
3506
+
3507
+ @registry.setter
3508
+ def registry(self, value: Optional[pulumi.Input['ContainerRegistryArgs']]):
3509
+ pulumi.set(self, "registry", value)
3510
+
3511
+ @property
3512
+ @pulumi.getter(name="workingDirectory")
3513
+ def working_directory(self) -> Optional[pulumi.Input['ContainerWorkingDirectory']]:
3514
+ return pulumi.get(self, "working_directory")
3515
+
3516
+ @working_directory.setter
3517
+ def working_directory(self, value: Optional[pulumi.Input['ContainerWorkingDirectory']]):
3518
+ pulumi.set(self, "working_directory", value)
3519
+
3520
+
3521
+ if not MYPY:
3522
+ class TaskSchedulingPolicyArgsDict(TypedDict):
3523
+ node_fill_type: pulumi.Input['ComputeNodeFillType']
3524
+ elif False:
3525
+ TaskSchedulingPolicyArgsDict: TypeAlias = Mapping[str, Any]
3526
+
3527
+ @pulumi.input_type
3528
+ class TaskSchedulingPolicyArgs:
3529
+ def __init__(__self__, *,
3530
+ node_fill_type: Optional[pulumi.Input['ComputeNodeFillType']] = None):
3531
+ if node_fill_type is None:
3532
+ node_fill_type = 'Spread'
3533
+ pulumi.set(__self__, "node_fill_type", node_fill_type)
3534
+
3535
+ @property
3536
+ @pulumi.getter(name="nodeFillType")
3537
+ def node_fill_type(self) -> pulumi.Input['ComputeNodeFillType']:
3538
+ return pulumi.get(self, "node_fill_type")
3539
+
3540
+ @node_fill_type.setter
3541
+ def node_fill_type(self, value: pulumi.Input['ComputeNodeFillType']):
3542
+ pulumi.set(self, "node_fill_type", value)
3543
+
3544
+
3545
+ if not MYPY:
3546
+ class UefiSettingsArgsDict(TypedDict):
3547
+ """
3548
+ Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
3549
+ """
3550
+ secure_boot_enabled: NotRequired[pulumi.Input[bool]]
3551
+ """
3552
+ Specifies whether secure boot should be enabled on the virtual machine.
3553
+ """
3554
+ v_tpm_enabled: NotRequired[pulumi.Input[bool]]
3555
+ """
3556
+ Specifies whether vTPM should be enabled on the virtual machine.
3557
+ """
3558
+ elif False:
3559
+ UefiSettingsArgsDict: TypeAlias = Mapping[str, Any]
3560
+
3561
+ @pulumi.input_type
3562
+ class UefiSettingsArgs:
3563
+ def __init__(__self__, *,
3564
+ secure_boot_enabled: Optional[pulumi.Input[bool]] = None,
3565
+ v_tpm_enabled: Optional[pulumi.Input[bool]] = None):
3566
+ """
3567
+ Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
3568
+ :param pulumi.Input[bool] secure_boot_enabled: Specifies whether secure boot should be enabled on the virtual machine.
3569
+ :param pulumi.Input[bool] v_tpm_enabled: Specifies whether vTPM should be enabled on the virtual machine.
3570
+ """
3571
+ if secure_boot_enabled is not None:
3572
+ pulumi.set(__self__, "secure_boot_enabled", secure_boot_enabled)
3573
+ if v_tpm_enabled is not None:
3574
+ pulumi.set(__self__, "v_tpm_enabled", v_tpm_enabled)
3575
+
3576
+ @property
3577
+ @pulumi.getter(name="secureBootEnabled")
3578
+ def secure_boot_enabled(self) -> Optional[pulumi.Input[bool]]:
3579
+ """
3580
+ Specifies whether secure boot should be enabled on the virtual machine.
3581
+ """
3582
+ return pulumi.get(self, "secure_boot_enabled")
3583
+
3584
+ @secure_boot_enabled.setter
3585
+ def secure_boot_enabled(self, value: Optional[pulumi.Input[bool]]):
3586
+ pulumi.set(self, "secure_boot_enabled", value)
3587
+
3588
+ @property
3589
+ @pulumi.getter(name="vTpmEnabled")
3590
+ def v_tpm_enabled(self) -> Optional[pulumi.Input[bool]]:
3591
+ """
3592
+ Specifies whether vTPM should be enabled on the virtual machine.
3593
+ """
3594
+ return pulumi.get(self, "v_tpm_enabled")
3595
+
3596
+ @v_tpm_enabled.setter
3597
+ def v_tpm_enabled(self, value: Optional[pulumi.Input[bool]]):
3598
+ pulumi.set(self, "v_tpm_enabled", value)
3599
+
3600
+
3601
+ if not MYPY:
3602
+ class UpgradePolicyArgsDict(TypedDict):
3603
+ """
3604
+ Describes an upgrade policy - automatic, manual, or rolling.
3605
+ """
3606
+ mode: pulumi.Input['UpgradeMode']
3607
+ automatic_os_upgrade_policy: NotRequired[pulumi.Input['AutomaticOSUpgradePolicyArgsDict']]
3608
+ """
3609
+ The configuration parameters used for performing automatic OS upgrade.
3610
+ """
3611
+ rolling_upgrade_policy: NotRequired[pulumi.Input['RollingUpgradePolicyArgsDict']]
3612
+ """
3613
+ The configuration parameters used while performing a rolling upgrade.
3614
+ """
3615
+ elif False:
3616
+ UpgradePolicyArgsDict: TypeAlias = Mapping[str, Any]
3617
+
3618
+ @pulumi.input_type
3619
+ class UpgradePolicyArgs:
3620
+ def __init__(__self__, *,
3621
+ mode: pulumi.Input['UpgradeMode'],
3622
+ automatic_os_upgrade_policy: Optional[pulumi.Input['AutomaticOSUpgradePolicyArgs']] = None,
3623
+ rolling_upgrade_policy: Optional[pulumi.Input['RollingUpgradePolicyArgs']] = None):
3624
+ """
3625
+ Describes an upgrade policy - automatic, manual, or rolling.
3626
+ :param pulumi.Input['AutomaticOSUpgradePolicyArgs'] automatic_os_upgrade_policy: The configuration parameters used for performing automatic OS upgrade.
3627
+ :param pulumi.Input['RollingUpgradePolicyArgs'] rolling_upgrade_policy: The configuration parameters used while performing a rolling upgrade.
3628
+ """
3629
+ pulumi.set(__self__, "mode", mode)
3630
+ if automatic_os_upgrade_policy is not None:
3631
+ pulumi.set(__self__, "automatic_os_upgrade_policy", automatic_os_upgrade_policy)
3632
+ if rolling_upgrade_policy is not None:
3633
+ pulumi.set(__self__, "rolling_upgrade_policy", rolling_upgrade_policy)
3634
+
3635
+ @property
3636
+ @pulumi.getter
3637
+ def mode(self) -> pulumi.Input['UpgradeMode']:
3638
+ return pulumi.get(self, "mode")
3639
+
3640
+ @mode.setter
3641
+ def mode(self, value: pulumi.Input['UpgradeMode']):
3642
+ pulumi.set(self, "mode", value)
3643
+
3644
+ @property
3645
+ @pulumi.getter(name="automaticOSUpgradePolicy")
3646
+ def automatic_os_upgrade_policy(self) -> Optional[pulumi.Input['AutomaticOSUpgradePolicyArgs']]:
3647
+ """
3648
+ The configuration parameters used for performing automatic OS upgrade.
3649
+ """
3650
+ return pulumi.get(self, "automatic_os_upgrade_policy")
3651
+
3652
+ @automatic_os_upgrade_policy.setter
3653
+ def automatic_os_upgrade_policy(self, value: Optional[pulumi.Input['AutomaticOSUpgradePolicyArgs']]):
3654
+ pulumi.set(self, "automatic_os_upgrade_policy", value)
3655
+
3656
+ @property
3657
+ @pulumi.getter(name="rollingUpgradePolicy")
3658
+ def rolling_upgrade_policy(self) -> Optional[pulumi.Input['RollingUpgradePolicyArgs']]:
3659
+ """
3660
+ The configuration parameters used while performing a rolling upgrade.
3661
+ """
3662
+ return pulumi.get(self, "rolling_upgrade_policy")
3663
+
3664
+ @rolling_upgrade_policy.setter
3665
+ def rolling_upgrade_policy(self, value: Optional[pulumi.Input['RollingUpgradePolicyArgs']]):
3666
+ pulumi.set(self, "rolling_upgrade_policy", value)
3667
+
3668
+
3669
+ if not MYPY:
3670
+ class UserAccountArgsDict(TypedDict):
3671
+ name: pulumi.Input[str]
3672
+ password: pulumi.Input[str]
3673
+ elevation_level: NotRequired[pulumi.Input['ElevationLevel']]
3674
+ """
3675
+ nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin.
3676
+ """
3677
+ linux_user_configuration: NotRequired[pulumi.Input['LinuxUserConfigurationArgsDict']]
3678
+ """
3679
+ This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options.
3680
+ """
3681
+ windows_user_configuration: NotRequired[pulumi.Input['WindowsUserConfigurationArgsDict']]
3682
+ """
3683
+ This property can only be specified if the user is on a Windows pool. If not specified and on a Windows pool, the user is created with the default options.
3684
+ """
3685
+ elif False:
3686
+ UserAccountArgsDict: TypeAlias = Mapping[str, Any]
3687
+
3688
+ @pulumi.input_type
3689
+ class UserAccountArgs:
3690
+ def __init__(__self__, *,
3691
+ name: pulumi.Input[str],
3692
+ password: pulumi.Input[str],
3693
+ elevation_level: Optional[pulumi.Input['ElevationLevel']] = None,
3694
+ linux_user_configuration: Optional[pulumi.Input['LinuxUserConfigurationArgs']] = None,
3695
+ windows_user_configuration: Optional[pulumi.Input['WindowsUserConfigurationArgs']] = None):
3696
+ """
3697
+ :param pulumi.Input['ElevationLevel'] elevation_level: nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin.
3698
+ :param pulumi.Input['LinuxUserConfigurationArgs'] linux_user_configuration: This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options.
3699
+ :param pulumi.Input['WindowsUserConfigurationArgs'] windows_user_configuration: This property can only be specified if the user is on a Windows pool. If not specified and on a Windows pool, the user is created with the default options.
3700
+ """
3701
+ pulumi.set(__self__, "name", name)
3702
+ pulumi.set(__self__, "password", password)
3703
+ if elevation_level is not None:
3704
+ pulumi.set(__self__, "elevation_level", elevation_level)
3705
+ if linux_user_configuration is not None:
3706
+ pulumi.set(__self__, "linux_user_configuration", linux_user_configuration)
3707
+ if windows_user_configuration is not None:
3708
+ pulumi.set(__self__, "windows_user_configuration", windows_user_configuration)
3709
+
3710
+ @property
3711
+ @pulumi.getter
3712
+ def name(self) -> pulumi.Input[str]:
3713
+ return pulumi.get(self, "name")
3714
+
3715
+ @name.setter
3716
+ def name(self, value: pulumi.Input[str]):
3717
+ pulumi.set(self, "name", value)
3718
+
3719
+ @property
3720
+ @pulumi.getter
3721
+ def password(self) -> pulumi.Input[str]:
3722
+ return pulumi.get(self, "password")
3723
+
3724
+ @password.setter
3725
+ def password(self, value: pulumi.Input[str]):
3726
+ pulumi.set(self, "password", value)
3727
+
3728
+ @property
3729
+ @pulumi.getter(name="elevationLevel")
3730
+ def elevation_level(self) -> Optional[pulumi.Input['ElevationLevel']]:
3731
+ """
3732
+ nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin.
3733
+ """
3734
+ return pulumi.get(self, "elevation_level")
3735
+
3736
+ @elevation_level.setter
3737
+ def elevation_level(self, value: Optional[pulumi.Input['ElevationLevel']]):
3738
+ pulumi.set(self, "elevation_level", value)
3739
+
3740
+ @property
3741
+ @pulumi.getter(name="linuxUserConfiguration")
3742
+ def linux_user_configuration(self) -> Optional[pulumi.Input['LinuxUserConfigurationArgs']]:
3743
+ """
3744
+ This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options.
3745
+ """
3746
+ return pulumi.get(self, "linux_user_configuration")
3747
+
3748
+ @linux_user_configuration.setter
3749
+ def linux_user_configuration(self, value: Optional[pulumi.Input['LinuxUserConfigurationArgs']]):
3750
+ pulumi.set(self, "linux_user_configuration", value)
3751
+
3752
+ @property
3753
+ @pulumi.getter(name="windowsUserConfiguration")
3754
+ def windows_user_configuration(self) -> Optional[pulumi.Input['WindowsUserConfigurationArgs']]:
3755
+ """
3756
+ This property can only be specified if the user is on a Windows pool. If not specified and on a Windows pool, the user is created with the default options.
3757
+ """
3758
+ return pulumi.get(self, "windows_user_configuration")
3759
+
3760
+ @windows_user_configuration.setter
3761
+ def windows_user_configuration(self, value: Optional[pulumi.Input['WindowsUserConfigurationArgs']]):
3762
+ pulumi.set(self, "windows_user_configuration", value)
3763
+
3764
+
3765
+ if not MYPY:
3766
+ class UserIdentityArgsDict(TypedDict):
3767
+ """
3768
+ Specify either the userName or autoUser property, but not both.
3769
+ """
3770
+ auto_user: NotRequired[pulumi.Input['AutoUserSpecificationArgsDict']]
3771
+ """
3772
+ The userName and autoUser properties are mutually exclusive; you must specify one but not both.
3773
+ """
3774
+ user_name: NotRequired[pulumi.Input[str]]
3775
+ """
3776
+ The userName and autoUser properties are mutually exclusive; you must specify one but not both.
3777
+ """
3778
+ elif False:
3779
+ UserIdentityArgsDict: TypeAlias = Mapping[str, Any]
3780
+
3781
+ @pulumi.input_type
3782
+ class UserIdentityArgs:
3783
+ def __init__(__self__, *,
3784
+ auto_user: Optional[pulumi.Input['AutoUserSpecificationArgs']] = None,
3785
+ user_name: Optional[pulumi.Input[str]] = None):
3786
+ """
3787
+ Specify either the userName or autoUser property, but not both.
3788
+ :param pulumi.Input['AutoUserSpecificationArgs'] auto_user: The userName and autoUser properties are mutually exclusive; you must specify one but not both.
3789
+ :param pulumi.Input[str] user_name: The userName and autoUser properties are mutually exclusive; you must specify one but not both.
3790
+ """
3791
+ if auto_user is not None:
3792
+ pulumi.set(__self__, "auto_user", auto_user)
3793
+ if user_name is not None:
3794
+ pulumi.set(__self__, "user_name", user_name)
3795
+
3796
+ @property
3797
+ @pulumi.getter(name="autoUser")
3798
+ def auto_user(self) -> Optional[pulumi.Input['AutoUserSpecificationArgs']]:
3799
+ """
3800
+ The userName and autoUser properties are mutually exclusive; you must specify one but not both.
3801
+ """
3802
+ return pulumi.get(self, "auto_user")
3803
+
3804
+ @auto_user.setter
3805
+ def auto_user(self, value: Optional[pulumi.Input['AutoUserSpecificationArgs']]):
3806
+ pulumi.set(self, "auto_user", value)
3807
+
3808
+ @property
3809
+ @pulumi.getter(name="userName")
3810
+ def user_name(self) -> Optional[pulumi.Input[str]]:
3811
+ """
3812
+ The userName and autoUser properties are mutually exclusive; you must specify one but not both.
3813
+ """
3814
+ return pulumi.get(self, "user_name")
3815
+
3816
+ @user_name.setter
3817
+ def user_name(self, value: Optional[pulumi.Input[str]]):
3818
+ pulumi.set(self, "user_name", value)
3819
+
3820
+
3821
+ if not MYPY:
3822
+ class VMDiskSecurityProfileArgsDict(TypedDict):
3823
+ """
3824
+ Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs.
3825
+ """
3826
+ security_encryption_type: NotRequired[pulumi.Input[Union[str, 'SecurityEncryptionTypes']]]
3827
+ elif False:
3828
+ VMDiskSecurityProfileArgsDict: TypeAlias = Mapping[str, Any]
3829
+
3830
+ @pulumi.input_type
3831
+ class VMDiskSecurityProfileArgs:
3832
+ def __init__(__self__, *,
3833
+ security_encryption_type: Optional[pulumi.Input[Union[str, 'SecurityEncryptionTypes']]] = None):
3834
+ """
3835
+ Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs.
3836
+ """
3837
+ if security_encryption_type is not None:
3838
+ pulumi.set(__self__, "security_encryption_type", security_encryption_type)
3839
+
3840
+ @property
3841
+ @pulumi.getter(name="securityEncryptionType")
3842
+ def security_encryption_type(self) -> Optional[pulumi.Input[Union[str, 'SecurityEncryptionTypes']]]:
3843
+ return pulumi.get(self, "security_encryption_type")
3844
+
3845
+ @security_encryption_type.setter
3846
+ def security_encryption_type(self, value: Optional[pulumi.Input[Union[str, 'SecurityEncryptionTypes']]]):
3847
+ pulumi.set(self, "security_encryption_type", value)
3848
+
3849
+
3850
+ if not MYPY:
3851
+ class VMExtensionArgsDict(TypedDict):
3852
+ name: pulumi.Input[str]
3853
+ publisher: pulumi.Input[str]
3854
+ type: pulumi.Input[str]
3855
+ auto_upgrade_minor_version: NotRequired[pulumi.Input[bool]]
3856
+ """
3857
+ Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
3858
+ """
3859
+ enable_automatic_upgrade: NotRequired[pulumi.Input[bool]]
3860
+ """
3861
+ Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
3862
+ """
3863
+ protected_settings: NotRequired[Any]
3864
+ """
3865
+ The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
3866
+ """
3867
+ provision_after_extensions: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3868
+ """
3869
+ Collection of extension names after which this extension needs to be provisioned.
3870
+ """
3871
+ settings: NotRequired[Any]
3872
+ type_handler_version: NotRequired[pulumi.Input[str]]
3873
+ elif False:
3874
+ VMExtensionArgsDict: TypeAlias = Mapping[str, Any]
3875
+
3876
+ @pulumi.input_type
3877
+ class VMExtensionArgs:
3878
+ def __init__(__self__, *,
3879
+ name: pulumi.Input[str],
3880
+ publisher: pulumi.Input[str],
3881
+ type: pulumi.Input[str],
3882
+ auto_upgrade_minor_version: Optional[pulumi.Input[bool]] = None,
3883
+ enable_automatic_upgrade: Optional[pulumi.Input[bool]] = None,
3884
+ protected_settings: Optional[Any] = None,
3885
+ provision_after_extensions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3886
+ settings: Optional[Any] = None,
3887
+ type_handler_version: Optional[pulumi.Input[str]] = None):
3888
+ """
3889
+ :param pulumi.Input[bool] auto_upgrade_minor_version: Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
3890
+ :param pulumi.Input[bool] enable_automatic_upgrade: Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
3891
+ :param Any protected_settings: The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
3892
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] provision_after_extensions: Collection of extension names after which this extension needs to be provisioned.
3893
+ """
3894
+ pulumi.set(__self__, "name", name)
3895
+ pulumi.set(__self__, "publisher", publisher)
3896
+ pulumi.set(__self__, "type", type)
3897
+ if auto_upgrade_minor_version is not None:
3898
+ pulumi.set(__self__, "auto_upgrade_minor_version", auto_upgrade_minor_version)
3899
+ if enable_automatic_upgrade is not None:
3900
+ pulumi.set(__self__, "enable_automatic_upgrade", enable_automatic_upgrade)
3901
+ if protected_settings is not None:
3902
+ pulumi.set(__self__, "protected_settings", protected_settings)
3903
+ if provision_after_extensions is not None:
3904
+ pulumi.set(__self__, "provision_after_extensions", provision_after_extensions)
3905
+ if settings is not None:
3906
+ pulumi.set(__self__, "settings", settings)
3907
+ if type_handler_version is not None:
3908
+ pulumi.set(__self__, "type_handler_version", type_handler_version)
3909
+
3910
+ @property
3911
+ @pulumi.getter
3912
+ def name(self) -> pulumi.Input[str]:
3913
+ return pulumi.get(self, "name")
3914
+
3915
+ @name.setter
3916
+ def name(self, value: pulumi.Input[str]):
3917
+ pulumi.set(self, "name", value)
3918
+
3919
+ @property
3920
+ @pulumi.getter
3921
+ def publisher(self) -> pulumi.Input[str]:
3922
+ return pulumi.get(self, "publisher")
3923
+
3924
+ @publisher.setter
3925
+ def publisher(self, value: pulumi.Input[str]):
3926
+ pulumi.set(self, "publisher", value)
3927
+
3928
+ @property
3929
+ @pulumi.getter
3930
+ def type(self) -> pulumi.Input[str]:
3931
+ return pulumi.get(self, "type")
3932
+
3933
+ @type.setter
3934
+ def type(self, value: pulumi.Input[str]):
3935
+ pulumi.set(self, "type", value)
3936
+
3937
+ @property
3938
+ @pulumi.getter(name="autoUpgradeMinorVersion")
3939
+ def auto_upgrade_minor_version(self) -> Optional[pulumi.Input[bool]]:
3940
+ """
3941
+ Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
3942
+ """
3943
+ return pulumi.get(self, "auto_upgrade_minor_version")
3944
+
3945
+ @auto_upgrade_minor_version.setter
3946
+ def auto_upgrade_minor_version(self, value: Optional[pulumi.Input[bool]]):
3947
+ pulumi.set(self, "auto_upgrade_minor_version", value)
3948
+
3949
+ @property
3950
+ @pulumi.getter(name="enableAutomaticUpgrade")
3951
+ def enable_automatic_upgrade(self) -> Optional[pulumi.Input[bool]]:
3952
+ """
3953
+ Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
3954
+ """
3955
+ return pulumi.get(self, "enable_automatic_upgrade")
3956
+
3957
+ @enable_automatic_upgrade.setter
3958
+ def enable_automatic_upgrade(self, value: Optional[pulumi.Input[bool]]):
3959
+ pulumi.set(self, "enable_automatic_upgrade", value)
3960
+
3961
+ @property
3962
+ @pulumi.getter(name="protectedSettings")
3963
+ def protected_settings(self) -> Optional[Any]:
3964
+ """
3965
+ The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
3966
+ """
3967
+ return pulumi.get(self, "protected_settings")
3968
+
3969
+ @protected_settings.setter
3970
+ def protected_settings(self, value: Optional[Any]):
3971
+ pulumi.set(self, "protected_settings", value)
3972
+
3973
+ @property
3974
+ @pulumi.getter(name="provisionAfterExtensions")
3975
+ def provision_after_extensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
3976
+ """
3977
+ Collection of extension names after which this extension needs to be provisioned.
3978
+ """
3979
+ return pulumi.get(self, "provision_after_extensions")
3980
+
3981
+ @provision_after_extensions.setter
3982
+ def provision_after_extensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
3983
+ pulumi.set(self, "provision_after_extensions", value)
3984
+
3985
+ @property
3986
+ @pulumi.getter
3987
+ def settings(self) -> Optional[Any]:
3988
+ return pulumi.get(self, "settings")
3989
+
3990
+ @settings.setter
3991
+ def settings(self, value: Optional[Any]):
3992
+ pulumi.set(self, "settings", value)
3993
+
3994
+ @property
3995
+ @pulumi.getter(name="typeHandlerVersion")
3996
+ def type_handler_version(self) -> Optional[pulumi.Input[str]]:
3997
+ return pulumi.get(self, "type_handler_version")
3998
+
3999
+ @type_handler_version.setter
4000
+ def type_handler_version(self, value: Optional[pulumi.Input[str]]):
4001
+ pulumi.set(self, "type_handler_version", value)
4002
+
4003
+
4004
+ if not MYPY:
4005
+ class VirtualMachineConfigurationArgsDict(TypedDict):
4006
+ image_reference: pulumi.Input['ImageReferenceArgsDict']
4007
+ node_agent_sku_id: pulumi.Input[str]
4008
+ """
4009
+ The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation.
4010
+ """
4011
+ container_configuration: NotRequired[pulumi.Input['ContainerConfigurationArgsDict']]
4012
+ """
4013
+ If specified, setup is performed on each node in the pool to allow tasks to run in containers. All regular tasks and job manager tasks run on this pool must specify the containerSettings property, and all other tasks may specify it.
4014
+ """
4015
+ data_disks: NotRequired[pulumi.Input[Sequence[pulumi.Input['DataDiskArgsDict']]]]
4016
+ """
4017
+ This property must be specified if the compute nodes in the pool need to have empty data disks attached to them.
4018
+ """
4019
+ disk_encryption_configuration: NotRequired[pulumi.Input['DiskEncryptionConfigurationArgsDict']]
4020
+ """
4021
+ If specified, encryption is performed on each node in the pool during node provisioning.
4022
+ """
4023
+ extensions: NotRequired[pulumi.Input[Sequence[pulumi.Input['VMExtensionArgsDict']]]]
4024
+ """
4025
+ If specified, the extensions mentioned in this configuration will be installed on each node.
4026
+ """
4027
+ license_type: NotRequired[pulumi.Input[str]]
4028
+ """
4029
+ This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are:
4030
+
4031
+ Windows_Server - The on-premises license is for Windows Server.
4032
+ Windows_Client - The on-premises license is for Windows Client.
4033
+ """
4034
+ node_placement_configuration: NotRequired[pulumi.Input['NodePlacementConfigurationArgsDict']]
4035
+ """
4036
+ This configuration will specify rules on how nodes in the pool will be physically allocated.
4037
+ """
4038
+ os_disk: NotRequired[pulumi.Input['OSDiskArgsDict']]
4039
+ """
4040
+ Contains configuration for ephemeral OSDisk settings.
4041
+ """
4042
+ security_profile: NotRequired[pulumi.Input['SecurityProfileArgsDict']]
4043
+ """
4044
+ Specifies the security profile settings for the virtual machine or virtual machine scale set.
4045
+ """
4046
+ service_artifact_reference: NotRequired[pulumi.Input['ServiceArtifactReferenceArgsDict']]
4047
+ """
4048
+ The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
4049
+ """
4050
+ windows_configuration: NotRequired[pulumi.Input['WindowsConfigurationArgsDict']]
4051
+ """
4052
+ This property must not be specified if the imageReference specifies a Linux OS image.
4053
+ """
4054
+ elif False:
4055
+ VirtualMachineConfigurationArgsDict: TypeAlias = Mapping[str, Any]
4056
+
4057
+ @pulumi.input_type
4058
+ class VirtualMachineConfigurationArgs:
4059
+ def __init__(__self__, *,
4060
+ image_reference: pulumi.Input['ImageReferenceArgs'],
4061
+ node_agent_sku_id: pulumi.Input[str],
4062
+ container_configuration: Optional[pulumi.Input['ContainerConfigurationArgs']] = None,
4063
+ data_disks: Optional[pulumi.Input[Sequence[pulumi.Input['DataDiskArgs']]]] = None,
4064
+ disk_encryption_configuration: Optional[pulumi.Input['DiskEncryptionConfigurationArgs']] = None,
4065
+ extensions: Optional[pulumi.Input[Sequence[pulumi.Input['VMExtensionArgs']]]] = None,
4066
+ license_type: Optional[pulumi.Input[str]] = None,
4067
+ node_placement_configuration: Optional[pulumi.Input['NodePlacementConfigurationArgs']] = None,
4068
+ os_disk: Optional[pulumi.Input['OSDiskArgs']] = None,
4069
+ security_profile: Optional[pulumi.Input['SecurityProfileArgs']] = None,
4070
+ service_artifact_reference: Optional[pulumi.Input['ServiceArtifactReferenceArgs']] = None,
4071
+ windows_configuration: Optional[pulumi.Input['WindowsConfigurationArgs']] = None):
4072
+ """
4073
+ :param pulumi.Input[str] node_agent_sku_id: The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation.
4074
+ :param pulumi.Input['ContainerConfigurationArgs'] container_configuration: If specified, setup is performed on each node in the pool to allow tasks to run in containers. All regular tasks and job manager tasks run on this pool must specify the containerSettings property, and all other tasks may specify it.
4075
+ :param pulumi.Input[Sequence[pulumi.Input['DataDiskArgs']]] data_disks: This property must be specified if the compute nodes in the pool need to have empty data disks attached to them.
4076
+ :param pulumi.Input['DiskEncryptionConfigurationArgs'] disk_encryption_configuration: If specified, encryption is performed on each node in the pool during node provisioning.
4077
+ :param pulumi.Input[Sequence[pulumi.Input['VMExtensionArgs']]] extensions: If specified, the extensions mentioned in this configuration will be installed on each node.
4078
+ :param pulumi.Input[str] license_type: This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are:
4079
+
4080
+ Windows_Server - The on-premises license is for Windows Server.
4081
+ Windows_Client - The on-premises license is for Windows Client.
4082
+ :param pulumi.Input['NodePlacementConfigurationArgs'] node_placement_configuration: This configuration will specify rules on how nodes in the pool will be physically allocated.
4083
+ :param pulumi.Input['OSDiskArgs'] os_disk: Contains configuration for ephemeral OSDisk settings.
4084
+ :param pulumi.Input['SecurityProfileArgs'] security_profile: Specifies the security profile settings for the virtual machine or virtual machine scale set.
4085
+ :param pulumi.Input['ServiceArtifactReferenceArgs'] service_artifact_reference: The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
4086
+ :param pulumi.Input['WindowsConfigurationArgs'] windows_configuration: This property must not be specified if the imageReference specifies a Linux OS image.
4087
+ """
4088
+ pulumi.set(__self__, "image_reference", image_reference)
4089
+ pulumi.set(__self__, "node_agent_sku_id", node_agent_sku_id)
4090
+ if container_configuration is not None:
4091
+ pulumi.set(__self__, "container_configuration", container_configuration)
4092
+ if data_disks is not None:
4093
+ pulumi.set(__self__, "data_disks", data_disks)
4094
+ if disk_encryption_configuration is not None:
4095
+ pulumi.set(__self__, "disk_encryption_configuration", disk_encryption_configuration)
4096
+ if extensions is not None:
4097
+ pulumi.set(__self__, "extensions", extensions)
4098
+ if license_type is not None:
4099
+ pulumi.set(__self__, "license_type", license_type)
4100
+ if node_placement_configuration is not None:
4101
+ pulumi.set(__self__, "node_placement_configuration", node_placement_configuration)
4102
+ if os_disk is not None:
4103
+ pulumi.set(__self__, "os_disk", os_disk)
4104
+ if security_profile is not None:
4105
+ pulumi.set(__self__, "security_profile", security_profile)
4106
+ if service_artifact_reference is not None:
4107
+ pulumi.set(__self__, "service_artifact_reference", service_artifact_reference)
4108
+ if windows_configuration is not None:
4109
+ pulumi.set(__self__, "windows_configuration", windows_configuration)
4110
+
4111
+ @property
4112
+ @pulumi.getter(name="imageReference")
4113
+ def image_reference(self) -> pulumi.Input['ImageReferenceArgs']:
4114
+ return pulumi.get(self, "image_reference")
4115
+
4116
+ @image_reference.setter
4117
+ def image_reference(self, value: pulumi.Input['ImageReferenceArgs']):
4118
+ pulumi.set(self, "image_reference", value)
4119
+
4120
+ @property
4121
+ @pulumi.getter(name="nodeAgentSkuId")
4122
+ def node_agent_sku_id(self) -> pulumi.Input[str]:
4123
+ """
4124
+ The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation.
4125
+ """
4126
+ return pulumi.get(self, "node_agent_sku_id")
4127
+
4128
+ @node_agent_sku_id.setter
4129
+ def node_agent_sku_id(self, value: pulumi.Input[str]):
4130
+ pulumi.set(self, "node_agent_sku_id", value)
4131
+
4132
+ @property
4133
+ @pulumi.getter(name="containerConfiguration")
4134
+ def container_configuration(self) -> Optional[pulumi.Input['ContainerConfigurationArgs']]:
4135
+ """
4136
+ If specified, setup is performed on each node in the pool to allow tasks to run in containers. All regular tasks and job manager tasks run on this pool must specify the containerSettings property, and all other tasks may specify it.
4137
+ """
4138
+ return pulumi.get(self, "container_configuration")
4139
+
4140
+ @container_configuration.setter
4141
+ def container_configuration(self, value: Optional[pulumi.Input['ContainerConfigurationArgs']]):
4142
+ pulumi.set(self, "container_configuration", value)
4143
+
4144
+ @property
4145
+ @pulumi.getter(name="dataDisks")
4146
+ def data_disks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DataDiskArgs']]]]:
4147
+ """
4148
+ This property must be specified if the compute nodes in the pool need to have empty data disks attached to them.
4149
+ """
4150
+ return pulumi.get(self, "data_disks")
4151
+
4152
+ @data_disks.setter
4153
+ def data_disks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DataDiskArgs']]]]):
4154
+ pulumi.set(self, "data_disks", value)
4155
+
4156
+ @property
4157
+ @pulumi.getter(name="diskEncryptionConfiguration")
4158
+ def disk_encryption_configuration(self) -> Optional[pulumi.Input['DiskEncryptionConfigurationArgs']]:
4159
+ """
4160
+ If specified, encryption is performed on each node in the pool during node provisioning.
4161
+ """
4162
+ return pulumi.get(self, "disk_encryption_configuration")
4163
+
4164
+ @disk_encryption_configuration.setter
4165
+ def disk_encryption_configuration(self, value: Optional[pulumi.Input['DiskEncryptionConfigurationArgs']]):
4166
+ pulumi.set(self, "disk_encryption_configuration", value)
4167
+
4168
+ @property
4169
+ @pulumi.getter
4170
+ def extensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['VMExtensionArgs']]]]:
4171
+ """
4172
+ If specified, the extensions mentioned in this configuration will be installed on each node.
4173
+ """
4174
+ return pulumi.get(self, "extensions")
4175
+
4176
+ @extensions.setter
4177
+ def extensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['VMExtensionArgs']]]]):
4178
+ pulumi.set(self, "extensions", value)
4179
+
4180
+ @property
4181
+ @pulumi.getter(name="licenseType")
4182
+ def license_type(self) -> Optional[pulumi.Input[str]]:
4183
+ """
4184
+ This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are:
4185
+
4186
+ Windows_Server - The on-premises license is for Windows Server.
4187
+ Windows_Client - The on-premises license is for Windows Client.
4188
+ """
4189
+ return pulumi.get(self, "license_type")
4190
+
4191
+ @license_type.setter
4192
+ def license_type(self, value: Optional[pulumi.Input[str]]):
4193
+ pulumi.set(self, "license_type", value)
4194
+
4195
+ @property
4196
+ @pulumi.getter(name="nodePlacementConfiguration")
4197
+ def node_placement_configuration(self) -> Optional[pulumi.Input['NodePlacementConfigurationArgs']]:
4198
+ """
4199
+ This configuration will specify rules on how nodes in the pool will be physically allocated.
4200
+ """
4201
+ return pulumi.get(self, "node_placement_configuration")
4202
+
4203
+ @node_placement_configuration.setter
4204
+ def node_placement_configuration(self, value: Optional[pulumi.Input['NodePlacementConfigurationArgs']]):
4205
+ pulumi.set(self, "node_placement_configuration", value)
4206
+
4207
+ @property
4208
+ @pulumi.getter(name="osDisk")
4209
+ def os_disk(self) -> Optional[pulumi.Input['OSDiskArgs']]:
4210
+ """
4211
+ Contains configuration for ephemeral OSDisk settings.
4212
+ """
4213
+ return pulumi.get(self, "os_disk")
4214
+
4215
+ @os_disk.setter
4216
+ def os_disk(self, value: Optional[pulumi.Input['OSDiskArgs']]):
4217
+ pulumi.set(self, "os_disk", value)
4218
+
4219
+ @property
4220
+ @pulumi.getter(name="securityProfile")
4221
+ def security_profile(self) -> Optional[pulumi.Input['SecurityProfileArgs']]:
4222
+ """
4223
+ Specifies the security profile settings for the virtual machine or virtual machine scale set.
4224
+ """
4225
+ return pulumi.get(self, "security_profile")
4226
+
4227
+ @security_profile.setter
4228
+ def security_profile(self, value: Optional[pulumi.Input['SecurityProfileArgs']]):
4229
+ pulumi.set(self, "security_profile", value)
4230
+
4231
+ @property
4232
+ @pulumi.getter(name="serviceArtifactReference")
4233
+ def service_artifact_reference(self) -> Optional[pulumi.Input['ServiceArtifactReferenceArgs']]:
4234
+ """
4235
+ The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
4236
+ """
4237
+ return pulumi.get(self, "service_artifact_reference")
4238
+
4239
+ @service_artifact_reference.setter
4240
+ def service_artifact_reference(self, value: Optional[pulumi.Input['ServiceArtifactReferenceArgs']]):
4241
+ pulumi.set(self, "service_artifact_reference", value)
4242
+
4243
+ @property
4244
+ @pulumi.getter(name="windowsConfiguration")
4245
+ def windows_configuration(self) -> Optional[pulumi.Input['WindowsConfigurationArgs']]:
4246
+ """
4247
+ This property must not be specified if the imageReference specifies a Linux OS image.
4248
+ """
4249
+ return pulumi.get(self, "windows_configuration")
4250
+
4251
+ @windows_configuration.setter
4252
+ def windows_configuration(self, value: Optional[pulumi.Input['WindowsConfigurationArgs']]):
4253
+ pulumi.set(self, "windows_configuration", value)
4254
+
4255
+
4256
+ if not MYPY:
4257
+ class WindowsConfigurationArgsDict(TypedDict):
4258
+ enable_automatic_updates: NotRequired[pulumi.Input[bool]]
4259
+ """
4260
+ If omitted, the default value is true.
4261
+ """
4262
+ elif False:
4263
+ WindowsConfigurationArgsDict: TypeAlias = Mapping[str, Any]
4264
+
4265
+ @pulumi.input_type
4266
+ class WindowsConfigurationArgs:
4267
+ def __init__(__self__, *,
4268
+ enable_automatic_updates: Optional[pulumi.Input[bool]] = None):
4269
+ """
4270
+ :param pulumi.Input[bool] enable_automatic_updates: If omitted, the default value is true.
4271
+ """
4272
+ if enable_automatic_updates is not None:
4273
+ pulumi.set(__self__, "enable_automatic_updates", enable_automatic_updates)
4274
+
4275
+ @property
4276
+ @pulumi.getter(name="enableAutomaticUpdates")
4277
+ def enable_automatic_updates(self) -> Optional[pulumi.Input[bool]]:
4278
+ """
4279
+ If omitted, the default value is true.
4280
+ """
4281
+ return pulumi.get(self, "enable_automatic_updates")
4282
+
4283
+ @enable_automatic_updates.setter
4284
+ def enable_automatic_updates(self, value: Optional[pulumi.Input[bool]]):
4285
+ pulumi.set(self, "enable_automatic_updates", value)
4286
+
4287
+
4288
+ if not MYPY:
4289
+ class WindowsUserConfigurationArgsDict(TypedDict):
4290
+ login_mode: NotRequired[pulumi.Input['LoginMode']]
4291
+ """
4292
+ Specifies login mode for the user. The default value is Interactive.
4293
+ """
4294
+ elif False:
4295
+ WindowsUserConfigurationArgsDict: TypeAlias = Mapping[str, Any]
4296
+
4297
+ @pulumi.input_type
4298
+ class WindowsUserConfigurationArgs:
4299
+ def __init__(__self__, *,
4300
+ login_mode: Optional[pulumi.Input['LoginMode']] = None):
4301
+ """
4302
+ :param pulumi.Input['LoginMode'] login_mode: Specifies login mode for the user. The default value is Interactive.
4303
+ """
4304
+ if login_mode is not None:
4305
+ pulumi.set(__self__, "login_mode", login_mode)
4306
+
4307
+ @property
4308
+ @pulumi.getter(name="loginMode")
4309
+ def login_mode(self) -> Optional[pulumi.Input['LoginMode']]:
4310
+ """
4311
+ Specifies login mode for the user. The default value is Interactive.
4312
+ """
4313
+ return pulumi.get(self, "login_mode")
4314
+
4315
+ @login_mode.setter
4316
+ def login_mode(self, value: Optional[pulumi.Input['LoginMode']]):
4317
+ pulumi.set(self, "login_mode", value)
4318
+
4319
+