pulumi-kubernetes 4.19.0a1733937243__py3-none-any.whl → 4.19.0a1733970382__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-kubernetes might be problematic. Click here for more details.

Files changed (87) hide show
  1. pulumi_kubernetes/__init__.py +36 -0
  2. pulumi_kubernetes/admissionregistration/v1/_inputs.py +6 -6
  3. pulumi_kubernetes/admissionregistration/v1/outputs.py +4 -4
  4. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.py +214 -0
  5. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.py +222 -0
  6. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.py +215 -0
  7. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.py +234 -0
  8. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.py +215 -0
  9. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.py +226 -0
  10. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.py +0 -8
  11. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.py +0 -8
  12. pulumi_kubernetes/admissionregistration/v1alpha1/__init__.py +6 -0
  13. pulumi_kubernetes/admissionregistration/v1alpha1/_inputs.py +1818 -315
  14. pulumi_kubernetes/admissionregistration/v1alpha1/outputs.py +1365 -246
  15. pulumi_kubernetes/admissionregistration/v1beta1/_inputs.py +6 -6
  16. pulumi_kubernetes/admissionregistration/v1beta1/outputs.py +4 -4
  17. pulumi_kubernetes/apiextensions/v1/_inputs.py +6 -6
  18. pulumi_kubernetes/apiextensions/v1/outputs.py +4 -4
  19. pulumi_kubernetes/apps/v1/_inputs.py +6 -6
  20. pulumi_kubernetes/apps/v1/outputs.py +4 -4
  21. pulumi_kubernetes/autoscaling/v2/_inputs.py +15 -15
  22. pulumi_kubernetes/autoscaling/v2/outputs.py +12 -12
  23. pulumi_kubernetes/batch/v1/_inputs.py +6 -6
  24. pulumi_kubernetes/batch/v1/outputs.py +4 -4
  25. pulumi_kubernetes/coordination/__init__.py +3 -0
  26. pulumi_kubernetes/coordination/v1alpha1/LeaseCandidate.py +2 -0
  27. pulumi_kubernetes/coordination/v1alpha1/LeaseCandidatePatch.py +2 -0
  28. pulumi_kubernetes/coordination/v1alpha2/LeaseCandidate.py +216 -0
  29. pulumi_kubernetes/coordination/v1alpha2/LeaseCandidateList.py +215 -0
  30. pulumi_kubernetes/coordination/v1alpha2/LeaseCandidatePatch.py +228 -0
  31. pulumi_kubernetes/coordination/v1alpha2/__init__.py +12 -0
  32. pulumi_kubernetes/coordination/v1alpha2/_inputs.py +393 -0
  33. pulumi_kubernetes/coordination/v1alpha2/outputs.py +313 -0
  34. pulumi_kubernetes/core/v1/Binding.py +2 -2
  35. pulumi_kubernetes/core/v1/BindingPatch.py +2 -2
  36. pulumi_kubernetes/core/v1/ServiceAccount.py +4 -4
  37. pulumi_kubernetes/core/v1/ServiceAccountPatch.py +4 -4
  38. pulumi_kubernetes/core/v1/_inputs.py +564 -313
  39. pulumi_kubernetes/core/v1/outputs.py +418 -230
  40. pulumi_kubernetes/flowcontrol/v1beta3/_inputs.py +12 -12
  41. pulumi_kubernetes/flowcontrol/v1beta3/outputs.py +8 -8
  42. pulumi_kubernetes/pulumi-plugin.json +1 -1
  43. pulumi_kubernetes/resource/__init__.py +3 -0
  44. pulumi_kubernetes/resource/v1alpha1/ResourceClaim.py +1 -1
  45. pulumi_kubernetes/resource/v1alpha1/ResourceClaimPatch.py +1 -1
  46. pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplate.py +1 -1
  47. pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.py +1 -1
  48. pulumi_kubernetes/resource/v1alpha2/ResourceClaim.py +1 -1
  49. pulumi_kubernetes/resource/v1alpha2/ResourceClaimPatch.py +1 -1
  50. pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplate.py +1 -1
  51. pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.py +1 -1
  52. pulumi_kubernetes/resource/v1alpha2/ResourceSlice.py +1 -1
  53. pulumi_kubernetes/resource/v1alpha2/ResourceSlicePatch.py +1 -1
  54. pulumi_kubernetes/resource/v1alpha3/DeviceClass.py +2 -0
  55. pulumi_kubernetes/resource/v1alpha3/DeviceClassPatch.py +2 -0
  56. pulumi_kubernetes/resource/v1alpha3/ResourceClaim.py +1 -1
  57. pulumi_kubernetes/resource/v1alpha3/ResourceClaimPatch.py +1 -1
  58. pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplate.py +1 -1
  59. pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.py +1 -1
  60. pulumi_kubernetes/resource/v1alpha3/ResourceSlice.py +8 -8
  61. pulumi_kubernetes/resource/v1alpha3/ResourceSliceList.py +245 -0
  62. pulumi_kubernetes/resource/v1alpha3/ResourceSlicePatch.py +1 -1
  63. pulumi_kubernetes/resource/v1alpha3/__init__.py +1 -0
  64. pulumi_kubernetes/resource/v1alpha3/_inputs.py +455 -7
  65. pulumi_kubernetes/resource/v1alpha3/outputs.py +592 -5
  66. pulumi_kubernetes/resource/v1beta1/DeviceClass.py +237 -0
  67. pulumi_kubernetes/resource/v1beta1/DeviceClassList.py +215 -0
  68. pulumi_kubernetes/resource/v1beta1/DeviceClassPatch.py +248 -0
  69. pulumi_kubernetes/resource/v1beta1/ResourceClaim.py +232 -0
  70. pulumi_kubernetes/resource/v1beta1/ResourceClaimList.py +216 -0
  71. pulumi_kubernetes/resource/v1beta1/ResourceClaimPatch.py +243 -0
  72. pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplate.py +229 -0
  73. pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplateList.py +215 -0
  74. pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.py +240 -0
  75. pulumi_kubernetes/resource/v1beta1/ResourceSlice.py +246 -0
  76. pulumi_kubernetes/resource/v1beta1/ResourceSliceList.py +216 -0
  77. pulumi_kubernetes/resource/v1beta1/ResourceSlicePatch.py +257 -0
  78. pulumi_kubernetes/resource/v1beta1/__init__.py +21 -0
  79. pulumi_kubernetes/resource/v1beta1/_inputs.py +3867 -0
  80. pulumi_kubernetes/resource/v1beta1/outputs.py +3334 -0
  81. pulumi_kubernetes/storage/v1/_inputs.py +4 -4
  82. pulumi_kubernetes/storage/v1/outputs.py +4 -4
  83. pulumi_kubernetes/yaml/yaml.py +90 -0
  84. {pulumi_kubernetes-4.19.0a1733937243.dist-info → pulumi_kubernetes-4.19.0a1733970382.dist-info}/METADATA +1 -1
  85. {pulumi_kubernetes-4.19.0a1733937243.dist-info → pulumi_kubernetes-4.19.0a1733970382.dist-info}/RECORD +87 -59
  86. {pulumi_kubernetes-4.19.0a1733937243.dist-info → pulumi_kubernetes-4.19.0a1733970382.dist-info}/WHEEL +0 -0
  87. {pulumi_kubernetes-4.19.0a1733937243.dist-info → pulumi_kubernetes-4.19.0a1733970382.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,8 @@ from ... import core as _core
17
17
  from ... import meta as _meta
18
18
 
19
19
  __all__ = [
20
+ 'AllocatedDeviceStatusArgs',
21
+ 'AllocatedDeviceStatusArgsDict',
20
22
  'AllocationResultArgs',
21
23
  'AllocationResultArgsDict',
22
24
  'BasicDevicePatchArgs',
@@ -69,6 +71,8 @@ __all__ = [
69
71
  'DeviceSelectorArgsDict',
70
72
  'DeviceArgs',
71
73
  'DeviceArgsDict',
74
+ 'NetworkDeviceDataArgs',
75
+ 'NetworkDeviceDataArgsDict',
72
76
  'OpaqueDeviceConfigurationPatchArgs',
73
77
  'OpaqueDeviceConfigurationPatchArgsDict',
74
78
  'OpaqueDeviceConfigurationArgs',
@@ -107,10 +111,163 @@ __all__ = [
107
111
  'ResourceSliceSpecPatchArgsDict',
108
112
  'ResourceSliceSpecArgs',
109
113
  'ResourceSliceSpecArgsDict',
114
+ 'ResourceSliceArgs',
115
+ 'ResourceSliceArgsDict',
110
116
  ]
111
117
 
112
118
  MYPY = False
113
119
 
120
+ if not MYPY:
121
+ class AllocatedDeviceStatusArgsDict(TypedDict):
122
+ """
123
+ AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
124
+ """
125
+ device: pulumi.Input[str]
126
+ """
127
+ Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
128
+ """
129
+ driver: pulumi.Input[str]
130
+ """
131
+ Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.
132
+
133
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
134
+ """
135
+ pool: pulumi.Input[str]
136
+ """
137
+ This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
138
+
139
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
140
+ """
141
+ conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgsDict']]]]
142
+ """
143
+ Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.
144
+ """
145
+ data: NotRequired[Any]
146
+ """
147
+ Data contains arbitrary driver-specific data.
148
+
149
+ The length of the raw data must be smaller or equal to 10 Ki.
150
+ """
151
+ network_data: NotRequired[pulumi.Input['NetworkDeviceDataArgsDict']]
152
+ """
153
+ NetworkData contains network-related information specific to the device.
154
+ """
155
+ elif False:
156
+ AllocatedDeviceStatusArgsDict: TypeAlias = Mapping[str, Any]
157
+
158
+ @pulumi.input_type
159
+ class AllocatedDeviceStatusArgs:
160
+ def __init__(__self__, *,
161
+ device: pulumi.Input[str],
162
+ driver: pulumi.Input[str],
163
+ pool: pulumi.Input[str],
164
+ conditions: Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]] = None,
165
+ data: Optional[Any] = None,
166
+ network_data: Optional[pulumi.Input['NetworkDeviceDataArgs']] = None):
167
+ """
168
+ AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
169
+ :param pulumi.Input[str] device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
170
+ :param pulumi.Input[str] driver: Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.
171
+
172
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
173
+ :param pulumi.Input[str] pool: This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
174
+
175
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
176
+ :param pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]] conditions: Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.
177
+ :param Any data: Data contains arbitrary driver-specific data.
178
+
179
+ The length of the raw data must be smaller or equal to 10 Ki.
180
+ :param pulumi.Input['NetworkDeviceDataArgs'] network_data: NetworkData contains network-related information specific to the device.
181
+ """
182
+ pulumi.set(__self__, "device", device)
183
+ pulumi.set(__self__, "driver", driver)
184
+ pulumi.set(__self__, "pool", pool)
185
+ if conditions is not None:
186
+ pulumi.set(__self__, "conditions", conditions)
187
+ if data is not None:
188
+ pulumi.set(__self__, "data", data)
189
+ if network_data is not None:
190
+ pulumi.set(__self__, "network_data", network_data)
191
+
192
+ @property
193
+ @pulumi.getter
194
+ def device(self) -> pulumi.Input[str]:
195
+ """
196
+ Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
197
+ """
198
+ return pulumi.get(self, "device")
199
+
200
+ @device.setter
201
+ def device(self, value: pulumi.Input[str]):
202
+ pulumi.set(self, "device", value)
203
+
204
+ @property
205
+ @pulumi.getter
206
+ def driver(self) -> pulumi.Input[str]:
207
+ """
208
+ Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.
209
+
210
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
211
+ """
212
+ return pulumi.get(self, "driver")
213
+
214
+ @driver.setter
215
+ def driver(self, value: pulumi.Input[str]):
216
+ pulumi.set(self, "driver", value)
217
+
218
+ @property
219
+ @pulumi.getter
220
+ def pool(self) -> pulumi.Input[str]:
221
+ """
222
+ This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
223
+
224
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
225
+ """
226
+ return pulumi.get(self, "pool")
227
+
228
+ @pool.setter
229
+ def pool(self, value: pulumi.Input[str]):
230
+ pulumi.set(self, "pool", value)
231
+
232
+ @property
233
+ @pulumi.getter
234
+ def conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]]:
235
+ """
236
+ Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.
237
+ """
238
+ return pulumi.get(self, "conditions")
239
+
240
+ @conditions.setter
241
+ def conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]]):
242
+ pulumi.set(self, "conditions", value)
243
+
244
+ @property
245
+ @pulumi.getter
246
+ def data(self) -> Optional[Any]:
247
+ """
248
+ Data contains arbitrary driver-specific data.
249
+
250
+ The length of the raw data must be smaller or equal to 10 Ki.
251
+ """
252
+ return pulumi.get(self, "data")
253
+
254
+ @data.setter
255
+ def data(self, value: Optional[Any]):
256
+ pulumi.set(self, "data", value)
257
+
258
+ @property
259
+ @pulumi.getter(name="networkData")
260
+ def network_data(self) -> Optional[pulumi.Input['NetworkDeviceDataArgs']]:
261
+ """
262
+ NetworkData contains network-related information specific to the device.
263
+ """
264
+ return pulumi.get(self, "network_data")
265
+
266
+ @network_data.setter
267
+ def network_data(self, value: Optional[pulumi.Input['NetworkDeviceDataArgs']]):
268
+ pulumi.set(self, "network_data", value)
269
+
270
+
114
271
  if not MYPY:
