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
@@ -18,6 +18,8 @@ from ... import core as _core
18
18
  from ... import meta as _meta
19
19
 
20
20
  __all__ = [
21
+ 'AllocatedDeviceStatus',
22
+ 'AllocatedDeviceStatusPatch',
21
23
  'AllocationResult',
22
24
  'AllocationResultPatch',
23
25
  'BasicDevice',
@@ -48,6 +50,8 @@ __all__ = [
48
50
  'DeviceRequestPatch',
49
51
  'DeviceSelector',
50
52
  'DeviceSelectorPatch',
53
+ 'NetworkDeviceData',
54
+ 'NetworkDeviceDataPatch',
51
55
  'OpaqueDeviceConfiguration',
52
56
  'OpaqueDeviceConfigurationPatch',
53
57
  'PodSchedulingContext',
@@ -69,10 +73,232 @@ __all__ = [
69
73
  'ResourceClaimTemplateSpecPatch',
70
74
  'ResourcePool',
71
75
  'ResourcePoolPatch',
76
+ 'ResourceSlice',
72
77
  'ResourceSliceSpec',
73
78
  'ResourceSliceSpecPatch',
74
79
  ]
75
80
 
81
+ @pulumi.output_type
82
+ class AllocatedDeviceStatus(dict):
83
+ """
84
+ AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
85
+ """
86
+ @staticmethod
87
+ def __key_warning(key: str):
88
+ suggest = None
89
+ if key == "networkData":
90
+ suggest = "network_data"
91
+
92
+ if suggest:
93
+ pulumi.log.warn(f"Key '{key}' not found in AllocatedDeviceStatus. Access the value via the '{suggest}' property getter instead.")
94
+
95
+ def __getitem__(self, key: str) -> Any:
96
+ AllocatedDeviceStatus.__key_warning(key)
97
+ return super().__getitem__(key)
98
+
99
+ def get(self, key: str, default = None) -> Any:
100
+ AllocatedDeviceStatus.__key_warning(key)
101
+ return super().get(key, default)
102
+
103
+ def __init__(__self__, *,
104
+ device: str,
105
+ driver: str,
106
+ pool: str,
107
+ conditions: Optional[Sequence['_meta.v1.outputs.Condition']] = None,
108
+ data: Optional[Any] = None,
109
+ network_data: Optional['outputs.NetworkDeviceData'] = None):
110
+ """
111
+ AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
112
+ :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
113
+ :param 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.
114
+
115
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
116
+ :param 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>`).
117
+
118
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
119
+ :param Sequence['_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.
120
+ :param Any data: Data contains arbitrary driver-specific data.
121
+
122
+ The length of the raw data must be smaller or equal to 10 Ki.
123
+ :param 'NetworkDeviceDataArgs' network_data: NetworkData contains network-related information specific to the device.
124
+ """
125
+ pulumi.set(__self__, "device", device)
126
+ pulumi.set(__self__, "driver", driver)
127
+ pulumi.set(__self__, "pool", pool)
128
+ if conditions is not None:
129
+ pulumi.set(__self__, "conditions", conditions)
130
+ if data is not None:
131
+ pulumi.set(__self__, "data", data)
132
+ if network_data is not None:
133
+ pulumi.set(__self__, "network_data", network_data)
134
+
135
+ @property
136
+ @pulumi.getter
137
+ def device(self) -> str:
138
+ """
139
+ Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
140
+ """
141
+ return pulumi.get(self, "device")
142
+
143
+ @property
144
+ @pulumi.getter
145
+ def driver(self) -> str:
146
+ """
147
+ 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.
148
+
149
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
150
+ """
151
+ return pulumi.get(self, "driver")
152
+
153
+ @property
154
+ @pulumi.getter
155
+ def pool(self) -> str:
156
+ """
157
+ This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
158
+
159
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
160
+ """
161
+ return pulumi.get(self, "pool")
162
+
163
+ @property
164
+ @pulumi.getter
165
+ def conditions(self) -> Optional[Sequence['_meta.v1.outputs.Condition']]:
166
+ """
167
+ 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.
168
+ """
169
+ return pulumi.get(self, "conditions")
170
+
171
+ @property
172
+ @pulumi.getter
173
+ def data(self) -> Optional[Any]:
174
+ """
175
+ Data contains arbitrary driver-specific data.
176
+
177
+ The length of the raw data must be smaller or equal to 10 Ki.
178
+ """
179
+ return pulumi.get(self, "data")
180
+
181
+ @property
182
+ @pulumi.getter(name="networkData")
183
+ def network_data(self) -> Optional['outputs.NetworkDeviceData']:
184
+ """
185
+ NetworkData contains network-related information specific to the device.
186
+ """
187
+ return pulumi.get(self, "network_data")
188
+
189
+
190
+ @pulumi.output_type
191
+ class AllocatedDeviceStatusPatch(dict):
192
+ """
193
+ AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
194
+ """
195
+ @staticmethod
196
+ def __key_warning(key: str):
197
+ suggest = None
198
+ if key == "networkData":
199
+ suggest = "network_data"
200
+
201
+ if suggest:
202
+ pulumi.log.warn(f"Key '{key}' not found in AllocatedDeviceStatusPatch. Access the value via the '{suggest}' property getter instead.")
203
+
204
+ def __getitem__(self, key: str) -> Any:
205
+ AllocatedDeviceStatusPatch.__key_warning(key)
206
+ return super().__getitem__(key)
207
+
208
+ def get(self, key: str, default = None) -> Any:
209
+ AllocatedDeviceStatusPatch.__key_warning(key)
210
+ return super().get(key, default)
211
+
212
+ def __init__(__self__, *,
213
+ conditions: Optional[Sequence['_meta.v1.outputs.ConditionPatch']] = None,
214
+ data: Optional[Any] = None,
215
+ device: Optional[str] = None,
216
+ driver: Optional[str] = None,
217
+ network_data: Optional['outputs.NetworkDeviceDataPatch'] = None,
218
+ pool: Optional[str] = None):
219
+ """
220
+ AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
221
+ :param Sequence['_meta.v1.ConditionPatchArgs'] 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.
222
+ :param Any data: Data contains arbitrary driver-specific data.
223
+
224
+ The length of the raw data must be smaller or equal to 10 Ki.
225
+ :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
226
+ :param 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.
227
+
228
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
229
+ :param 'NetworkDeviceDataPatchArgs' network_data: NetworkData contains network-related information specific to the device.
230
+ :param 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>`).
231
+
232
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
233
+ """
234
+ if conditions is not None:
235
+ pulumi.set(__self__, "conditions", conditions)
236
+ if data is not None:
237
+ pulumi.set(__self__, "data", data)
238
+ if device is not None:
239
+ pulumi.set(__self__, "device", device)
240
+ if driver is not None:
241
+ pulumi.set(__self__, "driver", driver)
242
+ if network_data is not None:
243
+ pulumi.set(__self__, "network_data", network_data)
244
+ if pool is not None:
245
+ pulumi.set(__self__, "pool", pool)
246
+
247
+ @property
248
+ @pulumi.getter
249
+ def conditions(self) -> Optional[Sequence['_meta.v1.outputs.ConditionPatch']]:
250
+ """
251
+ 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.
252
+ """
253
+ return pulumi.get(self, "conditions")
254
+
255
+ @property
256
+ @pulumi.getter
257
+ def data(self) -> Optional[Any]:
258
+ """
259
+ Data contains arbitrary driver-specific data.
260
+
261
+ The length of the raw data must be smaller or equal to 10 Ki.
262
+ """
263
+ return pulumi.get(self, "data")
264
+
265
+ @property
266
+ @pulumi.getter
267
+ def device(self) -> Optional[str]:
268
+ """
269
+ Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
270
+ """
271
+ return pulumi.get(self, "device")
272
+
273
+ @property
274
+ @pulumi.getter
275
+ def driver(self) -> Optional[str]:
276
+ """
277
+ 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.
278
+
279
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
280
+ """
281
+ return pulumi.get(self, "driver")
282
+
283
+ @property
284
+ @pulumi.getter(name="networkData")
285
+ def network_data(self) -> Optional['outputs.NetworkDeviceDataPatch']:
286
+ """
287
+ NetworkData contains network-related information specific to the device.
288
+ """
289
+ return pulumi.get(self, "network_data")
290
+
291
+ @property
292
+ @pulumi.getter
293
+ def pool(self) -> Optional[str]:
294
+ """
295
+ This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
296
+
297
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
298
+ """
299
+ return pulumi.get(self, "pool")
300
+
301
+
76
302
  @pulumi.output_type
77
303
  class AllocationResult(dict):
78
304
  """
@@ -339,6 +565,8 @@ class CELDeviceSelector(dict):
339
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:
340
566
 
341
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.
342
570
  """
343
571
  pulumi.set(__self__, "expression", expression)
344
572
 
@@ -373,6 +601,8 @@ class CELDeviceSelector(dict):
373
601
  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:
374
602
 
375
603
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
604
+
605
+ 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.
376
606
  """
377
607
  return pulumi.get(self, "expression")
378
608
 
@@ -413,6 +643,8 @@ class CELDeviceSelectorPatch(dict):
413
643
  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:
414
644
 
415
645
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
646
+
647
+ 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.
416
648
  """
417
649
  if expression is not None:
418
650
  pulumi.set(__self__, "expression", expression)
@@ -448,6 +680,8 @@ class CELDeviceSelectorPatch(dict):
448
680
  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:
449
681
 
450
682
  cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
683
+
684
+ 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.
451
685
  """
452
686
  return pulumi.get(self, "expression")
453
687
 
@@ -1368,6 +1602,8 @@ class DeviceRequest(dict):
1368
1602
 
1369
1603
  Must be a DNS label.
1370
1604
  :param 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.
1605
+
1606
+ 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.
1371
1607
  :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1372
1608
 
1373
1609
  - ExactCount: This request is for a specific number of devices.
@@ -1422,6 +1658,8 @@ class DeviceRequest(dict):
1422
1658
  def admin_access(self) -> Optional[bool]:
1423
1659
  """
1424
1660
  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.
1661
+
1662
+ 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.
1425
1663
  """
1426
1664
  return pulumi.get(self, "admin_access")
1427
1665
 
@@ -1467,11 +1705,29 @@ class DeviceRequestAllocationResult(dict):
1467
1705
  """
1468
1706
  DeviceRequestAllocationResult contains the allocation result for one request.
1469
1707
  """
1708
+ @staticmethod
1709
+ def __key_warning(key: str):
1710
+ suggest = None
1711
+ if key == "adminAccess":
1712
+ suggest = "admin_access"
1713
+
1714
+ if suggest:
1715
+ pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResult. Access the value via the '{suggest}' property getter instead.")
1716
+
1717
+ def __getitem__(self, key: str) -> Any:
1718
+ DeviceRequestAllocationResult.__key_warning(key)
1719
+ return super().__getitem__(key)
1720
+
1721
+ def get(self, key: str, default = None) -> Any:
1722
+ DeviceRequestAllocationResult.__key_warning(key)
1723
+ return super().get(key, default)
1724
+
1470
1725
  def __init__(__self__, *,
1471
1726
  device: str,
1472
1727
  driver: str,
1473
1728
  pool: str,
1474
- request: str):
1729
+ request: str,
1730
+ admin_access: Optional[bool] = None):
1475
1731
  """
1476
1732
  DeviceRequestAllocationResult contains the allocation result for one request.
1477
1733
  :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
@@ -1482,11 +1738,16 @@ class DeviceRequestAllocationResult(dict):
1482
1738
 
1483
1739
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
1484
1740
  :param 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.
1741
+ :param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1742
+
1743
+ 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.
1485
1744
  """
1486
1745
  pulumi.set(__self__, "device", device)
1487
1746
  pulumi.set(__self__, "driver", driver)
1488
1747
  pulumi.set(__self__, "pool", pool)
1489
1748
  pulumi.set(__self__, "request", request)
1749
+ if admin_access is not None:
1750
+ pulumi.set(__self__, "admin_access", admin_access)
1490
1751
 
1491
1752
  @property
1492
1753
  @pulumi.getter
@@ -1524,19 +1785,50 @@ class DeviceRequestAllocationResult(dict):
1524
1785
  """
1525
1786
  return pulumi.get(self, "request")
1526
1787
 
1788
+ @property
1789
+ @pulumi.getter(name="adminAccess")
1790
+ def admin_access(self) -> Optional[bool]:
1791
+ """
1792
+ AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1793
+
1794
+ 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
+ """
1796
+ return pulumi.get(self, "admin_access")
1797
+
1527
1798
 
1528
1799
  @pulumi.output_type
1529
1800
  class DeviceRequestAllocationResultPatch(dict):
1530
1801
  """
1531
1802
  DeviceRequestAllocationResult contains the allocation result for one request.
1532
1803
  """
1804
+ @staticmethod
1805
+ def __key_warning(key: str):
1806
+ suggest = None
1807
+ if key == "adminAccess":
1808
+ suggest = "admin_access"
1809
+
1810
+ if suggest:
1811
+ pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResultPatch. Access the value via the '{suggest}' property getter instead.")
1812
+
1813
+ def __getitem__(self, key: str) -> Any:
1814
+ DeviceRequestAllocationResultPatch.__key_warning(key)
1815
+ return super().__getitem__(key)
1816
+
1817
+ def get(self, key: str, default = None) -> Any:
1818
+ DeviceRequestAllocationResultPatch.__key_warning(key)
1819
+ return super().get(key, default)
1820
+
1533
1821
  def __init__(__self__, *,
1822
+ admin_access: Optional[bool] = None,
1534
1823
  device: Optional[str] = None,
1535
1824
  driver: Optional[str] = None,
1536
1825
  pool: Optional[str] = None,
1537
1826
  request: Optional[str] = None):
1538
1827
  """
1539
1828
  DeviceRequestAllocationResult contains the allocation result for one request.
1829
+ :param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1830
+
1831
+ 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.
1540
1832
  :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
1541
1833
  :param 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.
1542
1834
 
@@ -1546,6 +1838,8 @@ class DeviceRequestAllocationResultPatch(dict):
1546
1838
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
1547
1839
  :param 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.
1548
1840
  """
1841
+ if admin_access is not None:
1842
+ pulumi.set(__self__, "admin_access", admin_access)
1549
1843
  if device is not None:
1550
1844
  pulumi.set(__self__, "device", device)
1551
1845
  if driver is not None:
@@ -1555,6 +1849,16 @@ class DeviceRequestAllocationResultPatch(dict):
1555
1849
  if request is not None:
1556
1850
  pulumi.set(__self__, "request", request)
1557
1851
 
1852
+ @property
1853
+ @pulumi.getter(name="adminAccess")
1854
+ def admin_access(self) -> Optional[bool]:
1855
+ """
1856
+ AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1857
+
1858
+ 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.
1859
+ """
1860
+ return pulumi.get(self, "admin_access")
1861
+
1558
1862
  @property
1559
1863
  @pulumi.getter
1560
1864
  def device(self) -> Optional[str]:
@@ -1632,6 +1936,8 @@ class DeviceRequestPatch(dict):
1632
1936
 
1633
1937
  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.
1634
1938
  :param 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.
1939
+
1940
+ 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.
1635
1941
  :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1636
1942
 
1637
1943
  - ExactCount: This request is for a specific number of devices.
@@ -1674,6 +1980,8 @@ class DeviceRequestPatch(dict):
1674
1980
  def admin_access(self) -> Optional[bool]:
1675
1981
  """
1676
1982
  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.
1983
+
1984
+ 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.
1677
1985
  """
1678
1986
  return pulumi.get(self, "admin_access")
1679
1987
 
@@ -1782,6 +2090,154 @@ class DeviceSelectorPatch(dict):
1782
2090
  return pulumi.get(self, "cel")
1783
2091
 
1784
2092
 
2093
+ @pulumi.output_type
2094
+ class NetworkDeviceData(dict):
2095
+ """
2096
+ 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.
2097
+ """
2098
+ @staticmethod
2099
+ def __key_warning(key: str):
2100
+ suggest = None
2101
+ if key == "hardwareAddress":
2102
+ suggest = "hardware_address"
2103
+ elif key == "interfaceName":
2104
+ suggest = "interface_name"
2105
+
2106
+ if suggest:
2107
+ pulumi.log.warn(f"Key '{key}' not found in NetworkDeviceData. Access the value via the '{suggest}' property getter instead.")
2108
+
2109
+ def __getitem__(self, key: str) -> Any:
2110
+ NetworkDeviceData.__key_warning(key)
2111
+ return super().__getitem__(key)
2112
+
2113
+ def get(self, key: str, default = None) -> Any:
2114
+ NetworkDeviceData.__key_warning(key)
2115
+ return super().get(key, default)
2116
+
2117
+ def __init__(__self__, *,
2118
+ hardware_address: Optional[str] = None,
2119
+ interface_name: Optional[str] = None,
2120
+ ips: Optional[Sequence[str]] = None):
2121
+ """
2122
+ 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.
2123
+ :param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2124
+
2125
+ Must not be longer than 128 characters.
2126
+ :param 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.
2127
+
2128
+ Must not be longer than 256 characters.
2129
+ :param Sequence[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.
2130
+ """
2131
+ if hardware_address is not None:
2132
+ pulumi.set(__self__, "hardware_address", hardware_address)
2133
+ if interface_name is not None:
2134
+ pulumi.set(__self__, "interface_name", interface_name)
2135
+ if ips is not None:
2136
+ pulumi.set(__self__, "ips", ips)
2137
+
2138
+ @property
2139
+ @pulumi.getter(name="hardwareAddress")
2140
+ def hardware_address(self) -> Optional[str]:
2141
+ """
2142
+ HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2143
+
2144
+ Must not be longer than 128 characters.
2145
+ """
2146
+ return pulumi.get(self, "hardware_address")
2147
+
2148
+ @property
2149
+ @pulumi.getter(name="interfaceName")
2150
+ def interface_name(self) -> Optional[str]:
2151
+ """
2152
+ 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.
2153
+
2154
+ Must not be longer than 256 characters.
2155
+ """
2156
+ return pulumi.get(self, "interface_name")
2157
+
2158
+ @property
2159
+ @pulumi.getter
2160
+ def ips(self) -> Optional[Sequence[str]]:
2161
+ """
2162
+ 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.
2163
+ """
2164
+ return pulumi.get(self, "ips")
2165
+
2166
+
2167
+ @pulumi.output_type
2168
+ class NetworkDeviceDataPatch(dict):
2169
+ """
2170
+ 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.
2171
+ """
2172
+ @staticmethod
2173
+ def __key_warning(key: str):
2174
+ suggest = None
2175
+ if key == "hardwareAddress":
2176
+ suggest = "hardware_address"
2177
+ elif key == "interfaceName":
2178
+ suggest = "interface_name"
2179
+
2180
+ if suggest:
2181
+ pulumi.log.warn(f"Key '{key}' not found in NetworkDeviceDataPatch. Access the value via the '{suggest}' property getter instead.")
2182
+
2183
+ def __getitem__(self, key: str) -> Any:
2184
+ NetworkDeviceDataPatch.__key_warning(key)
2185
+ return super().__getitem__(key)
2186
+
2187
+ def get(self, key: str, default = None) -> Any:
2188
+ NetworkDeviceDataPatch.__key_warning(key)
2189
+ return super().get(key, default)
2190
+
2191
+ def __init__(__self__, *,
2192
+ hardware_address: Optional[str] = None,
2193
+ interface_name: Optional[str] = None,
2194
+ ips: Optional[Sequence[str]] = None):
2195
+ """
2196
+ 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.
2197
+ :param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2198
+
2199
+ Must not be longer than 128 characters.
2200
+ :param 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.
2201
+
2202
+ Must not be longer than 256 characters.
2203
+ :param Sequence[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.
2204
+ """
2205
+ if hardware_address is not None:
2206
+ pulumi.set(__self__, "hardware_address", hardware_address)
2207
+ if interface_name is not None:
2208
+ pulumi.set(__self__, "interface_name", interface_name)
2209
+ if ips is not None:
2210
+ pulumi.set(__self__, "ips", ips)
2211
+
2212
+ @property
2213
+ @pulumi.getter(name="hardwareAddress")
2214
+ def hardware_address(self) -> Optional[str]:
2215
+ """
2216
+ HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2217
+
2218
+ Must not be longer than 128 characters.
2219
+ """
2220
+ return pulumi.get(self, "hardware_address")
2221
+
2222
+ @property
2223
+ @pulumi.getter(name="interfaceName")
2224
+ def interface_name(self) -> Optional[str]:
2225
+ """
2226
+ 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.
2227
+
2228
+ Must not be longer than 256 characters.
2229
+ """
2230
+ return pulumi.get(self, "interface_name")
2231
+
2232
+ @property
2233
+ @pulumi.getter
2234
+ def ips(self) -> Optional[Sequence[str]]:
2235
+ """
2236
+ 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.
2237
+ """
2238
+ return pulumi.get(self, "ips")
2239
+
2240
+
1785
2241
  @pulumi.output_type
1786
2242
  class OpaqueDeviceConfiguration(dict):
1787
2243
  """
@@ -1798,6 +2254,8 @@ class OpaqueDeviceConfiguration(dict):
1798
2254
 
1799
2255
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
1800
2256
  :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.
2257
+
2258
+ The length of the raw data must be smaller or equal to 10 Ki.
1801
2259
  """
1802
2260
  pulumi.set(__self__, "driver", driver)
1803
2261
  pulumi.set(__self__, "parameters", parameters)
@@ -1819,6 +2277,8 @@ class OpaqueDeviceConfiguration(dict):
1819
2277
  def parameters(self) -> Any:
1820
2278
  """
1821
2279
  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.
2280
+
2281
+ The length of the raw data must be smaller or equal to 10 Ki.
1822
2282
  """
1823
2283
  return pulumi.get(self, "parameters")
1824
2284
 
@@ -1839,6 +2299,8 @@ class OpaqueDeviceConfigurationPatch(dict):
1839
2299
 
1840
2300
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
1841
2301
  :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.
2302
+
2303
+ The length of the raw data must be smaller or equal to 10 Ki.
1842
2304
  """
1843
2305
  if driver is not None:
1844
2306
  pulumi.set(__self__, "driver", driver)
@@ -1862,6 +2324,8 @@ class OpaqueDeviceConfigurationPatch(dict):
1862
2324
  def parameters(self) -> Optional[Any]:
1863
2325
  """
1864
2326
  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.
2327
+
2328
+ The length of the raw data must be smaller or equal to 10 Ki.
1865
2329
  """
1866
2330
  return pulumi.get(self, "parameters")
1867
2331
 
@@ -2617,6 +3081,7 @@ class ResourceClaimStatus(dict):
2617
3081
  def __init__(__self__, *,
2618
3082
  allocation: Optional['outputs.AllocationResult'] = None,
2619
3083
  deallocation_requested: Optional[bool] = None,
3084
+ devices: Optional[Sequence['outputs.AllocatedDeviceStatus']] = None,
2620
3085
  reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReference']] = None):
2621
3086
  """
2622
3087
  ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.
@@ -2626,6 +3091,7 @@ class ResourceClaimStatus(dict):
2626
3091
  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.
2627
3092
 
2628
3093
  This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
3094
+ :param Sequence['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.
2629
3095
  :param Sequence['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.
2630
3096
 
2631
3097
  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.
@@ -2638,6 +3104,8 @@ class ResourceClaimStatus(dict):
2638
3104
  pulumi.set(__self__, "allocation", allocation)
2639
3105
  if deallocation_requested is not None:
2640
3106
  pulumi.set(__self__, "deallocation_requested", deallocation_requested)
3107
+ if devices is not None:
3108
+ pulumi.set(__self__, "devices", devices)
2641
3109
  if reserved_for is not None:
2642
3110
  pulumi.set(__self__, "reserved_for", reserved_for)
2643
3111
 
@@ -2661,6 +3129,14 @@ class ResourceClaimStatus(dict):
2661
3129
  """
2662
3130
  return pulumi.get(self, "deallocation_requested")
2663
3131
 
3132
+ @property
3133
+ @pulumi.getter
3134
+ def devices(self) -> Optional[Sequence['outputs.AllocatedDeviceStatus']]:
3135
+ """
3136
+ 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.
3137
+ """
3138
+ return pulumi.get(self, "devices")
3139
+
2664
3140
  @property
2665
3141
  @pulumi.getter(name="reservedFor")
2666
3142
  def reserved_for(self) -> Optional[Sequence['outputs.ResourceClaimConsumerReference']]:
@@ -2703,6 +3179,7 @@ class ResourceClaimStatusPatch(dict):
2703
3179
  def __init__(__self__, *,
2704
3180
  allocation: Optional['outputs.AllocationResultPatch'] = None,
2705
3181
  deallocation_requested: Optional[bool] = None,
3182
+ devices: Optional[Sequence['outputs.AllocatedDeviceStatusPatch']] = None,
2706
3183
  reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']] = None):
2707
3184
  """
2708
3185
  ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.
@@ -2712,6 +3189,7 @@ class ResourceClaimStatusPatch(dict):
2712
3189
  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.
2713
3190
 
2714
3191
  This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
3192
+ :param Sequence['AllocatedDeviceStatusPatchArgs'] 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.
2715
3193
  :param Sequence['ResourceClaimConsumerReferencePatchArgs'] 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.
2716
3194
 
2717
3195
  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.
@@ -2724,6 +3202,8 @@ class ResourceClaimStatusPatch(dict):
2724
3202
  pulumi.set(__self__, "allocation", allocation)
2725
3203
  if deallocation_requested is not None:
2726
3204
  pulumi.set(__self__, "deallocation_requested", deallocation_requested)
3205
+ if devices is not None:
3206
+ pulumi.set(__self__, "devices", devices)
2727
3207
  if reserved_for is not None:
2728
3208
  pulumi.set(__self__, "reserved_for", reserved_for)
2729
3209
 
@@ -2747,6 +3227,14 @@ class ResourceClaimStatusPatch(dict):
2747
3227
  """
2748
3228
  return pulumi.get(self, "deallocation_requested")
2749
3229
 
3230
+ @property
3231
+ @pulumi.getter
3232
+ def devices(self) -> Optional[Sequence['outputs.AllocatedDeviceStatusPatch']]:
3233
+ """
3234
+ 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.
3235
+ """
3236
+ return pulumi.get(self, "devices")
3237
+
2750
3238
  @property
2751
3239
  @pulumi.getter(name="reservedFor")
2752
3240
  def reserved_for(self) -> Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']]:
@@ -2856,7 +3344,7 @@ class ResourceClaimTemplateSpec(dict):
2856
3344
  """
2857
3345
  ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.
2858
3346
  :param '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.
2859
- :param '_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.
3347
+ :param '_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.
2860
3348
  """
2861
3349
  pulumi.set(__self__, "spec", spec)
2862
3350
  if metadata is not None:
@@ -2874,7 +3362,7 @@ class ResourceClaimTemplateSpec(dict):
2874
3362
  @pulumi.getter
2875
3363
  def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']:
2876
3364
  """
2877
- 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.
3365
+ 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.
2878
3366
  """
2879
3367
  return pulumi.get(self, "metadata")
2880
3368
 
@@ -2889,7 +3377,7 @@ class ResourceClaimTemplateSpecPatch(dict):
2889
3377
  spec: Optional['outputs.ResourceClaimSpecPatch'] = None):
2890
3378
  """
2891
3379
  ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.
2892
- :param '_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.
3380
+ :param '_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.
2893
3381
  :param '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.
2894
3382
  """
2895
3383
  if metadata is not None:
@@ -2901,7 +3389,7 @@ class ResourceClaimTemplateSpecPatch(dict):
2901
3389
  @pulumi.getter
2902
3390
  def metadata(self) -> Optional['_meta.v1.outputs.ObjectMetaPatch']:
2903
3391
  """
2904
- 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.
3392
+ 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.
2905
3393
  """
2906
3394
  return pulumi.get(self, "metadata")
2907
3395
 
@@ -3063,6 +3551,105 @@ class ResourcePoolPatch(dict):
3063
3551
  return pulumi.get(self, "resource_slice_count")
3064
3552
 
3065
3553
 
3554
+ @pulumi.output_type
3555
+ class ResourceSlice(dict):
3556
+ """
3557
+ 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.
3558
+
3559
+ 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>.
3560
+
3561
+ 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.
3562
+
3563
+ 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.
3564
+
3565
+ 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.
3566
+
3567
+ This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
3568
+ """
3569
+ @staticmethod
3570
+ def __key_warning(key: str):
3571
+ suggest = None
3572
+ if key == "apiVersion":
3573
+ suggest = "api_version"
3574
+
3575
+ if suggest:
3576
+ pulumi.log.warn(f"Key '{key}' not found in ResourceSlice. Access the value via the '{suggest}' property getter instead.")
3577
+
3578
+ def __getitem__(self, key: str) -> Any:
3579
+ ResourceSlice.__key_warning(key)
3580
+ return super().__getitem__(key)
3581
+
3582
+ def get(self, key: str, default = None) -> Any:
3583
+ ResourceSlice.__key_warning(key)
3584
+ return super().get(key, default)
3585
+
3586
+ def __init__(__self__, *,
3587
+ spec: 'outputs.ResourceSliceSpec',
3588
+ api_version: Optional[str] = None,
3589
+ kind: Optional[str] = None,
3590
+ metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
3591
+ """
3592
+ 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.
3593
+
3594
+ 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>.
3595
+
3596
+ 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.
3597
+
3598
+ 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.
3599
+
3600
+ 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.
3601
+
3602
+ This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
3603
+ :param 'ResourceSliceSpecArgs' spec: Contains the information published by the driver.
3604
+
3605
+ Changing the spec automatically increments the metadata.generation number.
3606
+ :param 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
3607
+ :param 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
3608
+ :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
3609
+ """
3610
+ pulumi.set(__self__, "spec", spec)
3611
+ if api_version is not None:
3612
+ pulumi.set(__self__, "api_version", 'resource.k8s.io/v1alpha3')
3613
+ if kind is not None:
3614
+ pulumi.set(__self__, "kind", 'ResourceSlice')
3615
+ if metadata is not None:
3616
+ pulumi.set(__self__, "metadata", metadata)
3617
+
3618
+ @property
3619
+ @pulumi.getter
3620
+ def spec(self) -> 'outputs.ResourceSliceSpec':
3621
+ """
3622
+ Contains the information published by the driver.
3623
+
3624
+ Changing the spec automatically increments the metadata.generation number.
3625
+ """
3626
+ return pulumi.get(self, "spec")
3627
+
3628
+ @property
3629
+ @pulumi.getter(name="apiVersion")
3630
+ def api_version(self) -> Optional[str]:
3631
+ """
3632
+ 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
3633
+ """
3634
+ return pulumi.get(self, "api_version")
3635
+
3636
+ @property
3637
+ @pulumi.getter
3638
+ def kind(self) -> Optional[str]:
3639
+ """
3640
+ 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
3641
+ """
3642
+ return pulumi.get(self, "kind")
3643
+
3644
+ @property
3645
+ @pulumi.getter
3646
+ def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']:
3647
+ """
3648
+ Standard object metadata
3649
+ """
3650
+ return pulumi.get(self, "metadata")
3651
+
3652
+
3066
3653
  @pulumi.output_type
3067
3654
  class ResourceSliceSpec(dict):
3068
3655
  """