115
272
  class AllocationResultArgsDict(TypedDict):
116
273
  """
@@ -369,6 +526,8 @@ if not MYPY:
369
526
  For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
370
527
 
371
528
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
529
+
530
+ The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
372
531
  """
373
532
  elif False:
374
533
  CELDeviceSelectorPatchArgsDict: TypeAlias = Mapping[str, Any]
@@ -406,6 +565,8 @@ class CELDeviceSelectorPatchArgs:
406
565
  For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
407
566
 
408
567
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
568
+
569
+ The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
409
570
  """
410
571
  if expression is not None:
411
572
  pulumi.set(__self__, "expression", expression)
@@ -441,6 +602,8 @@ class CELDeviceSelectorPatchArgs:
441
602
  For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
442
603
 
443
604
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
605
+
606
+ The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
444
607
  """
445
608
  return pulumi.get(self, "expression")
446
609
 
@@ -483,6 +646,8 @@ if not MYPY:
483
646
  For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
484
647
 
485
648
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
649
+
650
+ The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
486
651
  """
487
652
  elif False:
488
653
  CELDeviceSelectorArgsDict: TypeAlias = Mapping[str, Any]
@@ -520,6 +685,8 @@ class CELDeviceSelectorArgs:
520
685
  For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
521
686
 
522
687
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
688
+
689
+ The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
523
690
  """
524
691
  pulumi.set(__self__, "expression", expression)
525
692
 
@@ -554,6 +721,8 @@ class CELDeviceSelectorArgs:
554
721
  For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
555
722
 
556
723
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
724
+
725
+ The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
557
726
  """
558
727
  return pulumi.get(self, "expression")
559
728
 
@@ -1647,6 +1816,12 @@ if not MYPY:
1647
1816
  """
1648
1817
  Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.
1649
1818
  """
1819
+ admin_access: NotRequired[pulumi.Input[bool]]
1820
+ """
1821
+ AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1822
+
1823
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
1824
+ """
1650
1825
  elif False:
1651
1826
  DeviceRequestAllocationResultArgsDict: TypeAlias = Mapping[str, Any]
1652
1827
 
@@ -1656,7 +1831,8 @@ class DeviceRequestAllocationResultArgs:
1656
1831
  device: pulumi.Input[str],
1657
1832
  driver: pulumi.Input[str],
1658
1833
  pool: pulumi.Input[str],
1659
- request: pulumi.Input[str]):
1834
+ request: pulumi.Input[str],
1835
+ admin_access: Optional[pulumi.Input[bool]] = None):
1660
1836
  """
1661
1837
  DeviceRequestAllocationResult contains the allocation result for one request.
1662
1838
  :param pulumi.Input[str] device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
@@ -1667,11 +1843,16 @@ class DeviceRequestAllocationResultArgs:
1667
1843
 
1668
1844
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
1669
1845
  :param pulumi.Input[str] request: Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.
1846
+ :param pulumi.Input[bool] admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1847
+
1848
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
1670
1849
  """
1671
1850
  pulumi.set(__self__, "device", device)
1672
1851
  pulumi.set(__self__, "driver", driver)
1673
1852
  pulumi.set(__self__, "pool", pool)
1674
1853
  pulumi.set(__self__, "request", request)
1854
+ if admin_access is not None:
1855
+ pulumi.set(__self__, "admin_access", admin_access)
1675
1856
 
1676
1857
  @property
1677
1858
  @pulumi.getter
@@ -1725,6 +1906,20 @@ class DeviceRequestAllocationResultArgs:
1725
1906
  def request(self, value: pulumi.Input[str]):
1726
1907
  pulumi.set(self, "request", value)
1727
1908
 
1909
+ @property
1910
+ @pulumi.getter(name="adminAccess")
1911
+ def admin_access(self) -> Optional[pulumi.Input[bool]]:
1912
+ """
1913
+ AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1914
+
1915
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
1916
+ """
1917
+ return pulumi.get(self, "admin_access")
1918
+
1919
+ @admin_access.setter
1920
+ def admin_access(self, value: Optional[pulumi.Input[bool]]):
1921
+ pulumi.set(self, "admin_access", value)
1922
+
1728
1923
 
1729
1924
  if not MYPY:
1730
1925
  class DeviceRequestPatchArgsDict(TypedDict):
@@ -1736,6 +1931,8 @@ if not MYPY:
1736
1931
  admin_access: NotRequired[pulumi.Input[bool]]
1737
1932
  """
1738
1933
  AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
1934
+
1935
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
1739
1936
  """
1740
1937
  allocation_mode: NotRequired[pulumi.Input[str]]
1741
1938
  """
@@ -1792,6 +1989,8 @@ class DeviceRequestPatchArgs:
1792
1989
 
1793
1990
  A DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.
1794
1991
  :param pulumi.Input[bool] admin_access: AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
1992
+
1993
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
1795
1994
  :param pulumi.Input[str] allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1796
1995
 
1797
1996
  - ExactCount: This request is for a specific number of devices.
@@ -1834,6 +2033,8 @@ class DeviceRequestPatchArgs:
1834
2033
  def admin_access(self) -> Optional[pulumi.Input[bool]]:
1835
2034
  """
1836
2035
  AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
2036
+
2037
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
1837
2038
  """
1838
2039
  return pulumi.get(self, "admin_access")
1839
2040
 
@@ -1944,6 +2145,8 @@ if not MYPY:
1944
2145
  admin_access: NotRequired[pulumi.Input[bool]]
1945
2146
  """
1946
2147
  AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
2148
+
2149
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
1947
2150
  """
1948
2151
  allocation_mode: NotRequired[pulumi.Input[str]]
1949
2152
  """
@@ -1994,6 +2197,8 @@ class DeviceRequestArgs:
1994
2197
 
1995
2198
  Must be a DNS label.
1996
2199
  :param pulumi.Input[bool] admin_access: AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
2200
+
2201
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
1997
2202
  :param pulumi.Input[str] allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1998
2203
 
1999
2204
  - ExactCount: This request is for a specific number of devices.
@@ -2056,6 +2261,8 @@ class DeviceRequestArgs:
2056
2261
  def admin_access(self) -> Optional[pulumi.Input[bool]]:
2057
2262
  """
2058
2263
  AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
2264
+
2265
+ This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
2059
2266
  """
2060
2267
  return pulumi.get(self, "admin_access")
2061
2268
 
@@ -2239,6 +2446,94 @@ class DeviceArgs:
2239
2446
  pulumi.set(self, "basic", value)
2240
2447
 
2241
2448
 
2449
+ if not MYPY:
2450
+ class NetworkDeviceDataArgsDict(TypedDict):
2451
+ """
2452
+ NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.
2453
+ """
2454
+ hardware_address: NotRequired[pulumi.Input[str]]
2455
+ """
2456
+ HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2457
+
2458
+ Must not be longer than 128 characters.
2459
+ """
2460
+ interface_name: NotRequired[pulumi.Input[str]]
2461
+ """
2462
+ InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.
2463
+
2464
+ Must not be longer than 256 characters.
2465
+ """
2466
+ ips: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2467
+ """
2468
+ IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6.
2469
+ """
2470
+ elif False:
2471
+ NetworkDeviceDataArgsDict: TypeAlias = Mapping[str, Any]
2472
+
2473
+ @pulumi.input_type
2474
+ class NetworkDeviceDataArgs:
2475
+ def __init__(__self__, *,
2476
+ hardware_address: Optional[pulumi.Input[str]] = None,
2477
+ interface_name: Optional[pulumi.Input[str]] = None,
2478
+ ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
2479
+ """
2480
+ NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.
2481
+ :param pulumi.Input[str] hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2482
+
2483
+ Must not be longer than 128 characters.
2484
+ :param pulumi.Input[str] interface_name: InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.
2485
+
2486
+ Must not be longer than 256 characters.
2487
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ips: IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6.
2488
+ """
2489
+ if hardware_address is not None:
2490
+ pulumi.set(__self__, "hardware_address", hardware_address)
2491
+ if interface_name is not None:
2492
+ pulumi.set(__self__, "interface_name", interface_name)
2493
+ if ips is not None:
2494
+ pulumi.set(__self__, "ips", ips)
2495
+
2496
+ @property
2497
+ @pulumi.getter(name="hardwareAddress")
2498
+ def hardware_address(self) -> Optional[pulumi.Input[str]]:
2499
+ """
2500
+ HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2501
+
2502
+ Must not be longer than 128 characters.
2503
+ """
2504
+ return pulumi.get(self, "hardware_address")
2505
+
2506
+ @hardware_address.setter
2507
+ def hardware_address(self, value: Optional[pulumi.Input[str]]):
2508
+ pulumi.set(self, "hardware_address", value)
2509
+
2510
+ @property
2511
+ @pulumi.getter(name="interfaceName")
2512
+ def interface_name(self) -> Optional[pulumi.Input[str]]:
2513
+ """
2514
+ InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.
2515
+
2516
+ Must not be longer than 256 characters.
2517
+ """
2518
+ return pulumi.get(self, "interface_name")
2519
+
2520
+ @interface_name.setter
2521
+ def interface_name(self, value: Optional[pulumi.Input[str]]):
2522
+ pulumi.set(self, "interface_name", value)
2523
+
2524
+ @property
2525
+ @pulumi.getter
2526
+ def ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2527
+ """
2528
+ IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6.
2529
+ """
2530
+ return pulumi.get(self, "ips")
2531
+
2532
+ @ips.setter
2533
+ def ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2534
+ pulumi.set(self, "ips", value)
2535
+
2536
+
2242
2537
  if not MYPY:
2243
2538
  class OpaqueDeviceConfigurationPatchArgsDict(TypedDict):
2244
2539
  """
@@ -2255,6 +2550,8 @@ if not MYPY:
2255
2550
  parameters: NotRequired[Any]
2256
2551
  """
2257
2552
  Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
2553
+
2554
+ The length of the raw data must be smaller or equal to 10 Ki.
2258
2555
  """
2259
2556
  elif False:
2260
2557
  OpaqueDeviceConfigurationPatchArgsDict: TypeAlias = Mapping[str, Any]
@@ -2272,6 +2569,8 @@ class OpaqueDeviceConfigurationPatchArgs:
2272
2569
 
2273
2570
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
2274
2571
  :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
2572
+
2573
+ The length of the raw data must be smaller or equal to 10 Ki.
2275
2574
  """
2276
2575
  if driver is not None:
2277
2576
  pulumi.set(__self__, "driver", driver)
@@ -2299,6 +2598,8 @@ class OpaqueDeviceConfigurationPatchArgs:
2299
2598
  def parameters(self) -> Optional[Any]:
2300
2599
  """
2301
2600
  Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
2601
+
2602
+ The length of the raw data must be smaller or equal to 10 Ki.
2302
2603
  """
2303
2604
  return pulumi.get(self, "parameters")
2304
2605
 
@@ -2323,6 +2624,8 @@ if not MYPY:
2323
2624
  parameters: Any
2324
2625
  """
2325
2626
  Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
2627
+
2628
+ The length of the raw data must be smaller or equal to 10 Ki.
2326
2629
  """
2327
2630
  elif False:
2328
2631
  OpaqueDeviceConfigurationArgsDict: TypeAlias = Mapping[str, Any]
@@ -2340,6 +2643,8 @@ class OpaqueDeviceConfigurationArgs:
2340
2643
 
2341
2644
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
2342
2645
  :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
2646
+
2647
+ The length of the raw data must be smaller or equal to 10 Ki.
2343
2648
  """
2344
2649
  pulumi.set(__self__, "driver", driver)
2345
2650
  pulumi.set(__self__, "parameters", parameters)
@@ -2365,6 +2670,8 @@ class OpaqueDeviceConfigurationArgs:
2365
2670
  def parameters(self) -> Any:
2366
2671
  """
2367
2672
  Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
2673
+
2674
+ The length of the raw data must be smaller or equal to 10 Ki.
2368
2675
  """
2369
2676
  return pulumi.get(self, "parameters")
2370
2677
 
@@ -2959,6 +3266,10 @@ if not MYPY:
2959
3266
 
2960
3267
  This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
2961
3268
  """
3269
+ devices: NotRequired[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgsDict']]]]
3270
+ """
3271
+ Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.
3272
+ """
2962
3273
  reserved_for: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgsDict']]]]
2963
3274
  """
2964
3275
  ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated.
@@ -2977,6 +3288,7 @@ class ResourceClaimStatusArgs:
2977
3288
  def __init__(__self__, *,
2978
3289
  allocation: Optional[pulumi.Input['AllocationResultArgs']] = None,
2979
3290
  deallocation_requested: Optional[pulumi.Input[bool]] = None,
3291
+ devices: Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]] = None,
2980
3292
  reserved_for: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]]] = None):
2981
3293
  """
2982
3294
  ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.
@@ -2986,6 +3298,7 @@ class ResourceClaimStatusArgs:
2986
3298
  This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field.
2987
3299
 
2988
3300
  This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
3301
+ :param pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.
2989
3302
  :param pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated.
2990
3303
 
2991
3304
  In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled.
@@ -2998,6 +3311,8 @@ class ResourceClaimStatusArgs:
2998
3311
  pulumi.set(__self__, "allocation", allocation)
2999
3312
  if deallocation_requested is not None:
3000
3313
  pulumi.set(__self__, "deallocation_requested", deallocation_requested)
3314
+ if devices is not None:
3315
+ pulumi.set(__self__, "devices", devices)
3001
3316
  if reserved_for is not None:
3002
3317
  pulumi.set(__self__, "reserved_for", reserved_for)
3003
3318
 
@@ -3029,6 +3344,18 @@ class ResourceClaimStatusArgs:
3029
3344
  def deallocation_requested(self, value: Optional[pulumi.Input[bool]]):
3030
3345
  pulumi.set(self, "deallocation_requested", value)
3031
3346
 
3347
+ @property
3348
+ @pulumi.getter
3349
+ def devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]]:
3350
+ """
3351
+ Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.
3352
+ """
3353
+ return pulumi.get(self, "devices")
3354
+
3355
+ @devices.setter
3356
+ def devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]]):
3357
+ pulumi.set(self, "devices", value)
3358
+
3032
3359
  @property
3033
3360
  @pulumi.getter(name="reservedFor")
3034
3361
  def reserved_for(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]]]:
@@ -3055,7 +3382,7 @@ if not MYPY:
3055
3382
  """
3056
3383
  metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaPatchArgsDict']]
3057
3384
  """
3058
- ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
3385
+ ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
3059
3386
  """
3060
3387
  spec: NotRequired[pulumi.Input['ResourceClaimSpecPatchArgsDict']]
3061
3388
  """
@@ -3071,7 +3398,7 @@ class ResourceClaimTemplateSpecPatchArgs:
3071
3398
  spec: Optional[pulumi.Input['ResourceClaimSpecPatchArgs']] = None):
3072
3399
  """
3073
3400
  ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.
3074
- :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
3401
+ :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
3075
3402
  :param pulumi.Input['ResourceClaimSpecPatchArgs'] spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here.
3076
3403
  """
3077
3404
  if metadata is not None:
@@ -3083,7 +3410,7 @@ class ResourceClaimTemplateSpecPatchArgs:
3083
3410
  @pulumi.getter
3084
3411
  def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]:
3085
3412
  """
3086
- ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
3413
+ ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
3087
3414
  """
3088
3415
  return pulumi.get(self, "metadata")
3089
3416
 
@@ -3115,7 +3442,7 @@ if not MYPY:
3115
3442
  """
3116
3443
  metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']]
3117
3444
  """
3118
- ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
3445
+ ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
3119
3446
  """
3120
3447
  elif False:
3121
3448
  ResourceClaimTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]
@@ -3128,7 +3455,7 @@ class ResourceClaimTemplateSpecArgs:
3128
3455
  """
3129
3456
  ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.
3130
3457
  :param pulumi.Input['ResourceClaimSpecArgs'] spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here.
3131
- :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
3458
+ :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
3132
3459
  """
3133
3460
  pulumi.set(__self__, "spec", spec)
3134
3461
  if metadata is not None:
@@ -3150,7 +3477,7 @@ class ResourceClaimTemplateSpecArgs:
3150
3477
  @pulumi.getter
3151
3478
  def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]:
3152
3479
  """
3153
- ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
3480
+ ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
3154
3481
  """
3155
3482
  return pulumi.get(self, "metadata")
3156
3483
 
@@ -3922,3 +4249,124 @@ class ResourceSliceSpecArgs:
3922
4249
  pulumi.set(self, "node_selector", value)
3923
4250
 
3924
4251
 
4252
+ if not MYPY:
4253
+ class ResourceSliceArgsDict(TypedDict):
4254
+ """
4255
+ ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.
4256
+
4257
+ At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.
4258
+
4259
+ Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.
4260
+
4261
+ When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.
4262
+
4263
+ For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.
4264
+
4265
+ This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
4266
+ """
4267
+ spec: pulumi.Input['ResourceSliceSpecArgsDict']
4268
+ """
4269
+ Contains the information published by the driver.
4270
+
4271
+ Changing the spec automatically increments the metadata.generation number.
4272
+ """
4273
+ api_version: NotRequired[pulumi.Input[str]]
4274
+ """
4275
+ APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
4276
+ """
4277
+ kind: NotRequired[pulumi.Input[str]]
4278
+ """
4279
+ Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4280
+ """
4281
+ metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']]
4282
+ """
4283
+ Standard object metadata
4284
+ """
4285
+ elif False:
4286
+ ResourceSliceArgsDict: TypeAlias = Mapping[str, Any]
4287
+
4288
+ @pulumi.input_type
4289
+ class ResourceSliceArgs:
4290
+ def __init__(__self__, *,
4291
+ spec: pulumi.Input['ResourceSliceSpecArgs'],
4292
+ api_version: Optional[pulumi.Input[str]] = None,
4293
+ kind: Optional[pulumi.Input[str]] = None,
4294
+ metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None):
4295
+ """
4296
+ ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.
4297
+
4298
+ At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.
4299
+
4300
+ Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.
4301
+
4302
+ When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.
4303
+
4304
+ For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.
4305
+
4306
+ This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
4307
+ :param pulumi.Input['ResourceSliceSpecArgs'] spec: Contains the information published by the driver.
4308
+
4309
+ Changing the spec automatically increments the metadata.generation number.
4310
+ :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
4311
+ :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4312
+ :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata
4313
+ """
4314
+ pulumi.set(__self__, "spec", spec)
4315
+ if api_version is not None:
4316
+ pulumi.set(__self__, "api_version", 'resource.k8s.io/v1alpha3')
4317
+ if kind is not None:
4318
+ pulumi.set(__self__, "kind", 'ResourceSlice')
4319
+ if metadata is not None:
4320
+ pulumi.set(__self__, "metadata", metadata)
4321
+
4322
+ @property
4323
+ @pulumi.getter
4324
+ def spec(self) -> pulumi.Input['ResourceSliceSpecArgs']:
4325
+ """
4326
+ Contains the information published by the driver.
4327
+
4328
+ Changing the spec automatically increments the metadata.generation number.
4329
+ """
4330
+ return pulumi.get(self, "spec")
4331
+
4332
+ @spec.setter
4333
+ def spec(self, value: pulumi.Input['ResourceSliceSpecArgs']):
4334
+ pulumi.set(self, "spec", value)
4335
+
4336
+ @property
4337
+ @pulumi.getter(name="apiVersion")
4338
+ def api_version(self) -> Optional[pulumi.Input[str]]:
4339
+ """
4340
+ APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
4341
+ """
4342
+ return pulumi.get(self, "api_version")
4343
+
4344
+ @api_version.setter
4345
+ def api_version(self, value: Optional[pulumi.Input[str]]):
4346
+ pulumi.set(self, "api_version", value)
4347
+
4348
+ @property
4349
+ @pulumi.getter
4350
+ def kind(self) -> Optional[pulumi.Input[str]]:
4351
+ """
4352
+ Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4353
+ """
4354
+ return pulumi.get(self, "kind")
4355
+
4356
+ @kind.setter
4357
+ def kind(self, value: Optional[pulumi.Input[str]]):
4358
+ pulumi.set(self, "kind", value)
4359
+
4360
+ @property
4361
+ @pulumi.getter
4362
+ def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]:
4363
+ """
4364
+ Standard object metadata
4365
+ """
4366
+ return pulumi.get(self, "metadata")
4367
+
4368
+ @metadata.setter
4369
+ def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]):
4370
+ pulumi.set(self, "metadata", value)
4371
+
4372
+