pulumi-kubernetes 4.22.1__py3-none-any.whl → 4.23.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (702) hide show
  1. pulumi_kubernetes/__init__.py +37 -2
  2. pulumi_kubernetes/_inputs.py +41 -40
  3. pulumi_kubernetes/admissionregistration/__init__.py +1 -0
  4. pulumi_kubernetes/admissionregistration/v1/MutatingWebhookConfiguration.py +18 -16
  5. pulumi_kubernetes/admissionregistration/v1/MutatingWebhookConfigurationList.py +18 -16
  6. pulumi_kubernetes/admissionregistration/v1/MutatingWebhookConfigurationPatch.py +18 -16
  7. pulumi_kubernetes/admissionregistration/v1/ValidatingAdmissionPolicy.py +18 -16
  8. pulumi_kubernetes/admissionregistration/v1/ValidatingAdmissionPolicyBinding.py +18 -16
  9. pulumi_kubernetes/admissionregistration/v1/ValidatingAdmissionPolicyBindingList.py +18 -16
  10. pulumi_kubernetes/admissionregistration/v1/ValidatingAdmissionPolicyBindingPatch.py +18 -16
  11. pulumi_kubernetes/admissionregistration/v1/ValidatingAdmissionPolicyList.py +18 -16
  12. pulumi_kubernetes/admissionregistration/v1/ValidatingAdmissionPolicyPatch.py +18 -16
  13. pulumi_kubernetes/admissionregistration/v1/ValidatingWebhookConfiguration.py +18 -16
  14. pulumi_kubernetes/admissionregistration/v1/ValidatingWebhookConfigurationList.py +18 -16
  15. pulumi_kubernetes/admissionregistration/v1/ValidatingWebhookConfigurationPatch.py +18 -16
  16. pulumi_kubernetes/admissionregistration/v1/__init__.py +1 -0
  17. pulumi_kubernetes/admissionregistration/v1/_inputs.py +546 -545
  18. pulumi_kubernetes/admissionregistration/v1/outputs.py +337 -336
  19. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.py +18 -16
  20. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.py +18 -16
  21. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.py +18 -16
  22. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.py +18 -16
  23. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.py +18 -16
  24. pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.py +18 -16
  25. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicy.py +18 -16
  26. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.py +18 -16
  27. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingList.py +18 -16
  28. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.py +18 -16
  29. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyList.py +18 -16
  30. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyPatch.py +18 -16
  31. pulumi_kubernetes/admissionregistration/v1alpha1/__init__.py +1 -0
  32. pulumi_kubernetes/admissionregistration/v1alpha1/_inputs.py +396 -395
  33. pulumi_kubernetes/admissionregistration/v1alpha1/outputs.py +249 -248
  34. pulumi_kubernetes/admissionregistration/v1beta1/MutatingWebhookConfiguration.py +18 -16
  35. pulumi_kubernetes/admissionregistration/v1beta1/MutatingWebhookConfigurationList.py +18 -16
  36. pulumi_kubernetes/admissionregistration/v1beta1/MutatingWebhookConfigurationPatch.py +18 -16
  37. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingAdmissionPolicy.py +18 -16
  38. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingAdmissionPolicyBinding.py +18 -16
  39. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingAdmissionPolicyBindingList.py +18 -16
  40. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingAdmissionPolicyBindingPatch.py +18 -16
  41. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingAdmissionPolicyList.py +18 -16
  42. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingAdmissionPolicyPatch.py +18 -16
  43. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingWebhookConfiguration.py +18 -16
  44. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingWebhookConfigurationList.py +18 -16
  45. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingWebhookConfigurationPatch.py +18 -16
  46. pulumi_kubernetes/admissionregistration/v1beta1/__init__.py +1 -0
  47. pulumi_kubernetes/admissionregistration/v1beta1/_inputs.py +546 -545
  48. pulumi_kubernetes/admissionregistration/v1beta1/outputs.py +337 -336
  49. pulumi_kubernetes/apiextensions/__init__.py +1 -0
  50. pulumi_kubernetes/apiextensions/v1/CustomResourceDefinition.py +18 -16
  51. pulumi_kubernetes/apiextensions/v1/CustomResourceDefinitionList.py +18 -16
  52. pulumi_kubernetes/apiextensions/v1/CustomResourceDefinitionPatch.py +18 -16
  53. pulumi_kubernetes/apiextensions/v1/__init__.py +1 -0
  54. pulumi_kubernetes/apiextensions/v1/_inputs.py +699 -698
  55. pulumi_kubernetes/apiextensions/v1/outputs.py +405 -404
  56. pulumi_kubernetes/apiextensions/v1beta1/CustomResourceDefinition.py +18 -16
  57. pulumi_kubernetes/apiextensions/v1beta1/CustomResourceDefinitionList.py +18 -16
  58. pulumi_kubernetes/apiextensions/v1beta1/CustomResourceDefinitionPatch.py +18 -16
  59. pulumi_kubernetes/apiextensions/v1beta1/__init__.py +1 -0
  60. pulumi_kubernetes/apiextensions/v1beta1/_inputs.py +639 -638
  61. pulumi_kubernetes/apiextensions/v1beta1/outputs.py +369 -368
  62. pulumi_kubernetes/apiregistration/__init__.py +1 -0
  63. pulumi_kubernetes/apiregistration/v1/APIService.py +18 -16
  64. pulumi_kubernetes/apiregistration/v1/APIServiceList.py +18 -16
  65. pulumi_kubernetes/apiregistration/v1/APIServicePatch.py +18 -16
  66. pulumi_kubernetes/apiregistration/v1/__init__.py +1 -0
  67. pulumi_kubernetes/apiregistration/v1/_inputs.py +126 -125
  68. pulumi_kubernetes/apiregistration/v1/outputs.py +91 -90
  69. pulumi_kubernetes/apiregistration/v1beta1/APIService.py +18 -16
  70. pulumi_kubernetes/apiregistration/v1beta1/APIServiceList.py +18 -16
  71. pulumi_kubernetes/apiregistration/v1beta1/APIServicePatch.py +18 -16
  72. pulumi_kubernetes/apiregistration/v1beta1/__init__.py +1 -0
  73. pulumi_kubernetes/apiregistration/v1beta1/_inputs.py +126 -125
  74. pulumi_kubernetes/apiregistration/v1beta1/outputs.py +91 -90
  75. pulumi_kubernetes/apps/__init__.py +1 -0
  76. pulumi_kubernetes/apps/v1/ControllerRevision.py +26 -24
  77. pulumi_kubernetes/apps/v1/ControllerRevisionList.py +18 -16
  78. pulumi_kubernetes/apps/v1/ControllerRevisionPatch.py +26 -24
  79. pulumi_kubernetes/apps/v1/DaemonSet.py +18 -16
  80. pulumi_kubernetes/apps/v1/DaemonSetList.py +18 -16
  81. pulumi_kubernetes/apps/v1/DaemonSetPatch.py +18 -16
  82. pulumi_kubernetes/apps/v1/Deployment.py +18 -16
  83. pulumi_kubernetes/apps/v1/DeploymentList.py +18 -16
  84. pulumi_kubernetes/apps/v1/DeploymentPatch.py +18 -16
  85. pulumi_kubernetes/apps/v1/ReplicaSet.py +18 -16
  86. pulumi_kubernetes/apps/v1/ReplicaSetList.py +22 -20
  87. pulumi_kubernetes/apps/v1/ReplicaSetPatch.py +18 -16
  88. pulumi_kubernetes/apps/v1/StatefulSet.py +18 -16
  89. pulumi_kubernetes/apps/v1/StatefulSetList.py +18 -16
  90. pulumi_kubernetes/apps/v1/StatefulSetPatch.py +18 -16
  91. pulumi_kubernetes/apps/v1/__init__.py +1 -0
  92. pulumi_kubernetes/apps/v1/_inputs.py +664 -610
  93. pulumi_kubernetes/apps/v1/outputs.py +582 -508
  94. pulumi_kubernetes/apps/v1beta1/ControllerRevision.py +26 -24
  95. pulumi_kubernetes/apps/v1beta1/ControllerRevisionList.py +18 -16
  96. pulumi_kubernetes/apps/v1beta1/ControllerRevisionPatch.py +26 -24
  97. pulumi_kubernetes/apps/v1beta1/Deployment.py +18 -16
  98. pulumi_kubernetes/apps/v1beta1/DeploymentList.py +18 -16
  99. pulumi_kubernetes/apps/v1beta1/DeploymentPatch.py +18 -16
  100. pulumi_kubernetes/apps/v1beta1/StatefulSet.py +18 -16
  101. pulumi_kubernetes/apps/v1beta1/StatefulSetList.py +18 -16
  102. pulumi_kubernetes/apps/v1beta1/StatefulSetPatch.py +18 -16
  103. pulumi_kubernetes/apps/v1beta1/__init__.py +1 -0
  104. pulumi_kubernetes/apps/v1beta1/_inputs.py +316 -315
  105. pulumi_kubernetes/apps/v1beta1/outputs.py +260 -259
  106. pulumi_kubernetes/apps/v1beta2/ControllerRevision.py +26 -24
  107. pulumi_kubernetes/apps/v1beta2/ControllerRevisionList.py +18 -16
  108. pulumi_kubernetes/apps/v1beta2/ControllerRevisionPatch.py +26 -24
  109. pulumi_kubernetes/apps/v1beta2/DaemonSet.py +18 -16
  110. pulumi_kubernetes/apps/v1beta2/DaemonSetList.py +18 -16
  111. pulumi_kubernetes/apps/v1beta2/DaemonSetPatch.py +18 -16
  112. pulumi_kubernetes/apps/v1beta2/Deployment.py +18 -16
  113. pulumi_kubernetes/apps/v1beta2/DeploymentList.py +18 -16
  114. pulumi_kubernetes/apps/v1beta2/DeploymentPatch.py +18 -16
  115. pulumi_kubernetes/apps/v1beta2/ReplicaSet.py +18 -16
  116. pulumi_kubernetes/apps/v1beta2/ReplicaSetList.py +18 -16
  117. pulumi_kubernetes/apps/v1beta2/ReplicaSetPatch.py +18 -16
  118. pulumi_kubernetes/apps/v1beta2/StatefulSet.py +18 -16
  119. pulumi_kubernetes/apps/v1beta2/StatefulSetList.py +18 -16
  120. pulumi_kubernetes/apps/v1beta2/StatefulSetPatch.py +18 -16
  121. pulumi_kubernetes/apps/v1beta2/__init__.py +1 -0
  122. pulumi_kubernetes/apps/v1beta2/_inputs.py +506 -505
  123. pulumi_kubernetes/apps/v1beta2/outputs.py +442 -441
  124. pulumi_kubernetes/auditregistration/__init__.py +1 -0
  125. pulumi_kubernetes/auditregistration/v1alpha1/AuditSink.py +18 -16
  126. pulumi_kubernetes/auditregistration/v1alpha1/AuditSinkList.py +18 -16
  127. pulumi_kubernetes/auditregistration/v1alpha1/AuditSinkPatch.py +18 -16
  128. pulumi_kubernetes/auditregistration/v1alpha1/__init__.py +1 -0
  129. pulumi_kubernetes/auditregistration/v1alpha1/_inputs.py +111 -110
  130. pulumi_kubernetes/auditregistration/v1alpha1/outputs.py +67 -66
  131. pulumi_kubernetes/autoscaling/__init__.py +1 -0
  132. pulumi_kubernetes/autoscaling/v1/HorizontalPodAutoscaler.py +18 -16
  133. pulumi_kubernetes/autoscaling/v1/HorizontalPodAutoscalerList.py +18 -16
  134. pulumi_kubernetes/autoscaling/v1/HorizontalPodAutoscalerPatch.py +18 -16
  135. pulumi_kubernetes/autoscaling/v1/__init__.py +1 -0
  136. pulumi_kubernetes/autoscaling/v1/_inputs.py +96 -95
  137. pulumi_kubernetes/autoscaling/v1/outputs.py +73 -72
  138. pulumi_kubernetes/autoscaling/v2/HorizontalPodAutoscaler.py +18 -16
  139. pulumi_kubernetes/autoscaling/v2/HorizontalPodAutoscalerList.py +18 -16
  140. pulumi_kubernetes/autoscaling/v2/HorizontalPodAutoscalerPatch.py +18 -16
  141. pulumi_kubernetes/autoscaling/v2/__init__.py +1 -0
  142. pulumi_kubernetes/autoscaling/v2/_inputs.py +371 -290
  143. pulumi_kubernetes/autoscaling/v2/outputs.py +281 -224
  144. pulumi_kubernetes/autoscaling/v2beta1/HorizontalPodAutoscaler.py +18 -16
  145. pulumi_kubernetes/autoscaling/v2beta1/HorizontalPodAutoscalerList.py +18 -16
  146. pulumi_kubernetes/autoscaling/v2beta1/HorizontalPodAutoscalerPatch.py +18 -16
  147. pulumi_kubernetes/autoscaling/v2beta1/__init__.py +1 -0
  148. pulumi_kubernetes/autoscaling/v2beta1/_inputs.py +346 -345
  149. pulumi_kubernetes/autoscaling/v2beta1/outputs.py +283 -282
  150. pulumi_kubernetes/autoscaling/v2beta2/HorizontalPodAutoscaler.py +18 -16
  151. pulumi_kubernetes/autoscaling/v2beta2/HorizontalPodAutoscalerList.py +18 -16
  152. pulumi_kubernetes/autoscaling/v2beta2/HorizontalPodAutoscalerPatch.py +18 -16
  153. pulumi_kubernetes/autoscaling/v2beta2/__init__.py +1 -0
  154. pulumi_kubernetes/autoscaling/v2beta2/_inputs.py +281 -280
  155. pulumi_kubernetes/autoscaling/v2beta2/outputs.py +217 -216
  156. pulumi_kubernetes/batch/__init__.py +1 -0
  157. pulumi_kubernetes/batch/v1/CronJob.py +18 -16
  158. pulumi_kubernetes/batch/v1/CronJobList.py +18 -16
  159. pulumi_kubernetes/batch/v1/CronJobPatch.py +18 -16
  160. pulumi_kubernetes/batch/v1/Job.py +18 -16
  161. pulumi_kubernetes/batch/v1/JobList.py +18 -16
  162. pulumi_kubernetes/batch/v1/JobPatch.py +18 -16
  163. pulumi_kubernetes/batch/v1/__init__.py +1 -0
  164. pulumi_kubernetes/batch/v1/_inputs.py +394 -423
  165. pulumi_kubernetes/batch/v1/outputs.py +293 -316
  166. pulumi_kubernetes/batch/v1beta1/CronJob.py +18 -16
  167. pulumi_kubernetes/batch/v1beta1/CronJobList.py +18 -16
  168. pulumi_kubernetes/batch/v1beta1/CronJobPatch.py +18 -16
  169. pulumi_kubernetes/batch/v1beta1/__init__.py +1 -0
  170. pulumi_kubernetes/batch/v1beta1/_inputs.py +76 -75
  171. pulumi_kubernetes/batch/v1beta1/outputs.py +49 -48
  172. pulumi_kubernetes/batch/v2alpha1/CronJob.py +18 -16
  173. pulumi_kubernetes/batch/v2alpha1/CronJobList.py +18 -16
  174. pulumi_kubernetes/batch/v2alpha1/CronJobPatch.py +18 -16
  175. pulumi_kubernetes/batch/v2alpha1/__init__.py +1 -0
  176. pulumi_kubernetes/batch/v2alpha1/_inputs.py +76 -75
  177. pulumi_kubernetes/batch/v2alpha1/outputs.py +49 -48
  178. pulumi_kubernetes/certificates/__init__.py +1 -0
  179. pulumi_kubernetes/certificates/v1/CertificateSigningRequest.py +18 -16
  180. pulumi_kubernetes/certificates/v1/CertificateSigningRequestList.py +18 -16
  181. pulumi_kubernetes/certificates/v1/CertificateSigningRequestPatch.py +18 -16
  182. pulumi_kubernetes/certificates/v1/__init__.py +1 -0
  183. pulumi_kubernetes/certificates/v1/_inputs.py +126 -125
  184. pulumi_kubernetes/certificates/v1/outputs.py +97 -96
  185. pulumi_kubernetes/certificates/v1alpha1/ClusterTrustBundle.py +20 -16
  186. pulumi_kubernetes/certificates/v1alpha1/ClusterTrustBundleList.py +18 -16
  187. pulumi_kubernetes/certificates/v1alpha1/ClusterTrustBundlePatch.py +20 -16
  188. pulumi_kubernetes/certificates/v1alpha1/__init__.py +1 -0
  189. pulumi_kubernetes/certificates/v1alpha1/_inputs.py +31 -30
  190. pulumi_kubernetes/certificates/v1alpha1/outputs.py +19 -18
  191. pulumi_kubernetes/certificates/v1beta1/CertificateSigningRequest.py +18 -16
  192. pulumi_kubernetes/certificates/v1beta1/CertificateSigningRequestList.py +18 -16
  193. pulumi_kubernetes/certificates/v1beta1/CertificateSigningRequestPatch.py +18 -16
  194. pulumi_kubernetes/certificates/v1beta1/ClusterTrustBundle.py +227 -0
  195. pulumi_kubernetes/certificates/v1beta1/ClusterTrustBundleList.py +217 -0
  196. pulumi_kubernetes/certificates/v1beta1/ClusterTrustBundlePatch.py +238 -0
  197. pulumi_kubernetes/certificates/v1beta1/__init__.py +4 -0
  198. pulumi_kubernetes/certificates/v1beta1/_inputs.py +409 -116
  199. pulumi_kubernetes/certificates/v1beta1/outputs.py +334 -92
  200. pulumi_kubernetes/coordination/__init__.py +1 -0
  201. pulumi_kubernetes/coordination/v1/Lease.py +18 -16
  202. pulumi_kubernetes/coordination/v1/LeaseList.py +18 -16
  203. pulumi_kubernetes/coordination/v1/LeasePatch.py +18 -16
  204. pulumi_kubernetes/coordination/v1/__init__.py +1 -0
  205. pulumi_kubernetes/coordination/v1/_inputs.py +81 -80
  206. pulumi_kubernetes/coordination/v1/outputs.py +49 -48
  207. pulumi_kubernetes/coordination/v1alpha1/LeaseCandidate.py +19 -17
  208. pulumi_kubernetes/coordination/v1alpha1/LeaseCandidateList.py +18 -16
  209. pulumi_kubernetes/coordination/v1alpha1/LeaseCandidatePatch.py +19 -17
  210. pulumi_kubernetes/coordination/v1alpha1/__init__.py +1 -0
  211. pulumi_kubernetes/coordination/v1alpha1/_inputs.py +71 -70
  212. pulumi_kubernetes/coordination/v1alpha1/outputs.py +43 -42
  213. pulumi_kubernetes/coordination/v1alpha2/LeaseCandidate.py +19 -17
  214. pulumi_kubernetes/coordination/v1alpha2/LeaseCandidateList.py +18 -16
  215. pulumi_kubernetes/coordination/v1alpha2/LeaseCandidatePatch.py +19 -17
  216. pulumi_kubernetes/coordination/v1alpha2/__init__.py +1 -0
  217. pulumi_kubernetes/coordination/v1alpha2/_inputs.py +75 -74
  218. pulumi_kubernetes/coordination/v1alpha2/outputs.py +45 -44
  219. pulumi_kubernetes/coordination/v1beta1/Lease.py +18 -16
  220. pulumi_kubernetes/coordination/v1beta1/LeaseCandidate.py +218 -0
  221. pulumi_kubernetes/coordination/v1beta1/LeaseCandidateList.py +217 -0
  222. pulumi_kubernetes/coordination/v1beta1/LeaseCandidatePatch.py +230 -0
  223. pulumi_kubernetes/coordination/v1beta1/LeaseList.py +18 -16
  224. pulumi_kubernetes/coordination/v1beta1/LeasePatch.py +18 -16
  225. pulumi_kubernetes/coordination/v1beta1/__init__.py +4 -0
  226. pulumi_kubernetes/coordination/v1beta1/_inputs.py +432 -60
  227. pulumi_kubernetes/coordination/v1beta1/outputs.py +329 -36
  228. pulumi_kubernetes/core/__init__.py +1 -0
  229. pulumi_kubernetes/core/v1/Binding.py +18 -16
  230. pulumi_kubernetes/core/v1/BindingPatch.py +18 -16
  231. pulumi_kubernetes/core/v1/ConfigMap.py +42 -40
  232. pulumi_kubernetes/core/v1/ConfigMapList.py +18 -16
  233. pulumi_kubernetes/core/v1/ConfigMapPatch.py +42 -40
  234. pulumi_kubernetes/core/v1/Endpoints.py +26 -16
  235. pulumi_kubernetes/core/v1/EndpointsList.py +20 -18
  236. pulumi_kubernetes/core/v1/EndpointsPatch.py +26 -16
  237. pulumi_kubernetes/core/v1/Event.py +98 -96
  238. pulumi_kubernetes/core/v1/EventList.py +18 -16
  239. pulumi_kubernetes/core/v1/EventPatch.py +98 -96
  240. pulumi_kubernetes/core/v1/LimitRange.py +18 -16
  241. pulumi_kubernetes/core/v1/LimitRangeList.py +18 -16
  242. pulumi_kubernetes/core/v1/LimitRangePatch.py +18 -16
  243. pulumi_kubernetes/core/v1/Namespace.py +18 -16
  244. pulumi_kubernetes/core/v1/NamespaceList.py +18 -16
  245. pulumi_kubernetes/core/v1/NamespacePatch.py +18 -16
  246. pulumi_kubernetes/core/v1/Node.py +18 -16
  247. pulumi_kubernetes/core/v1/NodeList.py +18 -16
  248. pulumi_kubernetes/core/v1/NodePatch.py +18 -16
  249. pulumi_kubernetes/core/v1/PersistentVolume.py +18 -16
  250. pulumi_kubernetes/core/v1/PersistentVolumeClaim.py +18 -16
  251. pulumi_kubernetes/core/v1/PersistentVolumeClaimList.py +18 -16
  252. pulumi_kubernetes/core/v1/PersistentVolumeClaimPatch.py +18 -16
  253. pulumi_kubernetes/core/v1/PersistentVolumeList.py +18 -16
  254. pulumi_kubernetes/core/v1/PersistentVolumePatch.py +18 -16
  255. pulumi_kubernetes/core/v1/Pod.py +18 -16
  256. pulumi_kubernetes/core/v1/PodList.py +18 -16
  257. pulumi_kubernetes/core/v1/PodPatch.py +18 -16
  258. pulumi_kubernetes/core/v1/PodTemplate.py +18 -16
  259. pulumi_kubernetes/core/v1/PodTemplateList.py +18 -16
  260. pulumi_kubernetes/core/v1/PodTemplatePatch.py +18 -16
  261. pulumi_kubernetes/core/v1/ReplicationController.py +18 -16
  262. pulumi_kubernetes/core/v1/ReplicationControllerList.py +18 -16
  263. pulumi_kubernetes/core/v1/ReplicationControllerPatch.py +18 -16
  264. pulumi_kubernetes/core/v1/ResourceQuota.py +18 -16
  265. pulumi_kubernetes/core/v1/ResourceQuotaList.py +18 -16
  266. pulumi_kubernetes/core/v1/ResourceQuotaPatch.py +18 -16
  267. pulumi_kubernetes/core/v1/Secret.py +50 -48
  268. pulumi_kubernetes/core/v1/SecretList.py +18 -16
  269. pulumi_kubernetes/core/v1/SecretPatch.py +50 -48
  270. pulumi_kubernetes/core/v1/Service.py +18 -16
  271. pulumi_kubernetes/core/v1/ServiceAccount.py +26 -24
  272. pulumi_kubernetes/core/v1/ServiceAccountList.py +18 -16
  273. pulumi_kubernetes/core/v1/ServiceAccountPatch.py +26 -24
  274. pulumi_kubernetes/core/v1/ServiceList.py +18 -16
  275. pulumi_kubernetes/core/v1/ServicePatch.py +18 -16
  276. pulumi_kubernetes/core/v1/__init__.py +1 -0
  277. pulumi_kubernetes/core/v1/_enums.py +4 -1
  278. pulumi_kubernetes/core/v1/_inputs.py +5736 -5561
  279. pulumi_kubernetes/core/v1/outputs.py +3853 -3652
  280. pulumi_kubernetes/discovery/__init__.py +1 -0
  281. pulumi_kubernetes/discovery/v1/EndpointSlice.py +34 -32
  282. pulumi_kubernetes/discovery/v1/EndpointSliceList.py +18 -16
  283. pulumi_kubernetes/discovery/v1/EndpointSlicePatch.py +34 -32
  284. pulumi_kubernetes/discovery/v1/__init__.py +1 -0
  285. pulumi_kubernetes/discovery/v1/_inputs.py +294 -178
  286. pulumi_kubernetes/discovery/v1/outputs.py +184 -108
  287. pulumi_kubernetes/discovery/v1beta1/EndpointSlice.py +26 -24
  288. pulumi_kubernetes/discovery/v1beta1/EndpointSliceList.py +18 -16
  289. pulumi_kubernetes/discovery/v1beta1/EndpointSlicePatch.py +26 -24
  290. pulumi_kubernetes/discovery/v1beta1/__init__.py +1 -0
  291. pulumi_kubernetes/discovery/v1beta1/_inputs.py +126 -125
  292. pulumi_kubernetes/discovery/v1beta1/outputs.py +76 -75
  293. pulumi_kubernetes/events/__init__.py +1 -0
  294. pulumi_kubernetes/events/v1/Event.py +98 -96
  295. pulumi_kubernetes/events/v1/EventList.py +18 -16
  296. pulumi_kubernetes/events/v1/EventPatch.py +98 -96
  297. pulumi_kubernetes/events/v1/__init__.py +1 -0
  298. pulumi_kubernetes/events/v1/_inputs.py +81 -80
  299. pulumi_kubernetes/events/v1/outputs.py +49 -48
  300. pulumi_kubernetes/events/v1beta1/Event.py +98 -96
  301. pulumi_kubernetes/events/v1beta1/EventList.py +18 -16
  302. pulumi_kubernetes/events/v1beta1/EventPatch.py +98 -96
  303. pulumi_kubernetes/events/v1beta1/__init__.py +1 -0
  304. pulumi_kubernetes/events/v1beta1/_inputs.py +91 -90
  305. pulumi_kubernetes/events/v1beta1/outputs.py +55 -54
  306. pulumi_kubernetes/extensions/__init__.py +1 -0
  307. pulumi_kubernetes/extensions/v1beta1/DaemonSet.py +18 -16
  308. pulumi_kubernetes/extensions/v1beta1/DaemonSetList.py +18 -16
  309. pulumi_kubernetes/extensions/v1beta1/DaemonSetPatch.py +18 -16
  310. pulumi_kubernetes/extensions/v1beta1/Deployment.py +18 -16
  311. pulumi_kubernetes/extensions/v1beta1/DeploymentList.py +18 -16
  312. pulumi_kubernetes/extensions/v1beta1/DeploymentPatch.py +18 -16
  313. pulumi_kubernetes/extensions/v1beta1/Ingress.py +18 -16
  314. pulumi_kubernetes/extensions/v1beta1/IngressList.py +18 -16
  315. pulumi_kubernetes/extensions/v1beta1/IngressPatch.py +18 -16
  316. pulumi_kubernetes/extensions/v1beta1/NetworkPolicy.py +18 -16
  317. pulumi_kubernetes/extensions/v1beta1/NetworkPolicyList.py +18 -16
  318. pulumi_kubernetes/extensions/v1beta1/NetworkPolicyPatch.py +18 -16
  319. pulumi_kubernetes/extensions/v1beta1/PodSecurityPolicy.py +18 -16
  320. pulumi_kubernetes/extensions/v1beta1/PodSecurityPolicyList.py +18 -16
  321. pulumi_kubernetes/extensions/v1beta1/PodSecurityPolicyPatch.py +18 -16
  322. pulumi_kubernetes/extensions/v1beta1/ReplicaSet.py +18 -16
  323. pulumi_kubernetes/extensions/v1beta1/ReplicaSetList.py +18 -16
  324. pulumi_kubernetes/extensions/v1beta1/ReplicaSetPatch.py +18 -16
  325. pulumi_kubernetes/extensions/v1beta1/__init__.py +1 -0
  326. pulumi_kubernetes/extensions/v1beta1/_inputs.py +826 -825
  327. pulumi_kubernetes/extensions/v1beta1/outputs.py +587 -586
  328. pulumi_kubernetes/flowcontrol/__init__.py +1 -0
  329. pulumi_kubernetes/flowcontrol/v1/FlowSchema.py +18 -16
  330. pulumi_kubernetes/flowcontrol/v1/FlowSchemaList.py +18 -16
  331. pulumi_kubernetes/flowcontrol/v1/FlowSchemaPatch.py +18 -16
  332. pulumi_kubernetes/flowcontrol/v1/PriorityLevelConfiguration.py +18 -16
  333. pulumi_kubernetes/flowcontrol/v1/PriorityLevelConfigurationList.py +18 -16
  334. pulumi_kubernetes/flowcontrol/v1/PriorityLevelConfigurationPatch.py +18 -16
  335. pulumi_kubernetes/flowcontrol/v1/__init__.py +1 -0
  336. pulumi_kubernetes/flowcontrol/v1/_inputs.py +321 -320
  337. pulumi_kubernetes/flowcontrol/v1/outputs.py +223 -222
  338. pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchema.py +18 -16
  339. pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchemaList.py +18 -16
  340. pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchemaPatch.py +18 -16
  341. pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfiguration.py +18 -16
  342. pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfigurationList.py +18 -16
  343. pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfigurationPatch.py +18 -16
  344. pulumi_kubernetes/flowcontrol/v1alpha1/__init__.py +1 -0
  345. pulumi_kubernetes/flowcontrol/v1alpha1/_inputs.py +281 -280
  346. pulumi_kubernetes/flowcontrol/v1alpha1/outputs.py +199 -198
  347. pulumi_kubernetes/flowcontrol/v1beta1/FlowSchema.py +18 -16
  348. pulumi_kubernetes/flowcontrol/v1beta1/FlowSchemaList.py +18 -16
  349. pulumi_kubernetes/flowcontrol/v1beta1/FlowSchemaPatch.py +18 -16
  350. pulumi_kubernetes/flowcontrol/v1beta1/PriorityLevelConfiguration.py +18 -16
  351. pulumi_kubernetes/flowcontrol/v1beta1/PriorityLevelConfigurationList.py +18 -16
  352. pulumi_kubernetes/flowcontrol/v1beta1/PriorityLevelConfigurationPatch.py +18 -16
  353. pulumi_kubernetes/flowcontrol/v1beta1/__init__.py +1 -0
  354. pulumi_kubernetes/flowcontrol/v1beta1/_inputs.py +281 -280
  355. pulumi_kubernetes/flowcontrol/v1beta1/outputs.py +199 -198
  356. pulumi_kubernetes/flowcontrol/v1beta2/FlowSchema.py +18 -16
  357. pulumi_kubernetes/flowcontrol/v1beta2/FlowSchemaList.py +18 -16
  358. pulumi_kubernetes/flowcontrol/v1beta2/FlowSchemaPatch.py +18 -16
  359. pulumi_kubernetes/flowcontrol/v1beta2/PriorityLevelConfiguration.py +18 -16
  360. pulumi_kubernetes/flowcontrol/v1beta2/PriorityLevelConfigurationList.py +18 -16
  361. pulumi_kubernetes/flowcontrol/v1beta2/PriorityLevelConfigurationPatch.py +18 -16
  362. pulumi_kubernetes/flowcontrol/v1beta2/__init__.py +1 -0
  363. pulumi_kubernetes/flowcontrol/v1beta2/_inputs.py +321 -320
  364. pulumi_kubernetes/flowcontrol/v1beta2/outputs.py +223 -222
  365. pulumi_kubernetes/flowcontrol/v1beta3/FlowSchema.py +18 -16
  366. pulumi_kubernetes/flowcontrol/v1beta3/FlowSchemaList.py +18 -16
  367. pulumi_kubernetes/flowcontrol/v1beta3/FlowSchemaPatch.py +18 -16
  368. pulumi_kubernetes/flowcontrol/v1beta3/PriorityLevelConfiguration.py +18 -16
  369. pulumi_kubernetes/flowcontrol/v1beta3/PriorityLevelConfigurationList.py +18 -16
  370. pulumi_kubernetes/flowcontrol/v1beta3/PriorityLevelConfigurationPatch.py +18 -16
  371. pulumi_kubernetes/flowcontrol/v1beta3/__init__.py +1 -0
  372. pulumi_kubernetes/flowcontrol/v1beta3/_inputs.py +321 -320
  373. pulumi_kubernetes/flowcontrol/v1beta3/outputs.py +223 -222
  374. pulumi_kubernetes/helm/__init__.py +1 -0
  375. pulumi_kubernetes/helm/v3/Release.py +247 -245
  376. pulumi_kubernetes/helm/v3/__init__.py +1 -0
  377. pulumi_kubernetes/helm/v3/_inputs.py +31 -30
  378. pulumi_kubernetes/helm/v3/outputs.py +41 -40
  379. pulumi_kubernetes/helm/v4/Chart.py +72 -70
  380. pulumi_kubernetes/helm/v4/__init__.py +1 -0
  381. pulumi_kubernetes/helm/v4/_inputs.py +26 -25
  382. pulumi_kubernetes/kustomize/__init__.py +1 -0
  383. pulumi_kubernetes/kustomize/v2/Directory.py +31 -29
  384. pulumi_kubernetes/kustomize/v2/__init__.py +1 -0
  385. pulumi_kubernetes/meta/__init__.py +1 -0
  386. pulumi_kubernetes/meta/v1/Status.py +43 -41
  387. pulumi_kubernetes/meta/v1/StatusPatch.py +43 -41
  388. pulumi_kubernetes/meta/v1/__init__.py +1 -0
  389. pulumi_kubernetes/meta/v1/_inputs.py +451 -450
  390. pulumi_kubernetes/meta/v1/outputs.py +289 -288
  391. pulumi_kubernetes/networking/__init__.py +1 -0
  392. pulumi_kubernetes/networking/v1/IPAddress.py +218 -0
  393. pulumi_kubernetes/networking/v1/IPAddressList.py +217 -0
  394. pulumi_kubernetes/networking/v1/IPAddressPatch.py +230 -0
  395. pulumi_kubernetes/networking/v1/Ingress.py +18 -16
  396. pulumi_kubernetes/networking/v1/IngressClass.py +18 -16
  397. pulumi_kubernetes/networking/v1/IngressClassList.py +18 -16
  398. pulumi_kubernetes/networking/v1/IngressClassPatch.py +18 -16
  399. pulumi_kubernetes/networking/v1/IngressList.py +18 -16
  400. pulumi_kubernetes/networking/v1/IngressPatch.py +18 -16
  401. pulumi_kubernetes/networking/v1/NetworkPolicy.py +18 -16
  402. pulumi_kubernetes/networking/v1/NetworkPolicyList.py +18 -16
  403. pulumi_kubernetes/networking/v1/NetworkPolicyPatch.py +18 -16
  404. pulumi_kubernetes/networking/v1/ServiceCIDR.py +228 -0
  405. pulumi_kubernetes/networking/v1/ServiceCIDRList.py +217 -0
  406. pulumi_kubernetes/networking/v1/ServiceCIDRPatch.py +240 -0
  407. pulumi_kubernetes/networking/v1/__init__.py +7 -0
  408. pulumi_kubernetes/networking/v1/_inputs.py +865 -265
  409. pulumi_kubernetes/networking/v1/outputs.py +632 -170
  410. pulumi_kubernetes/networking/v1alpha1/ClusterCIDR.py +18 -16
  411. pulumi_kubernetes/networking/v1alpha1/ClusterCIDRList.py +18 -16
  412. pulumi_kubernetes/networking/v1alpha1/ClusterCIDRPatch.py +18 -16
  413. pulumi_kubernetes/networking/v1alpha1/IPAddress.py +19 -17
  414. pulumi_kubernetes/networking/v1alpha1/IPAddressList.py +18 -16
  415. pulumi_kubernetes/networking/v1alpha1/IPAddressPatch.py +19 -17
  416. pulumi_kubernetes/networking/v1alpha1/ServiceCIDR.py +19 -17
  417. pulumi_kubernetes/networking/v1alpha1/ServiceCIDRList.py +18 -16
  418. pulumi_kubernetes/networking/v1alpha1/ServiceCIDRPatch.py +19 -17
  419. pulumi_kubernetes/networking/v1alpha1/__init__.py +1 -0
  420. pulumi_kubernetes/networking/v1alpha1/_inputs.py +121 -120
  421. pulumi_kubernetes/networking/v1alpha1/outputs.py +73 -72
  422. pulumi_kubernetes/networking/v1beta1/IPAddress.py +19 -17
  423. pulumi_kubernetes/networking/v1beta1/IPAddressList.py +18 -16
  424. pulumi_kubernetes/networking/v1beta1/IPAddressPatch.py +19 -17
  425. pulumi_kubernetes/networking/v1beta1/Ingress.py +18 -16
  426. pulumi_kubernetes/networking/v1beta1/IngressClass.py +18 -16
  427. pulumi_kubernetes/networking/v1beta1/IngressClassList.py +18 -16
  428. pulumi_kubernetes/networking/v1beta1/IngressClassPatch.py +18 -16
  429. pulumi_kubernetes/networking/v1beta1/IngressList.py +18 -16
  430. pulumi_kubernetes/networking/v1beta1/IngressPatch.py +18 -16
  431. pulumi_kubernetes/networking/v1beta1/ServiceCIDR.py +19 -17
  432. pulumi_kubernetes/networking/v1beta1/ServiceCIDRList.py +18 -16
  433. pulumi_kubernetes/networking/v1beta1/ServiceCIDRPatch.py +19 -17
  434. pulumi_kubernetes/networking/v1beta1/__init__.py +1 -0
  435. pulumi_kubernetes/networking/v1beta1/_inputs.py +181 -180
  436. pulumi_kubernetes/networking/v1beta1/outputs.py +105 -104
  437. pulumi_kubernetes/node/__init__.py +1 -0
  438. pulumi_kubernetes/node/v1/RuntimeClass.py +26 -24
  439. pulumi_kubernetes/node/v1/RuntimeClassList.py +18 -16
  440. pulumi_kubernetes/node/v1/RuntimeClassPatch.py +26 -24
  441. pulumi_kubernetes/node/v1/__init__.py +1 -0
  442. pulumi_kubernetes/node/v1/_inputs.py +36 -35
  443. pulumi_kubernetes/node/v1/outputs.py +22 -21
  444. pulumi_kubernetes/node/v1alpha1/RuntimeClass.py +18 -16
  445. pulumi_kubernetes/node/v1alpha1/RuntimeClassList.py +18 -16
  446. pulumi_kubernetes/node/v1alpha1/RuntimeClassPatch.py +18 -16
  447. pulumi_kubernetes/node/v1alpha1/__init__.py +1 -0
  448. pulumi_kubernetes/node/v1alpha1/_inputs.py +41 -40
  449. pulumi_kubernetes/node/v1alpha1/outputs.py +25 -24
  450. pulumi_kubernetes/node/v1beta1/RuntimeClass.py +26 -24
  451. pulumi_kubernetes/node/v1beta1/RuntimeClassList.py +18 -16
  452. pulumi_kubernetes/node/v1beta1/RuntimeClassPatch.py +26 -24
  453. pulumi_kubernetes/node/v1beta1/__init__.py +1 -0
  454. pulumi_kubernetes/node/v1beta1/_inputs.py +36 -35
  455. pulumi_kubernetes/node/v1beta1/outputs.py +22 -21
  456. pulumi_kubernetes/policy/__init__.py +1 -0
  457. pulumi_kubernetes/policy/v1/PodDisruptionBudget.py +18 -16
  458. pulumi_kubernetes/policy/v1/PodDisruptionBudgetList.py +18 -16
  459. pulumi_kubernetes/policy/v1/PodDisruptionBudgetPatch.py +18 -16
  460. pulumi_kubernetes/policy/v1/__init__.py +1 -0
  461. pulumi_kubernetes/policy/v1/_inputs.py +71 -82
  462. pulumi_kubernetes/policy/v1/outputs.py +53 -60
  463. pulumi_kubernetes/policy/v1beta1/PodDisruptionBudget.py +18 -16
  464. pulumi_kubernetes/policy/v1beta1/PodDisruptionBudgetList.py +18 -16
  465. pulumi_kubernetes/policy/v1beta1/PodDisruptionBudgetPatch.py +18 -16
  466. pulumi_kubernetes/policy/v1beta1/PodSecurityPolicy.py +18 -16
  467. pulumi_kubernetes/policy/v1beta1/PodSecurityPolicyList.py +18 -16
  468. pulumi_kubernetes/policy/v1beta1/PodSecurityPolicyPatch.py +18 -16
  469. pulumi_kubernetes/policy/v1beta1/__init__.py +1 -0
  470. pulumi_kubernetes/policy/v1beta1/_inputs.py +361 -360
  471. pulumi_kubernetes/policy/v1beta1/outputs.py +227 -226
  472. pulumi_kubernetes/provider.py +93 -91
  473. pulumi_kubernetes/pulumi-plugin.json +1 -1
  474. pulumi_kubernetes/rbac/__init__.py +1 -0
  475. pulumi_kubernetes/rbac/v1/ClusterRole.py +18 -16
  476. pulumi_kubernetes/rbac/v1/ClusterRoleBinding.py +18 -16
  477. pulumi_kubernetes/rbac/v1/ClusterRoleBindingList.py +18 -16
  478. pulumi_kubernetes/rbac/v1/ClusterRoleBindingPatch.py +18 -16
  479. pulumi_kubernetes/rbac/v1/ClusterRoleList.py +18 -16
  480. pulumi_kubernetes/rbac/v1/ClusterRolePatch.py +18 -16
  481. pulumi_kubernetes/rbac/v1/Role.py +18 -16
  482. pulumi_kubernetes/rbac/v1/RoleBinding.py +18 -16
  483. pulumi_kubernetes/rbac/v1/RoleBindingList.py +18 -16
  484. pulumi_kubernetes/rbac/v1/RoleBindingPatch.py +18 -16
  485. pulumi_kubernetes/rbac/v1/RoleList.py +18 -16
  486. pulumi_kubernetes/rbac/v1/RolePatch.py +18 -16
  487. pulumi_kubernetes/rbac/v1/__init__.py +1 -0
  488. pulumi_kubernetes/rbac/v1/_inputs.py +161 -160
  489. pulumi_kubernetes/rbac/v1/outputs.py +97 -96
  490. pulumi_kubernetes/rbac/v1alpha1/ClusterRole.py +18 -16
  491. pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBinding.py +18 -16
  492. pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBindingList.py +18 -16
  493. pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBindingPatch.py +18 -16
  494. pulumi_kubernetes/rbac/v1alpha1/ClusterRoleList.py +18 -16
  495. pulumi_kubernetes/rbac/v1alpha1/ClusterRolePatch.py +18 -16
  496. pulumi_kubernetes/rbac/v1alpha1/Role.py +18 -16
  497. pulumi_kubernetes/rbac/v1alpha1/RoleBinding.py +18 -16
  498. pulumi_kubernetes/rbac/v1alpha1/RoleBindingList.py +18 -16
  499. pulumi_kubernetes/rbac/v1alpha1/RoleBindingPatch.py +18 -16
  500. pulumi_kubernetes/rbac/v1alpha1/RoleList.py +18 -16
  501. pulumi_kubernetes/rbac/v1alpha1/RolePatch.py +18 -16
  502. pulumi_kubernetes/rbac/v1alpha1/__init__.py +1 -0
  503. pulumi_kubernetes/rbac/v1alpha1/_inputs.py +161 -160
  504. pulumi_kubernetes/rbac/v1alpha1/outputs.py +97 -96
  505. pulumi_kubernetes/rbac/v1beta1/ClusterRole.py +18 -16
  506. pulumi_kubernetes/rbac/v1beta1/ClusterRoleBinding.py +18 -16
  507. pulumi_kubernetes/rbac/v1beta1/ClusterRoleBindingList.py +18 -16
  508. pulumi_kubernetes/rbac/v1beta1/ClusterRoleBindingPatch.py +18 -16
  509. pulumi_kubernetes/rbac/v1beta1/ClusterRoleList.py +18 -16
  510. pulumi_kubernetes/rbac/v1beta1/ClusterRolePatch.py +18 -16
  511. pulumi_kubernetes/rbac/v1beta1/Role.py +18 -16
  512. pulumi_kubernetes/rbac/v1beta1/RoleBinding.py +18 -16
  513. pulumi_kubernetes/rbac/v1beta1/RoleBindingList.py +18 -16
  514. pulumi_kubernetes/rbac/v1beta1/RoleBindingPatch.py +18 -16
  515. pulumi_kubernetes/rbac/v1beta1/RoleList.py +18 -16
  516. pulumi_kubernetes/rbac/v1beta1/RolePatch.py +18 -16
  517. pulumi_kubernetes/rbac/v1beta1/__init__.py +1 -0
  518. pulumi_kubernetes/rbac/v1beta1/_inputs.py +161 -160
  519. pulumi_kubernetes/rbac/v1beta1/outputs.py +97 -96
  520. pulumi_kubernetes/resource/__init__.py +4 -0
  521. pulumi_kubernetes/resource/v1alpha1/PodScheduling.py +18 -16
  522. pulumi_kubernetes/resource/v1alpha1/PodSchedulingList.py +18 -16
  523. pulumi_kubernetes/resource/v1alpha1/PodSchedulingPatch.py +18 -16
  524. pulumi_kubernetes/resource/v1alpha1/ResourceClaim.py +19 -17
  525. pulumi_kubernetes/resource/v1alpha1/ResourceClaimList.py +18 -16
  526. pulumi_kubernetes/resource/v1alpha1/ResourceClaimPatch.py +19 -17
  527. pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplate.py +19 -17
  528. pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplateList.py +18 -16
  529. pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.py +19 -17
  530. pulumi_kubernetes/resource/v1alpha1/ResourceClass.py +26 -24
  531. pulumi_kubernetes/resource/v1alpha1/ResourceClassList.py +18 -16
  532. pulumi_kubernetes/resource/v1alpha1/ResourceClassPatch.py +26 -24
  533. pulumi_kubernetes/resource/v1alpha1/__init__.py +1 -0
  534. pulumi_kubernetes/resource/v1alpha1/_inputs.py +206 -205
  535. pulumi_kubernetes/resource/v1alpha1/outputs.py +154 -153
  536. pulumi_kubernetes/resource/v1alpha2/PodSchedulingContext.py +18 -16
  537. pulumi_kubernetes/resource/v1alpha2/PodSchedulingContextList.py +18 -16
  538. pulumi_kubernetes/resource/v1alpha2/PodSchedulingContextPatch.py +18 -16
  539. pulumi_kubernetes/resource/v1alpha2/ResourceClaim.py +19 -17
  540. pulumi_kubernetes/resource/v1alpha2/ResourceClaimList.py +18 -16
  541. pulumi_kubernetes/resource/v1alpha2/ResourceClaimParameters.py +26 -24
  542. pulumi_kubernetes/resource/v1alpha2/ResourceClaimParametersList.py +18 -16
  543. pulumi_kubernetes/resource/v1alpha2/ResourceClaimParametersPatch.py +26 -24
  544. pulumi_kubernetes/resource/v1alpha2/ResourceClaimPatch.py +19 -17
  545. pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplate.py +19 -17
  546. pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplateList.py +18 -16
  547. pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.py +19 -17
  548. pulumi_kubernetes/resource/v1alpha2/ResourceClass.py +34 -32
  549. pulumi_kubernetes/resource/v1alpha2/ResourceClassList.py +18 -16
  550. pulumi_kubernetes/resource/v1alpha2/ResourceClassParameters.py +18 -16
  551. pulumi_kubernetes/resource/v1alpha2/ResourceClassParametersList.py +18 -16
  552. pulumi_kubernetes/resource/v1alpha2/ResourceClassParametersPatch.py +18 -16
  553. pulumi_kubernetes/resource/v1alpha2/ResourceClassPatch.py +34 -32
  554. pulumi_kubernetes/resource/v1alpha2/ResourceSlice.py +35 -33
  555. pulumi_kubernetes/resource/v1alpha2/ResourceSliceList.py +18 -16
  556. pulumi_kubernetes/resource/v1alpha2/ResourceSlicePatch.py +35 -33
  557. pulumi_kubernetes/resource/v1alpha2/__init__.py +1 -0
  558. pulumi_kubernetes/resource/v1alpha2/_inputs.py +411 -410
  559. pulumi_kubernetes/resource/v1alpha2/outputs.py +286 -285
  560. pulumi_kubernetes/resource/v1alpha3/DeviceClass.py +19 -17
  561. pulumi_kubernetes/resource/v1alpha3/DeviceClassList.py +18 -16
  562. pulumi_kubernetes/resource/v1alpha3/DeviceClassPatch.py +19 -17
  563. pulumi_kubernetes/resource/v1alpha3/DeviceTaintRule.py +225 -0
  564. pulumi_kubernetes/resource/v1alpha3/DeviceTaintRuleList.py +217 -0
  565. pulumi_kubernetes/resource/v1alpha3/DeviceTaintRulePatch.py +236 -0
  566. pulumi_kubernetes/resource/v1alpha3/PodSchedulingContext.py +18 -16
  567. pulumi_kubernetes/resource/v1alpha3/PodSchedulingContextList.py +18 -16
  568. pulumi_kubernetes/resource/v1alpha3/PodSchedulingContextPatch.py +18 -16
  569. pulumi_kubernetes/resource/v1alpha3/ResourceClaim.py +19 -17
  570. pulumi_kubernetes/resource/v1alpha3/ResourceClaimList.py +18 -16
  571. pulumi_kubernetes/resource/v1alpha3/ResourceClaimPatch.py +19 -17
  572. pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplate.py +19 -17
  573. pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplateList.py +18 -16
  574. pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.py +19 -17
  575. pulumi_kubernetes/resource/v1alpha3/ResourceSlice.py +19 -17
  576. pulumi_kubernetes/resource/v1alpha3/ResourceSliceList.py +18 -16
  577. pulumi_kubernetes/resource/v1alpha3/ResourceSlicePatch.py +19 -17
  578. pulumi_kubernetes/resource/v1alpha3/__init__.py +4 -0
  579. pulumi_kubernetes/resource/v1alpha3/_inputs.py +2999 -652
  580. pulumi_kubernetes/resource/v1alpha3/outputs.py +2286 -504
  581. pulumi_kubernetes/resource/v1beta1/DeviceClass.py +19 -17
  582. pulumi_kubernetes/resource/v1beta1/DeviceClassList.py +18 -16
  583. pulumi_kubernetes/resource/v1beta1/DeviceClassPatch.py +19 -17
  584. pulumi_kubernetes/resource/v1beta1/ResourceClaim.py +19 -17
  585. pulumi_kubernetes/resource/v1beta1/ResourceClaimList.py +18 -16
  586. pulumi_kubernetes/resource/v1beta1/ResourceClaimPatch.py +19 -17
  587. pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplate.py +19 -17
  588. pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplateList.py +18 -16
  589. pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.py +19 -17
  590. pulumi_kubernetes/resource/v1beta1/ResourceSlice.py +19 -17
  591. pulumi_kubernetes/resource/v1beta1/ResourceSliceList.py +18 -16
  592. pulumi_kubernetes/resource/v1beta1/ResourceSlicePatch.py +19 -17
  593. pulumi_kubernetes/resource/v1beta1/__init__.py +1 -0
  594. pulumi_kubernetes/resource/v1beta1/_inputs.py +2481 -612
  595. pulumi_kubernetes/resource/v1beta1/outputs.py +1782 -379
  596. pulumi_kubernetes/resource/v1beta2/DeviceClass.py +239 -0
  597. pulumi_kubernetes/resource/v1beta2/DeviceClassList.py +217 -0
  598. pulumi_kubernetes/resource/v1beta2/DeviceClassPatch.py +250 -0
  599. pulumi_kubernetes/resource/v1beta2/ResourceClaim.py +234 -0
  600. pulumi_kubernetes/resource/v1beta2/ResourceClaimList.py +218 -0
  601. pulumi_kubernetes/resource/v1beta2/ResourceClaimPatch.py +245 -0
  602. pulumi_kubernetes/resource/v1beta2/ResourceClaimTemplate.py +231 -0
  603. pulumi_kubernetes/resource/v1beta2/ResourceClaimTemplateList.py +217 -0
  604. pulumi_kubernetes/resource/v1beta2/ResourceClaimTemplatePatch.py +242 -0
  605. pulumi_kubernetes/resource/v1beta2/ResourceSlice.py +248 -0
  606. pulumi_kubernetes/resource/v1beta2/ResourceSliceList.py +218 -0
  607. pulumi_kubernetes/resource/v1beta2/ResourceSlicePatch.py +259 -0
  608. pulumi_kubernetes/resource/v1beta2/__init__.py +22 -0
  609. pulumi_kubernetes/resource/v1beta2/_inputs.py +5681 -0
  610. pulumi_kubernetes/resource/v1beta2/outputs.py +4726 -0
  611. pulumi_kubernetes/scheduling/__init__.py +1 -0
  612. pulumi_kubernetes/scheduling/v1/PriorityClass.py +50 -48
  613. pulumi_kubernetes/scheduling/v1/PriorityClassList.py +18 -16
  614. pulumi_kubernetes/scheduling/v1/PriorityClassPatch.py +50 -48
  615. pulumi_kubernetes/scheduling/v1/__init__.py +1 -0
  616. pulumi_kubernetes/scheduling/v1/_inputs.py +31 -30
  617. pulumi_kubernetes/scheduling/v1/outputs.py +19 -18
  618. pulumi_kubernetes/scheduling/v1alpha1/PriorityClass.py +50 -48
  619. pulumi_kubernetes/scheduling/v1alpha1/PriorityClassList.py +18 -16
  620. pulumi_kubernetes/scheduling/v1alpha1/PriorityClassPatch.py +50 -48
  621. pulumi_kubernetes/scheduling/v1alpha1/__init__.py +1 -0
  622. pulumi_kubernetes/scheduling/v1alpha1/_inputs.py +31 -30
  623. pulumi_kubernetes/scheduling/v1alpha1/outputs.py +19 -18
  624. pulumi_kubernetes/scheduling/v1beta1/PriorityClass.py +50 -48
  625. pulumi_kubernetes/scheduling/v1beta1/PriorityClassList.py +18 -16
  626. pulumi_kubernetes/scheduling/v1beta1/PriorityClassPatch.py +50 -48
  627. pulumi_kubernetes/scheduling/v1beta1/__init__.py +1 -0
  628. pulumi_kubernetes/scheduling/v1beta1/_inputs.py +31 -30
  629. pulumi_kubernetes/scheduling/v1beta1/outputs.py +19 -18
  630. pulumi_kubernetes/settings/__init__.py +1 -0
  631. pulumi_kubernetes/settings/v1alpha1/PodPreset.py +18 -16
  632. pulumi_kubernetes/settings/v1alpha1/PodPresetList.py +18 -16
  633. pulumi_kubernetes/settings/v1alpha1/PodPresetPatch.py +18 -16
  634. pulumi_kubernetes/settings/v1alpha1/__init__.py +1 -0
  635. pulumi_kubernetes/settings/v1alpha1/_inputs.py +11 -10
  636. pulumi_kubernetes/settings/v1alpha1/outputs.py +7 -6
  637. pulumi_kubernetes/storage/__init__.py +1 -0
  638. pulumi_kubernetes/storage/v1/CSIDriver.py +18 -16
  639. pulumi_kubernetes/storage/v1/CSIDriverList.py +18 -16
  640. pulumi_kubernetes/storage/v1/CSIDriverPatch.py +18 -16
  641. pulumi_kubernetes/storage/v1/CSINode.py +18 -16
  642. pulumi_kubernetes/storage/v1/CSINodeList.py +18 -16
  643. pulumi_kubernetes/storage/v1/CSINodePatch.py +18 -16
  644. pulumi_kubernetes/storage/v1/CSIStorageCapacity.py +42 -40
  645. pulumi_kubernetes/storage/v1/CSIStorageCapacityList.py +18 -16
  646. pulumi_kubernetes/storage/v1/CSIStorageCapacityPatch.py +42 -40
  647. pulumi_kubernetes/storage/v1/StorageClass.py +66 -64
  648. pulumi_kubernetes/storage/v1/StorageClassList.py +18 -16
  649. pulumi_kubernetes/storage/v1/StorageClassPatch.py +66 -64
  650. pulumi_kubernetes/storage/v1/VolumeAttachment.py +18 -16
  651. pulumi_kubernetes/storage/v1/VolumeAttachmentList.py +18 -16
  652. pulumi_kubernetes/storage/v1/VolumeAttachmentPatch.py +18 -16
  653. pulumi_kubernetes/storage/v1/__init__.py +1 -0
  654. pulumi_kubernetes/storage/v1/_inputs.py +366 -275
  655. pulumi_kubernetes/storage/v1/outputs.py +288 -177
  656. pulumi_kubernetes/storage/v1alpha1/VolumeAttachment.py +18 -16
  657. pulumi_kubernetes/storage/v1alpha1/VolumeAttachmentList.py +18 -16
  658. pulumi_kubernetes/storage/v1alpha1/VolumeAttachmentPatch.py +18 -16
  659. pulumi_kubernetes/storage/v1alpha1/VolumeAttributesClass.py +34 -32
  660. pulumi_kubernetes/storage/v1alpha1/VolumeAttributesClassList.py +18 -16
  661. pulumi_kubernetes/storage/v1alpha1/VolumeAttributesClassPatch.py +34 -32
  662. pulumi_kubernetes/storage/v1alpha1/__init__.py +1 -0
  663. pulumi_kubernetes/storage/v1alpha1/_inputs.py +81 -80
  664. pulumi_kubernetes/storage/v1alpha1/outputs.py +61 -60
  665. pulumi_kubernetes/storage/v1beta1/CSIDriver.py +18 -16
  666. pulumi_kubernetes/storage/v1beta1/CSIDriverList.py +18 -16
  667. pulumi_kubernetes/storage/v1beta1/CSIDriverPatch.py +18 -16
  668. pulumi_kubernetes/storage/v1beta1/CSINode.py +18 -16
  669. pulumi_kubernetes/storage/v1beta1/CSINodeList.py +18 -16
  670. pulumi_kubernetes/storage/v1beta1/CSINodePatch.py +18 -16
  671. pulumi_kubernetes/storage/v1beta1/CSIStorageCapacity.py +42 -40
  672. pulumi_kubernetes/storage/v1beta1/CSIStorageCapacityList.py +18 -16
  673. pulumi_kubernetes/storage/v1beta1/CSIStorageCapacityPatch.py +42 -40
  674. pulumi_kubernetes/storage/v1beta1/StorageClass.py +66 -64
  675. pulumi_kubernetes/storage/v1beta1/StorageClassList.py +18 -16
  676. pulumi_kubernetes/storage/v1beta1/StorageClassPatch.py +66 -64
  677. pulumi_kubernetes/storage/v1beta1/VolumeAttachment.py +18 -16
  678. pulumi_kubernetes/storage/v1beta1/VolumeAttachmentList.py +18 -16
  679. pulumi_kubernetes/storage/v1beta1/VolumeAttachmentPatch.py +18 -16
  680. pulumi_kubernetes/storage/v1beta1/VolumeAttributesClass.py +34 -32
  681. pulumi_kubernetes/storage/v1beta1/VolumeAttributesClassList.py +18 -16
  682. pulumi_kubernetes/storage/v1beta1/VolumeAttributesClassPatch.py +34 -32
  683. pulumi_kubernetes/storage/v1beta1/__init__.py +1 -0
  684. pulumi_kubernetes/storage/v1beta1/_inputs.py +286 -285
  685. pulumi_kubernetes/storage/v1beta1/outputs.py +184 -183
  686. pulumi_kubernetes/storagemigration/__init__.py +1 -0
  687. pulumi_kubernetes/storagemigration/v1alpha1/StorageVersionMigration.py +18 -16
  688. pulumi_kubernetes/storagemigration/v1alpha1/StorageVersionMigrationList.py +18 -16
  689. pulumi_kubernetes/storagemigration/v1alpha1/StorageVersionMigrationPatch.py +18 -16
  690. pulumi_kubernetes/storagemigration/v1alpha1/__init__.py +1 -0
  691. pulumi_kubernetes/storagemigration/v1alpha1/_inputs.py +81 -80
  692. pulumi_kubernetes/storagemigration/v1alpha1/outputs.py +67 -66
  693. pulumi_kubernetes/yaml/__init__.py +1 -0
  694. pulumi_kubernetes/yaml/v2/ConfigFile.py +23 -21
  695. pulumi_kubernetes/yaml/v2/ConfigGroup.py +30 -28
  696. pulumi_kubernetes/yaml/v2/__init__.py +1 -0
  697. pulumi_kubernetes/yaml/yaml.py +108 -0
  698. {pulumi_kubernetes-4.22.1.dist-info → pulumi_kubernetes-4.23.0.dist-info}/METADATA +4 -4
  699. pulumi_kubernetes-4.23.0.dist-info/RECORD +709 -0
  700. {pulumi_kubernetes-4.22.1.dist-info → pulumi_kubernetes-4.23.0.dist-info}/WHEEL +1 -1
  701. pulumi_kubernetes-4.22.1.dist-info/RECORD +0 -679
  702. {pulumi_kubernetes-4.22.1.dist-info → pulumi_kubernetes-4.23.0.dist-info}/top_level.txt +0 -0
@@ -2,6 +2,7 @@
2
2
  # *** WARNING: this file was generated by pulumigen. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
+ import builtins
5
6
  import copy
6
7
  import warnings
7
8
  import sys
@@ -26,6 +27,9 @@ __all__ = [
26
27
  'BasicDevicePatch',
27
28
  'CELDeviceSelector',
28
29
  'CELDeviceSelectorPatch',
30
+ 'Counter',
31
+ 'CounterSet',
32
+ 'CounterSetPatch',
29
33
  'Device',
30
34
  'DeviceAllocationConfiguration',
31
35
  'DeviceAllocationConfigurationPatch',
@@ -43,6 +47,8 @@ __all__ = [
43
47
  'DeviceClassSpecPatch',
44
48
  'DeviceConstraint',
45
49
  'DeviceConstraintPatch',
50
+ 'DeviceCounterConsumption',
51
+ 'DeviceCounterConsumptionPatch',
46
52
  'DevicePatch',
47
53
  'DeviceRequest',
48
54
  'DeviceRequestAllocationResult',
@@ -50,6 +56,17 @@ __all__ = [
50
56
  'DeviceRequestPatch',
51
57
  'DeviceSelector',
52
58
  'DeviceSelectorPatch',
59
+ 'DeviceSubRequest',
60
+ 'DeviceSubRequestPatch',
61
+ 'DeviceTaint',
62
+ 'DeviceTaintPatch',
63
+ 'DeviceTaintRule',
64
+ 'DeviceTaintRuleSpec',
65
+ 'DeviceTaintRuleSpecPatch',
66
+ 'DeviceTaintSelector',
67
+ 'DeviceTaintSelectorPatch',
68
+ 'DeviceToleration',
69
+ 'DeviceTolerationPatch',
53
70
  'NetworkDeviceData',
54
71
  'NetworkDeviceDataPatch',
55
72
  'OpaqueDeviceConfiguration',
@@ -101,22 +118,24 @@ class AllocatedDeviceStatus(dict):
101
118
  return super().get(key, default)
102
119
 
103
120
  def __init__(__self__, *,
104
- device: str,
105
- driver: str,
106
- pool: str,
121
+ device: builtins.str,
122
+ driver: builtins.str,
123
+ pool: builtins.str,
107
124
  conditions: Optional[Sequence['_meta.v1.outputs.Condition']] = None,
108
125
  data: Optional[Any] = None,
109
126
  network_data: Optional['outputs.NetworkDeviceData'] = None):
110
127
  """
111
128
  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.
129
+ :param builtins.str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
130
+ :param builtins.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
131
 
115
132
  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>`).
133
+ :param builtins.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
134
 
118
135
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
119
136
  :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.
137
+
138
+ Must not contain more than 8 entries.
120
139
  :param Any data: Data contains arbitrary driver-specific data.
121
140
 
122
141
  The length of the raw data must be smaller or equal to 10 Ki.
@@ -134,7 +153,7 @@ class AllocatedDeviceStatus(dict):
134
153
 
135
154
  @property
136
155
  @pulumi.getter
137
- def device(self) -> str:
156
+ def device(self) -> builtins.str:
138
157
  """
139
158
  Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
140
159
  """
@@ -142,7 +161,7 @@ class AllocatedDeviceStatus(dict):
142
161
 
143
162
  @property
144
163
  @pulumi.getter
145
- def driver(self) -> str:
164
+ def driver(self) -> builtins.str:
146
165
  """
147
166
  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
167
 
@@ -152,7 +171,7 @@ class AllocatedDeviceStatus(dict):
152
171
 
153
172
  @property
154
173
  @pulumi.getter
155
- def pool(self) -> str:
174
+ def pool(self) -> builtins.str:
156
175
  """
157
176
  This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
158
177
 
@@ -165,6 +184,8 @@ class AllocatedDeviceStatus(dict):
165
184
  def conditions(self) -> Optional[Sequence['_meta.v1.outputs.Condition']]:
166
185
  """
167
186
  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.
187
+
188
+ Must not contain more than 8 entries.
168
189
  """
169
190
  return pulumi.get(self, "conditions")
170
191
 
@@ -212,22 +233,24 @@ class AllocatedDeviceStatusPatch(dict):
212
233
  def __init__(__self__, *,
213
234
  conditions: Optional[Sequence['_meta.v1.outputs.ConditionPatch']] = None,
214
235
  data: Optional[Any] = None,
215
- device: Optional[str] = None,
216
- driver: Optional[str] = None,
236
+ device: Optional[builtins.str] = None,
237
+ driver: Optional[builtins.str] = None,
217
238
  network_data: Optional['outputs.NetworkDeviceDataPatch'] = None,
218
- pool: Optional[str] = None):
239
+ pool: Optional[builtins.str] = None):
219
240
  """
220
241
  AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
221
242
  :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.
243
+
244
+ Must not contain more than 8 entries.
222
245
  :param Any data: Data contains arbitrary driver-specific data.
223
246
 
224
247
  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.
248
+ :param builtins.str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
249
+ :param builtins.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
250
 
228
251
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
229
252
  :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>`).
253
+ :param builtins.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
254
 
232
255
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
233
256
  """
@@ -249,6 +272,8 @@ class AllocatedDeviceStatusPatch(dict):
249
272
  def conditions(self) -> Optional[Sequence['_meta.v1.outputs.ConditionPatch']]:
250
273
  """
251
274
  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.
275
+
276
+ Must not contain more than 8 entries.
252
277
  """
253
278
  return pulumi.get(self, "conditions")
254
279
 
@@ -264,7 +289,7 @@ class AllocatedDeviceStatusPatch(dict):
264
289
 
265
290
  @property
266
291
  @pulumi.getter
267
- def device(self) -> Optional[str]:
292
+ def device(self) -> Optional[builtins.str]:
268
293
  """
269
294
  Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
270
295
  """
@@ -272,7 +297,7 @@ class AllocatedDeviceStatusPatch(dict):
272
297
 
273
298
  @property
274
299
  @pulumi.getter
275
- def driver(self) -> Optional[str]:
300
+ def driver(self) -> Optional[builtins.str]:
276
301
  """
277
302
  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
303
 
@@ -290,7 +315,7 @@ class AllocatedDeviceStatusPatch(dict):
290
315
 
291
316
  @property
292
317
  @pulumi.getter
293
- def pool(self) -> Optional[str]:
318
+ def pool(self) -> Optional[builtins.str]:
294
319
  """
295
320
  This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
296
321
 
@@ -322,12 +347,12 @@ class AllocationResult(dict):
322
347
  return super().get(key, default)
323
348
 
324
349
  def __init__(__self__, *,
325
- controller: Optional[str] = None,
350
+ controller: Optional[builtins.str] = None,
326
351
  devices: Optional['outputs.DeviceAllocationResult'] = None,
327
352
  node_selector: Optional['_core.v1.outputs.NodeSelector'] = None):
328
353
  """
329
354
  AllocationResult contains attributes of an allocated resource.
330
- :param str controller: Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
355
+ :param builtins.str controller: Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
331
356
 
332
357
  A driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results.
333
358
 
@@ -344,7 +369,7 @@ class AllocationResult(dict):
344
369
 
345
370
  @property
346
371
  @pulumi.getter
347
- def controller(self) -> Optional[str]:
372
+ def controller(self) -> Optional[builtins.str]:
348
373
  """
349
374
  Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
350
375
 
@@ -394,12 +419,12 @@ class AllocationResultPatch(dict):
394
419
  return super().get(key, default)
395
420
 
396
421
  def __init__(__self__, *,
397
- controller: Optional[str] = None,
422
+ controller: Optional[builtins.str] = None,
398
423
  devices: Optional['outputs.DeviceAllocationResultPatch'] = None,
399
424
  node_selector: Optional['_core.v1.outputs.NodeSelectorPatch'] = None):
400
425
  """
401
426
  AllocationResult contains attributes of an allocated resource.
402
- :param str controller: Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
427
+ :param builtins.str controller: Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
403
428
 
404
429
  A driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results.
405
430
 
@@ -416,7 +441,7 @@ class AllocationResultPatch(dict):
416
441
 
417
442
  @property
418
443
  @pulumi.getter
419
- def controller(self) -> Optional[str]:
444
+ def controller(self) -> Optional[builtins.str]:
420
445
  """
421
446
  Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.
422
447
 
@@ -448,22 +473,89 @@ class BasicDevice(dict):
448
473
  """
449
474
  BasicDevice defines one device instance.
450
475
  """
476
+ @staticmethod
477
+ def __key_warning(key: str):
478
+ suggest = None
479
+ if key == "allNodes":
480
+ suggest = "all_nodes"
481
+ elif key == "consumesCounters":
482
+ suggest = "consumes_counters"
483
+ elif key == "nodeName":
484
+ suggest = "node_name"
485
+ elif key == "nodeSelector":
486
+ suggest = "node_selector"
487
+
488
+ if suggest:
489
+ pulumi.log.warn(f"Key '{key}' not found in BasicDevice. Access the value via the '{suggest}' property getter instead.")
490
+
491
+ def __getitem__(self, key: str) -> Any:
492
+ BasicDevice.__key_warning(key)
493
+ return super().__getitem__(key)
494
+
495
+ def get(self, key: str, default = None) -> Any:
496
+ BasicDevice.__key_warning(key)
497
+ return super().get(key, default)
498
+
451
499
  def __init__(__self__, *,
500
+ all_nodes: Optional[builtins.bool] = None,
452
501
  attributes: Optional[Mapping[str, 'outputs.DeviceAttribute']] = None,
453
- capacity: Optional[Mapping[str, str]] = None):
502
+ capacity: Optional[Mapping[str, builtins.str]] = None,
503
+ consumes_counters: Optional[Sequence['outputs.DeviceCounterConsumption']] = None,
504
+ node_name: Optional[builtins.str] = None,
505
+ node_selector: Optional['_core.v1.outputs.NodeSelector'] = None,
506
+ taints: Optional[Sequence['outputs.DeviceTaint']] = None):
454
507
  """
455
508
  BasicDevice defines one device instance.
509
+ :param builtins.bool all_nodes: AllNodes indicates that all nodes have access to the device.
510
+
511
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
456
512
  :param Mapping[str, 'DeviceAttributeArgs'] attributes: Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.
457
513
 
458
514
  The maximum number of attributes and capacities combined is 32.
459
- :param Mapping[str, str] capacity: Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
515
+ :param Mapping[str, builtins.str] capacity: Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
460
516
 
461
517
  The maximum number of attributes and capacities combined is 32.
518
+ :param Sequence['DeviceCounterConsumptionArgs'] consumes_counters: ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.
519
+
520
+ There can only be a single entry per counterSet.
521
+
522
+ The total number of device counter consumption entries must be <= 32. In addition, the total number in the entire ResourceSlice must be <= 1024 (for example, 64 devices with 16 counters each).
523
+ :param builtins.str node_name: NodeName identifies the node where the device is available.
524
+
525
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
526
+ :param '_core.v1.NodeSelectorArgs' node_selector: NodeSelector defines the nodes where the device is available.
527
+
528
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
529
+ :param Sequence['DeviceTaintArgs'] taints: If specified, these are the driver-defined taints.
530
+
531
+ The maximum number of taints is 4.
532
+
533
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
462
534
  """
535
+ if all_nodes is not None:
536
+ pulumi.set(__self__, "all_nodes", all_nodes)
463
537
  if attributes is not None:
464
538
  pulumi.set(__self__, "attributes", attributes)
465
539
  if capacity is not None:
466
540
  pulumi.set(__self__, "capacity", capacity)
541
+ if consumes_counters is not None:
542
+ pulumi.set(__self__, "consumes_counters", consumes_counters)
543
+ if node_name is not None:
544
+ pulumi.set(__self__, "node_name", node_name)
545
+ if node_selector is not None:
546
+ pulumi.set(__self__, "node_selector", node_selector)
547
+ if taints is not None:
548
+ pulumi.set(__self__, "taints", taints)
549
+
550
+ @property
551
+ @pulumi.getter(name="allNodes")
552
+ def all_nodes(self) -> Optional[builtins.bool]:
553
+ """
554
+ AllNodes indicates that all nodes have access to the device.
555
+
556
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
557
+ """
558
+ return pulumi.get(self, "all_nodes")
467
559
 
468
560
  @property
469
561
  @pulumi.getter
@@ -477,7 +569,7 @@ class BasicDevice(dict):
477
569
 
478
570
  @property
479
571
  @pulumi.getter
480
- def capacity(self) -> Optional[Mapping[str, str]]:
572
+ def capacity(self) -> Optional[Mapping[str, builtins.str]]:
481
573
  """
482
574
  Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
483
575
 
@@ -485,28 +577,139 @@ class BasicDevice(dict):
485
577
  """
486
578
  return pulumi.get(self, "capacity")
487
579
 
580
+ @property
581
+ @pulumi.getter(name="consumesCounters")
582
+ def consumes_counters(self) -> Optional[Sequence['outputs.DeviceCounterConsumption']]:
583
+ """
584
+ ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.
585
+
586
+ There can only be a single entry per counterSet.
587
+
588
+ The total number of device counter consumption entries must be <= 32. In addition, the total number in the entire ResourceSlice must be <= 1024 (for example, 64 devices with 16 counters each).
589
+ """
590
+ return pulumi.get(self, "consumes_counters")
591
+
592
+ @property
593
+ @pulumi.getter(name="nodeName")
594
+ def node_name(self) -> Optional[builtins.str]:
595
+ """
596
+ NodeName identifies the node where the device is available.
597
+
598
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
599
+ """
600
+ return pulumi.get(self, "node_name")
601
+
602
+ @property
603
+ @pulumi.getter(name="nodeSelector")
604
+ def node_selector(self) -> Optional['_core.v1.outputs.NodeSelector']:
605
+ """
606
+ NodeSelector defines the nodes where the device is available.
607
+
608
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
609
+ """
610
+ return pulumi.get(self, "node_selector")
611
+
612
+ @property
613
+ @pulumi.getter
614
+ def taints(self) -> Optional[Sequence['outputs.DeviceTaint']]:
615
+ """
616
+ If specified, these are the driver-defined taints.
617
+
618
+ The maximum number of taints is 4.
619
+
620
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
621
+ """
622
+ return pulumi.get(self, "taints")
623
+
488
624
 
489
625
  @pulumi.output_type
490
626
  class BasicDevicePatch(dict):
491
627
  """
492
628
  BasicDevice defines one device instance.
493
629
  """
630
+ @staticmethod
631
+ def __key_warning(key: str):
632
+ suggest = None
633
+ if key == "allNodes":
634
+ suggest = "all_nodes"
635
+ elif key == "consumesCounters":
636
+ suggest = "consumes_counters"
637
+ elif key == "nodeName":
638
+ suggest = "node_name"
639
+ elif key == "nodeSelector":
640
+ suggest = "node_selector"
641
+
642
+ if suggest:
643
+ pulumi.log.warn(f"Key '{key}' not found in BasicDevicePatch. Access the value via the '{suggest}' property getter instead.")
644
+
645
+ def __getitem__(self, key: str) -> Any:
646
+ BasicDevicePatch.__key_warning(key)
647
+ return super().__getitem__(key)
648
+
649
+ def get(self, key: str, default = None) -> Any:
650
+ BasicDevicePatch.__key_warning(key)
651
+ return super().get(key, default)
652
+
494
653
  def __init__(__self__, *,
654
+ all_nodes: Optional[builtins.bool] = None,
495
655
  attributes: Optional[Mapping[str, 'outputs.DeviceAttribute']] = None,
496
- capacity: Optional[Mapping[str, str]] = None):
656
+ capacity: Optional[Mapping[str, builtins.str]] = None,
657
+ consumes_counters: Optional[Sequence['outputs.DeviceCounterConsumptionPatch']] = None,
658
+ node_name: Optional[builtins.str] = None,
659
+ node_selector: Optional['_core.v1.outputs.NodeSelectorPatch'] = None,
660
+ taints: Optional[Sequence['outputs.DeviceTaintPatch']] = None):
497
661
  """
498
662
  BasicDevice defines one device instance.
663
+ :param builtins.bool all_nodes: AllNodes indicates that all nodes have access to the device.
664
+
665
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
499
666
  :param Mapping[str, 'DeviceAttributeArgs'] attributes: Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.
500
667
 
501
668
  The maximum number of attributes and capacities combined is 32.
502
- :param Mapping[str, str] capacity: Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
669
+ :param Mapping[str, builtins.str] capacity: Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
503
670
 
504
671
  The maximum number of attributes and capacities combined is 32.
672
+ :param Sequence['DeviceCounterConsumptionPatchArgs'] consumes_counters: ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.
673
+
674
+ There can only be a single entry per counterSet.
675
+
676
+ The total number of device counter consumption entries must be <= 32. In addition, the total number in the entire ResourceSlice must be <= 1024 (for example, 64 devices with 16 counters each).
677
+ :param builtins.str node_name: NodeName identifies the node where the device is available.
678
+
679
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
680
+ :param '_core.v1.NodeSelectorPatchArgs' node_selector: NodeSelector defines the nodes where the device is available.
681
+
682
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
683
+ :param Sequence['DeviceTaintPatchArgs'] taints: If specified, these are the driver-defined taints.
684
+
685
+ The maximum number of taints is 4.
686
+
687
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
505
688
  """
689
+ if all_nodes is not None:
690
+ pulumi.set(__self__, "all_nodes", all_nodes)
506
691
  if attributes is not None:
507
692
  pulumi.set(__self__, "attributes", attributes)
508
693
  if capacity is not None:
509
694
  pulumi.set(__self__, "capacity", capacity)
695
+ if consumes_counters is not None:
696
+ pulumi.set(__self__, "consumes_counters", consumes_counters)
697
+ if node_name is not None:
698
+ pulumi.set(__self__, "node_name", node_name)
699
+ if node_selector is not None:
700
+ pulumi.set(__self__, "node_selector", node_selector)
701
+ if taints is not None:
702
+ pulumi.set(__self__, "taints", taints)
703
+
704
+ @property
705
+ @pulumi.getter(name="allNodes")
706
+ def all_nodes(self) -> Optional[builtins.bool]:
707
+ """
708
+ AllNodes indicates that all nodes have access to the device.
709
+
710
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
711
+ """
712
+ return pulumi.get(self, "all_nodes")
510
713
 
511
714
  @property
512
715
  @pulumi.getter
@@ -520,7 +723,7 @@ class BasicDevicePatch(dict):
520
723
 
521
724
  @property
522
725
  @pulumi.getter
523
- def capacity(self) -> Optional[Mapping[str, str]]:
726
+ def capacity(self) -> Optional[Mapping[str, builtins.str]]:
524
727
  """
525
728
  Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
526
729
 
@@ -528,6 +731,50 @@ class BasicDevicePatch(dict):
528
731
  """
529
732
  return pulumi.get(self, "capacity")
530
733
 
734
+ @property
735
+ @pulumi.getter(name="consumesCounters")
736
+ def consumes_counters(self) -> Optional[Sequence['outputs.DeviceCounterConsumptionPatch']]:
737
+ """
738
+ ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.
739
+
740
+ There can only be a single entry per counterSet.
741
+
742
+ The total number of device counter consumption entries must be <= 32. In addition, the total number in the entire ResourceSlice must be <= 1024 (for example, 64 devices with 16 counters each).
743
+ """
744
+ return pulumi.get(self, "consumes_counters")
745
+
746
+ @property
747
+ @pulumi.getter(name="nodeName")
748
+ def node_name(self) -> Optional[builtins.str]:
749
+ """
750
+ NodeName identifies the node where the device is available.
751
+
752
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
753
+ """
754
+ return pulumi.get(self, "node_name")
755
+
756
+ @property
757
+ @pulumi.getter(name="nodeSelector")
758
+ def node_selector(self) -> Optional['_core.v1.outputs.NodeSelectorPatch']:
759
+ """
760
+ NodeSelector defines the nodes where the device is available.
761
+
762
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
763
+ """
764
+ return pulumi.get(self, "node_selector")
765
+
766
+ @property
767
+ @pulumi.getter
768
+ def taints(self) -> Optional[Sequence['outputs.DeviceTaintPatch']]:
769
+ """
770
+ If specified, these are the driver-defined taints.
771
+
772
+ The maximum number of taints is 4.
773
+
774
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
775
+ """
776
+ return pulumi.get(self, "taints")
777
+
531
778
 
532
779
  @pulumi.output_type
533
780
  class CELDeviceSelector(dict):
@@ -535,10 +782,10 @@ class CELDeviceSelector(dict):
535
782
  CELDeviceSelector contains a CEL expression for selecting a device.
536
783
  """
537
784
  def __init__(__self__, *,
538
- expression: str):
785
+ expression: builtins.str):
539
786
  """
540
787
  CELDeviceSelector contains a CEL expression for selecting a device.
541
- :param str expression: Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.
788
+ :param builtins.str expression: Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.
542
789
 
543
790
  The expression's input is an object named "device", which carries the following properties:
544
791
  - driver (string): the name of the driver which defines this device.
@@ -572,7 +819,7 @@ class CELDeviceSelector(dict):
572
819
 
573
820
  @property
574
821
  @pulumi.getter
575
- def expression(self) -> str:
822
+ def expression(self) -> builtins.str:
576
823
  """
577
824
  Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.
578
825
 
@@ -613,10 +860,10 @@ class CELDeviceSelectorPatch(dict):
613
860
  CELDeviceSelector contains a CEL expression for selecting a device.
614
861
  """
615
862
  def __init__(__self__, *,
616
- expression: Optional[str] = None):
863
+ expression: Optional[builtins.str] = None):
617
864
  """
618
865
  CELDeviceSelector contains a CEL expression for selecting a device.
619
- :param str expression: Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.
866
+ :param builtins.str expression: Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.
620
867
 
621
868
  The expression's input is an object named "device", which carries the following properties:
622
869
  - driver (string): the name of the driver which defines this device.
@@ -651,7 +898,7 @@ class CELDeviceSelectorPatch(dict):
651
898
 
652
899
  @property
653
900
  @pulumi.getter
654
- def expression(self) -> Optional[str]:
901
+ def expression(self) -> Optional[builtins.str]:
655
902
  """
656
903
  Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.
657
904
 
@@ -686,17 +933,131 @@ class CELDeviceSelectorPatch(dict):
686
933
  return pulumi.get(self, "expression")
687
934
 
688
935
 
936
+ @pulumi.output_type
937
+ class Counter(dict):
938
+ """
939
+ Counter describes a quantity associated with a device.
940
+ """
941
+ def __init__(__self__, *,
942
+ value: builtins.str):
943
+ """
944
+ Counter describes a quantity associated with a device.
945
+ :param builtins.str value: Value defines how much of a certain device counter is available.
946
+ """
947
+ pulumi.set(__self__, "value", value)
948
+
949
+ @property
950
+ @pulumi.getter
951
+ def value(self) -> builtins.str:
952
+ """
953
+ Value defines how much of a certain device counter is available.
954
+ """
955
+ return pulumi.get(self, "value")
956
+
957
+
958
+ @pulumi.output_type
959
+ class CounterSet(dict):
960
+ """
961
+ CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice.
962
+
963
+ The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.
964
+ """
965
+ def __init__(__self__, *,
966
+ counters: Mapping[str, 'outputs.Counter'],
967
+ name: builtins.str):
968
+ """
969
+ CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice.
970
+
971
+ The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.
972
+ :param Mapping[str, 'CounterArgs'] counters: Counters defines the counters that will be consumed by the device. The name of each counter must be unique in that set and must be a DNS label.
973
+
974
+ To ensure this uniqueness, capacities defined by the vendor must be listed without the driver name as domain prefix in their name. All others must be listed with their domain prefix.
975
+
976
+ The maximum number of counters is 32.
977
+ :param builtins.str name: CounterSet is the name of the set from which the counters defined will be consumed.
978
+ """
979
+ pulumi.set(__self__, "counters", counters)
980
+ pulumi.set(__self__, "name", name)
981
+
982
+ @property
983
+ @pulumi.getter
984
+ def counters(self) -> Mapping[str, 'outputs.Counter']:
985
+ """
986
+ Counters defines the counters that will be consumed by the device. The name of each counter must be unique in that set and must be a DNS label.
987
+
988
+ To ensure this uniqueness, capacities defined by the vendor must be listed without the driver name as domain prefix in their name. All others must be listed with their domain prefix.
989
+
990
+ The maximum number of counters is 32.
991
+ """
992
+ return pulumi.get(self, "counters")
993
+
994
+ @property
995
+ @pulumi.getter
996
+ def name(self) -> builtins.str:
997
+ """
998
+ CounterSet is the name of the set from which the counters defined will be consumed.
999
+ """
1000
+ return pulumi.get(self, "name")
1001
+
1002
+
1003
+ @pulumi.output_type
1004
+ class CounterSetPatch(dict):
1005
+ """
1006
+ CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice.
1007
+
1008
+ The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.
1009
+ """
1010
+ def __init__(__self__, *,
1011
+ counters: Optional[Mapping[str, 'outputs.Counter']] = None,
1012
+ name: Optional[builtins.str] = None):
1013
+ """
1014
+ CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice.
1015
+
1016
+ The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.
1017
+ :param Mapping[str, 'CounterArgs'] counters: Counters defines the counters that will be consumed by the device. The name of each counter must be unique in that set and must be a DNS label.
1018
+
1019
+ To ensure this uniqueness, capacities defined by the vendor must be listed without the driver name as domain prefix in their name. All others must be listed with their domain prefix.
1020
+
1021
+ The maximum number of counters is 32.
1022
+ :param builtins.str name: CounterSet is the name of the set from which the counters defined will be consumed.
1023
+ """
1024
+ if counters is not None:
1025
+ pulumi.set(__self__, "counters", counters)
1026
+ if name is not None:
1027
+ pulumi.set(__self__, "name", name)
1028
+
1029
+ @property
1030
+ @pulumi.getter
1031
+ def counters(self) -> Optional[Mapping[str, 'outputs.Counter']]:
1032
+ """
1033
+ Counters defines the counters that will be consumed by the device. The name of each counter must be unique in that set and must be a DNS label.
1034
+
1035
+ To ensure this uniqueness, capacities defined by the vendor must be listed without the driver name as domain prefix in their name. All others must be listed with their domain prefix.
1036
+
1037
+ The maximum number of counters is 32.
1038
+ """
1039
+ return pulumi.get(self, "counters")
1040
+
1041
+ @property
1042
+ @pulumi.getter
1043
+ def name(self) -> Optional[builtins.str]:
1044
+ """
1045
+ CounterSet is the name of the set from which the counters defined will be consumed.
1046
+ """
1047
+ return pulumi.get(self, "name")
1048
+
1049
+
689
1050
  @pulumi.output_type
690
1051
  class Device(dict):
691
1052
  """
692
1053
  Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
693
1054
  """
694
1055
  def __init__(__self__, *,
695
- name: str,
1056
+ name: builtins.str,
696
1057
  basic: Optional['outputs.BasicDevice'] = None):
697
1058
  """
698
1059
  Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
699
- :param str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
1060
+ :param builtins.str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
700
1061
  :param 'BasicDeviceArgs' basic: Basic defines one device instance.
701
1062
  """
702
1063
  pulumi.set(__self__, "name", name)
@@ -705,7 +1066,7 @@ class Device(dict):
705
1066
 
706
1067
  @property
707
1068
  @pulumi.getter
708
- def name(self) -> str:
1069
+ def name(self) -> builtins.str:
709
1070
  """
710
1071
  Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
711
1072
  """
@@ -726,14 +1087,16 @@ class DeviceAllocationConfiguration(dict):
726
1087
  DeviceAllocationConfiguration gets embedded in an AllocationResult.
727
1088
  """
728
1089
  def __init__(__self__, *,
729
- source: str,
1090
+ source: builtins.str,
730
1091
  opaque: Optional['outputs.OpaqueDeviceConfiguration'] = None,
731
- requests: Optional[Sequence[str]] = None):
1092
+ requests: Optional[Sequence[builtins.str]] = None):
732
1093
  """
733
1094
  DeviceAllocationConfiguration gets embedded in an AllocationResult.
734
- :param str source: Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.
1095
+ :param builtins.str source: Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.
735
1096
  :param 'OpaqueDeviceConfigurationArgs' opaque: Opaque provides driver-specific configuration parameters.
736
- :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1097
+ :param Sequence[builtins.str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1098
+
1099
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.
737
1100
  """
738
1101
  pulumi.set(__self__, "source", source)
739
1102
  if opaque is not None:
@@ -743,7 +1106,7 @@ class DeviceAllocationConfiguration(dict):
743
1106
 
744
1107
  @property
745
1108
  @pulumi.getter
746
- def source(self) -> str:
1109
+ def source(self) -> builtins.str:
747
1110
  """
748
1111
  Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.
749
1112
  """
@@ -759,9 +1122,11 @@ class DeviceAllocationConfiguration(dict):
759
1122
 
760
1123
  @property
761
1124
  @pulumi.getter
762
- def requests(self) -> Optional[Sequence[str]]:
1125
+ def requests(self) -> Optional[Sequence[builtins.str]]:
763
1126
  """
764
1127
  Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1128
+
1129
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.
765
1130
  """
766
1131
  return pulumi.get(self, "requests")
767
1132
 
@@ -773,13 +1138,15 @@ class DeviceAllocationConfigurationPatch(dict):
773
1138
  """
774
1139
  def __init__(__self__, *,
775
1140
  opaque: Optional['outputs.OpaqueDeviceConfigurationPatch'] = None,
776
- requests: Optional[Sequence[str]] = None,
777
- source: Optional[str] = None):
1141
+ requests: Optional[Sequence[builtins.str]] = None,
1142
+ source: Optional[builtins.str] = None):
778
1143
  """
779
1144
  DeviceAllocationConfiguration gets embedded in an AllocationResult.
780
1145
  :param 'OpaqueDeviceConfigurationPatchArgs' opaque: Opaque provides driver-specific configuration parameters.
781
- :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
782
- :param str source: Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.
1146
+ :param Sequence[builtins.str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1147
+
1148
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.
1149
+ :param builtins.str source: Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.
783
1150
  """
784
1151
  if opaque is not None:
785
1152
  pulumi.set(__self__, "opaque", opaque)
@@ -798,15 +1165,17 @@ class DeviceAllocationConfigurationPatch(dict):
798
1165
 
799
1166
  @property
800
1167
  @pulumi.getter
801
- def requests(self) -> Optional[Sequence[str]]:
1168
+ def requests(self) -> Optional[Sequence[builtins.str]]:
802
1169
  """
803
1170
  Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1171
+
1172
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.
804
1173
  """
805
1174
  return pulumi.get(self, "requests")
806
1175
 
807
1176
  @property
808
1177
  @pulumi.getter
809
- def source(self) -> Optional[str]:
1178
+ def source(self) -> Optional[builtins.str]:
810
1179
  """
811
1180
  Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.
812
1181
  """
@@ -897,16 +1266,16 @@ class DeviceAttribute(dict):
897
1266
  DeviceAttribute must have exactly one field set.
898
1267
  """
899
1268
  def __init__(__self__, *,
900
- bool: Optional[bool] = None,
901
- int: Optional[int] = None,
902
- string: Optional[str] = None,
903
- version: Optional[str] = None):
1269
+ bool: Optional[builtins.bool] = None,
1270
+ int: Optional[builtins.int] = None,
1271
+ string: Optional[builtins.str] = None,
1272
+ version: Optional[builtins.str] = None):
904
1273
  """
905
1274
  DeviceAttribute must have exactly one field set.
906
- :param bool bool: BoolValue is a true/false value.
907
- :param int int: IntValue is a number.
908
- :param str string: StringValue is a string. Must not be longer than 64 characters.
909
- :param str version: VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.
1275
+ :param builtins.bool bool: BoolValue is a true/false value.
1276
+ :param builtins.int int: IntValue is a number.
1277
+ :param builtins.str string: StringValue is a string. Must not be longer than 64 characters.
1278
+ :param builtins.str version: VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.
910
1279
  """
911
1280
  if bool is not None:
912
1281
  pulumi.set(__self__, "bool", bool)
@@ -919,7 +1288,7 @@ class DeviceAttribute(dict):
919
1288
 
920
1289
  @property
921
1290
  @pulumi.getter
922
- def bool(self) -> Optional[bool]:
1291
+ def bool(self) -> Optional[builtins.bool]:
923
1292
  """
924
1293
  BoolValue is a true/false value.
925
1294
  """
@@ -927,7 +1296,7 @@ class DeviceAttribute(dict):
927
1296
 
928
1297
  @property
929
1298
  @pulumi.getter
930
- def int(self) -> Optional[int]:
1299
+ def int(self) -> Optional[builtins.int]:
931
1300
  """
932
1301
  IntValue is a number.
933
1302
  """
@@ -935,7 +1304,7 @@ class DeviceAttribute(dict):
935
1304
 
936
1305
  @property
937
1306
  @pulumi.getter
938
- def string(self) -> Optional[str]:
1307
+ def string(self) -> Optional[builtins.str]:
939
1308
  """
940
1309
  StringValue is a string. Must not be longer than 64 characters.
941
1310
  """
@@ -943,7 +1312,7 @@ class DeviceAttribute(dict):
943
1312
 
944
1313
  @property
945
1314
  @pulumi.getter
946
- def version(self) -> Optional[str]:
1315
+ def version(self) -> Optional[builtins.str]:
947
1316
  """
948
1317
  VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.
949
1318
  """
@@ -1004,11 +1373,13 @@ class DeviceClaimConfiguration(dict):
1004
1373
  """
1005
1374
  def __init__(__self__, *,
1006
1375
  opaque: Optional['outputs.OpaqueDeviceConfiguration'] = None,
1007
- requests: Optional[Sequence[str]] = None):
1376
+ requests: Optional[Sequence[builtins.str]] = None):
1008
1377
  """
1009
1378
  DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.
1010
1379
  :param 'OpaqueDeviceConfigurationArgs' opaque: Opaque provides driver-specific configuration parameters.
1011
- :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1380
+ :param Sequence[builtins.str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1381
+
1382
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.
1012
1383
  """
1013
1384
  if opaque is not None:
1014
1385
  pulumi.set(__self__, "opaque", opaque)
@@ -1025,9 +1396,11 @@ class DeviceClaimConfiguration(dict):
1025
1396
 
1026
1397
  @property
1027
1398
  @pulumi.getter
1028
- def requests(self) -> Optional[Sequence[str]]:
1399
+ def requests(self) -> Optional[Sequence[builtins.str]]:
1029
1400
  """
1030
1401
  Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1402
+
1403
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.
1031
1404
  """
1032
1405
  return pulumi.get(self, "requests")
1033
1406
 
@@ -1039,11 +1412,13 @@ class DeviceClaimConfigurationPatch(dict):
1039
1412
  """
1040
1413
  def __init__(__self__, *,
1041
1414
  opaque: Optional['outputs.OpaqueDeviceConfigurationPatch'] = None,
1042
- requests: Optional[Sequence[str]] = None):
1415
+ requests: Optional[Sequence[builtins.str]] = None):
1043
1416
  """
1044
1417
  DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.
1045
1418
  :param 'OpaqueDeviceConfigurationPatchArgs' opaque: Opaque provides driver-specific configuration parameters.
1046
- :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1419
+ :param Sequence[builtins.str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1420
+
1421
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.
1047
1422
  """
1048
1423
  if opaque is not None:
1049
1424
  pulumi.set(__self__, "opaque", opaque)
@@ -1060,9 +1435,11 @@ class DeviceClaimConfigurationPatch(dict):
1060
1435
 
1061
1436
  @property
1062
1437
  @pulumi.getter
1063
- def requests(self) -> Optional[Sequence[str]]:
1438
+ def requests(self) -> Optional[Sequence[builtins.str]]:
1064
1439
  """
1065
1440
  Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1441
+
1442
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.
1066
1443
  """
1067
1444
  return pulumi.get(self, "requests")
1068
1445
 
@@ -1140,8 +1517,8 @@ class DeviceClass(dict):
1140
1517
 
1141
1518
  def __init__(__self__, *,
1142
1519
  spec: 'outputs.DeviceClassSpec',
1143
- api_version: Optional[str] = None,
1144
- kind: Optional[str] = None,
1520
+ api_version: Optional[builtins.str] = None,
1521
+ kind: Optional[builtins.str] = None,
1145
1522
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
1146
1523
  """
1147
1524
  DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.
@@ -1152,8 +1529,8 @@ class DeviceClass(dict):
1152
1529
  This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.
1153
1530
 
1154
1531
  Changing the spec automatically increments the metadata.generation number.
1155
- :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
1156
- :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
1532
+ :param builtins.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
1533
+ :param builtins.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
1157
1534
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
1158
1535
  """
1159
1536
  pulumi.set(__self__, "spec", spec)
@@ -1178,7 +1555,7 @@ class DeviceClass(dict):
1178
1555
 
1179
1556
  @property
1180
1557
  @pulumi.getter(name="apiVersion")
1181
- def api_version(self) -> Optional[str]:
1558
+ def api_version(self) -> Optional[builtins.str]:
1182
1559
  """
1183
1560
  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
1184
1561
  """
@@ -1186,7 +1563,7 @@ class DeviceClass(dict):
1186
1563
 
1187
1564
  @property
1188
1565
  @pulumi.getter
1189
- def kind(self) -> Optional[str]:
1566
+ def kind(self) -> Optional[builtins.str]:
1190
1567
  """
1191
1568
  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
1192
1569
  """
@@ -1422,16 +1799,18 @@ class DeviceConstraint(dict):
1422
1799
  return super().get(key, default)
1423
1800
 
1424
1801
  def __init__(__self__, *,
1425
- match_attribute: Optional[str] = None,
1426
- requests: Optional[Sequence[str]] = None):
1802
+ match_attribute: Optional[builtins.str] = None,
1803
+ requests: Optional[Sequence[builtins.str]] = None):
1427
1804
  """
1428
1805
  DeviceConstraint must have exactly one field set besides Requests.
1429
- :param str match_attribute: MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.
1806
+ :param builtins.str match_attribute: MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.
1430
1807
 
1431
1808
  For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen.
1432
1809
 
1433
1810
  Must include the domain qualifier.
1434
- :param Sequence[str] requests: Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.
1811
+ :param Sequence[builtins.str] requests: Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.
1812
+
1813
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.
1435
1814
  """
1436
1815
  if match_attribute is not None:
1437
1816
  pulumi.set(__self__, "match_attribute", match_attribute)
@@ -1440,7 +1819,7 @@ class DeviceConstraint(dict):
1440
1819
 
1441
1820
  @property
1442
1821
  @pulumi.getter(name="matchAttribute")
1443
- def match_attribute(self) -> Optional[str]:
1822
+ def match_attribute(self) -> Optional[builtins.str]:
1444
1823
  """
1445
1824
  MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.
1446
1825
 
@@ -1452,9 +1831,11 @@ class DeviceConstraint(dict):
1452
1831
 
1453
1832
  @property
1454
1833
  @pulumi.getter
1455
- def requests(self) -> Optional[Sequence[str]]:
1834
+ def requests(self) -> Optional[Sequence[builtins.str]]:
1456
1835
  """
1457
1836
  Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.
1837
+
1838
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.
1458
1839
  """
1459
1840
  return pulumi.get(self, "requests")
1460
1841
 
@@ -1482,16 +1863,18 @@ class DeviceConstraintPatch(dict):
1482
1863
  return super().get(key, default)
1483
1864
 
1484
1865
  def __init__(__self__, *,
1485
- match_attribute: Optional[str] = None,
1486
- requests: Optional[Sequence[str]] = None):
1866
+ match_attribute: Optional[builtins.str] = None,
1867
+ requests: Optional[Sequence[builtins.str]] = None):
1487
1868
  """
1488
1869
  DeviceConstraint must have exactly one field set besides Requests.
1489
- :param str match_attribute: MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.
1870
+ :param builtins.str match_attribute: MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.
1490
1871
 
1491
1872
  For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen.
1492
1873
 
1493
1874
  Must include the domain qualifier.
1494
- :param Sequence[str] requests: Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.
1875
+ :param Sequence[builtins.str] requests: Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.
1876
+
1877
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.
1495
1878
  """
1496
1879
  if match_attribute is not None:
1497
1880
  pulumi.set(__self__, "match_attribute", match_attribute)
@@ -1500,7 +1883,7 @@ class DeviceConstraintPatch(dict):
1500
1883
 
1501
1884
  @property
1502
1885
  @pulumi.getter(name="matchAttribute")
1503
- def match_attribute(self) -> Optional[str]:
1886
+ def match_attribute(self) -> Optional[builtins.str]:
1504
1887
  """
1505
1888
  MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.
1506
1889
 
@@ -1512,115 +1895,251 @@ class DeviceConstraintPatch(dict):
1512
1895
 
1513
1896
  @property
1514
1897
  @pulumi.getter
1515
- def requests(self) -> Optional[Sequence[str]]:
1898
+ def requests(self) -> Optional[Sequence[builtins.str]]:
1516
1899
  """
1517
1900
  Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.
1901
+
1902
+ References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.
1518
1903
  """
1519
1904
  return pulumi.get(self, "requests")
1520
1905
 
1521
1906
 
1522
1907
  @pulumi.output_type
1523
- class DevicePatch(dict):
1908
+ class DeviceCounterConsumption(dict):
1524
1909
  """
1525
- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
1910
+ DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.
1526
1911
  """
1912
+ @staticmethod
1913
+ def __key_warning(key: str):
1914
+ suggest = None
1915
+ if key == "counterSet":
1916
+ suggest = "counter_set"
1917
+
1918
+ if suggest:
1919
+ pulumi.log.warn(f"Key '{key}' not found in DeviceCounterConsumption. Access the value via the '{suggest}' property getter instead.")
1920
+
1921
+ def __getitem__(self, key: str) -> Any:
1922
+ DeviceCounterConsumption.__key_warning(key)
1923
+ return super().__getitem__(key)
1924
+
1925
+ def get(self, key: str, default = None) -> Any:
1926
+ DeviceCounterConsumption.__key_warning(key)
1927
+ return super().get(key, default)
1928
+
1527
1929
  def __init__(__self__, *,
1528
- basic: Optional['outputs.BasicDevicePatch'] = None,
1529
- name: Optional[str] = None):
1930
+ counter_set: builtins.str,
1931
+ counters: Mapping[str, 'outputs.Counter']):
1530
1932
  """
1531
- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
1532
- :param 'BasicDevicePatchArgs' basic: Basic defines one device instance.
1533
- :param str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
1933
+ DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.
1934
+ :param builtins.str counter_set: CounterSet defines the set from which the counters defined will be consumed.
1935
+ :param Mapping[str, 'CounterArgs'] counters: Counters defines the Counter that will be consumed by the device.
1936
+
1937
+ The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).
1534
1938
  """
1535
- if basic is not None:
1536
- pulumi.set(__self__, "basic", basic)
1537
- if name is not None:
1538
- pulumi.set(__self__, "name", name)
1939
+ pulumi.set(__self__, "counter_set", counter_set)
1940
+ pulumi.set(__self__, "counters", counters)
1539
1941
 
1540
1942
  @property
1541
- @pulumi.getter
1542
- def basic(self) -> Optional['outputs.BasicDevicePatch']:
1943
+ @pulumi.getter(name="counterSet")
1944
+ def counter_set(self) -> builtins.str:
1543
1945
  """
1544
- Basic defines one device instance.
1946
+ CounterSet defines the set from which the counters defined will be consumed.
1545
1947
  """
1546
- return pulumi.get(self, "basic")
1948
+ return pulumi.get(self, "counter_set")
1547
1949
 
1548
1950
  @property
1549
1951
  @pulumi.getter
1550
- def name(self) -> Optional[str]:
1952
+ def counters(self) -> Mapping[str, 'outputs.Counter']:
1551
1953
  """
1552
- Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
1954
+ Counters defines the Counter that will be consumed by the device.
1955
+
1956
+ The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).
1553
1957
  """
1554
- return pulumi.get(self, "name")
1958
+ return pulumi.get(self, "counters")
1555
1959
 
1556
1960
 
1557
1961
  @pulumi.output_type
1558
- class DeviceRequest(dict):
1962
+ class DeviceCounterConsumptionPatch(dict):
1559
1963
  """
1560
- DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.
1561
-
1562
- 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.
1964
+ DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.
1563
1965
  """
1564
1966
  @staticmethod
1565
1967
  def __key_warning(key: str):
1566
1968
  suggest = None
1567
- if key == "deviceClassName":
1568
- suggest = "device_class_name"
1569
- elif key == "adminAccess":
1570
- suggest = "admin_access"
1571
- elif key == "allocationMode":
1572
- suggest = "allocation_mode"
1969
+ if key == "counterSet":
1970
+ suggest = "counter_set"
1573
1971
 
1574
1972
  if suggest:
1575
- pulumi.log.warn(f"Key '{key}' not found in DeviceRequest. Access the value via the '{suggest}' property getter instead.")
1973
+ pulumi.log.warn(f"Key '{key}' not found in DeviceCounterConsumptionPatch. Access the value via the '{suggest}' property getter instead.")
1576
1974
 
1577
1975
  def __getitem__(self, key: str) -> Any:
1578
- DeviceRequest.__key_warning(key)
1976
+ DeviceCounterConsumptionPatch.__key_warning(key)
1579
1977
  return super().__getitem__(key)
1580
1978
 
1581
1979
  def get(self, key: str, default = None) -> Any:
1582
- DeviceRequest.__key_warning(key)
1980
+ DeviceCounterConsumptionPatch.__key_warning(key)
1583
1981
  return super().get(key, default)
1584
1982
 
1585
1983
  def __init__(__self__, *,
1586
- device_class_name: str,
1587
- name: str,
1588
- admin_access: Optional[bool] = None,
1589
- allocation_mode: Optional[str] = None,
1590
- count: Optional[int] = None,
1591
- selectors: Optional[Sequence['outputs.DeviceSelector']] = None):
1984
+ counter_set: Optional[builtins.str] = None,
1985
+ counters: Optional[Mapping[str, 'outputs.Counter']] = None):
1592
1986
  """
1593
- DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.
1594
-
1595
- 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.
1596
- :param str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
1597
-
1598
- A class is required. Which classes are available depends on the cluster.
1987
+ DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.
1988
+ :param builtins.str counter_set: CounterSet defines the set from which the counters defined will be consumed.
1989
+ :param Mapping[str, 'CounterArgs'] counters: Counters defines the Counter that will be consumed by the device.
1599
1990
 
1600
- Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
1601
- :param str name: Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
1991
+ The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).
1992
+ """
1993
+ if counter_set is not None:
1994
+ pulumi.set(__self__, "counter_set", counter_set)
1995
+ if counters is not None:
1996
+ pulumi.set(__self__, "counters", counters)
1997
+
1998
+ @property
1999
+ @pulumi.getter(name="counterSet")
2000
+ def counter_set(self) -> Optional[builtins.str]:
2001
+ """
2002
+ CounterSet defines the set from which the counters defined will be consumed.
2003
+ """
2004
+ return pulumi.get(self, "counter_set")
2005
+
2006
+ @property
2007
+ @pulumi.getter
2008
+ def counters(self) -> Optional[Mapping[str, 'outputs.Counter']]:
2009
+ """
2010
+ Counters defines the Counter that will be consumed by the device.
2011
+
2012
+ The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).
2013
+ """
2014
+ return pulumi.get(self, "counters")
2015
+
2016
+
2017
+ @pulumi.output_type
2018
+ class DevicePatch(dict):
2019
+ """
2020
+ Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
2021
+ """
2022
+ def __init__(__self__, *,
2023
+ basic: Optional['outputs.BasicDevicePatch'] = None,
2024
+ name: Optional[builtins.str] = None):
2025
+ """
2026
+ Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
2027
+ :param 'BasicDevicePatchArgs' basic: Basic defines one device instance.
2028
+ :param builtins.str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
2029
+ """
2030
+ if basic is not None:
2031
+ pulumi.set(__self__, "basic", basic)
2032
+ if name is not None:
2033
+ pulumi.set(__self__, "name", name)
2034
+
2035
+ @property
2036
+ @pulumi.getter
2037
+ def basic(self) -> Optional['outputs.BasicDevicePatch']:
2038
+ """
2039
+ Basic defines one device instance.
2040
+ """
2041
+ return pulumi.get(self, "basic")
2042
+
2043
+ @property
2044
+ @pulumi.getter
2045
+ def name(self) -> Optional[builtins.str]:
2046
+ """
2047
+ Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
2048
+ """
2049
+ return pulumi.get(self, "name")
2050
+
2051
+
2052
+ @pulumi.output_type
2053
+ class DeviceRequest(dict):
2054
+ """
2055
+ DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.
2056
+ """
2057
+ @staticmethod
2058
+ def __key_warning(key: str):
2059
+ suggest = None
2060
+ if key == "adminAccess":
2061
+ suggest = "admin_access"
2062
+ elif key == "allocationMode":
2063
+ suggest = "allocation_mode"
2064
+ elif key == "deviceClassName":
2065
+ suggest = "device_class_name"
2066
+ elif key == "firstAvailable":
2067
+ suggest = "first_available"
2068
+
2069
+ if suggest:
2070
+ pulumi.log.warn(f"Key '{key}' not found in DeviceRequest. Access the value via the '{suggest}' property getter instead.")
2071
+
2072
+ def __getitem__(self, key: str) -> Any:
2073
+ DeviceRequest.__key_warning(key)
2074
+ return super().__getitem__(key)
2075
+
2076
+ def get(self, key: str, default = None) -> Any:
2077
+ DeviceRequest.__key_warning(key)
2078
+ return super().get(key, default)
2079
+
2080
+ def __init__(__self__, *,
2081
+ name: builtins.str,
2082
+ admin_access: Optional[builtins.bool] = None,
2083
+ allocation_mode: Optional[builtins.str] = None,
2084
+ count: Optional[builtins.int] = None,
2085
+ device_class_name: Optional[builtins.str] = None,
2086
+ first_available: Optional[Sequence['outputs.DeviceSubRequest']] = None,
2087
+ selectors: Optional[Sequence['outputs.DeviceSelector']] = None,
2088
+ tolerations: Optional[Sequence['outputs.DeviceToleration']] = None):
2089
+ """
2090
+ DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.
2091
+ :param builtins.str name: Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
1602
2092
 
1603
2093
  Must be a DNS label.
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.
2094
+ :param builtins.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.
2095
+
2096
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1605
2097
 
1606
2098
  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.
1607
- :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2099
+ :param builtins.str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1608
2100
 
1609
2101
  - ExactCount: This request is for a specific number of devices.
1610
2102
  This is the default. The exact number is provided in the
1611
2103
  count field.
1612
2104
 
1613
2105
  - All: This request is for all of the matching devices in a pool.
2106
+ At least one device must exist on the node for the allocation to succeed.
1614
2107
  Allocation will fail if some devices are already allocated,
1615
2108
  unless adminAccess is requested.
1616
2109
 
1617
- If AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2110
+ If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2111
+
2112
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1618
2113
 
1619
2114
  More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
1620
- :param int count: Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
2115
+ :param builtins.int count: Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
2116
+
2117
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2118
+ :param builtins.str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2119
+
2120
+ A class is required if no subrequests are specified in the firstAvailable list and no class can be set if subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.
2121
+
2122
+ Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
2123
+ :param Sequence['DeviceSubRequestArgs'] first_available: FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one cannot be used.
2124
+
2125
+ This field may only be set in the entries of DeviceClaim.Requests.
2126
+
2127
+ DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.
1621
2128
  :param Sequence['DeviceSelectorArgs'] selectors: Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
2129
+
2130
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2131
+ :param Sequence['DeviceTolerationArgs'] tolerations: If specified, the request's tolerations.
2132
+
2133
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2134
+
2135
+ In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.
2136
+
2137
+ The maximum number of tolerations is 16.
2138
+
2139
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2140
+
2141
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
1622
2142
  """
1623
- pulumi.set(__self__, "device_class_name", device_class_name)
1624
2143
  pulumi.set(__self__, "name", name)
1625
2144
  if admin_access is not None:
1626
2145
  pulumi.set(__self__, "admin_access", admin_access)
@@ -1628,24 +2147,18 @@ class DeviceRequest(dict):
1628
2147
  pulumi.set(__self__, "allocation_mode", allocation_mode)
1629
2148
  if count is not None:
1630
2149
  pulumi.set(__self__, "count", count)
2150
+ if device_class_name is not None:
2151
+ pulumi.set(__self__, "device_class_name", device_class_name)
2152
+ if first_available is not None:
2153
+ pulumi.set(__self__, "first_available", first_available)
1631
2154
  if selectors is not None:
1632
2155
  pulumi.set(__self__, "selectors", selectors)
1633
-
1634
- @property
1635
- @pulumi.getter(name="deviceClassName")
1636
- def device_class_name(self) -> str:
1637
- """
1638
- DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
1639
-
1640
- A class is required. Which classes are available depends on the cluster.
1641
-
1642
- Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
1643
- """
1644
- return pulumi.get(self, "device_class_name")
2156
+ if tolerations is not None:
2157
+ pulumi.set(__self__, "tolerations", tolerations)
1645
2158
 
1646
2159
  @property
1647
2160
  @pulumi.getter
1648
- def name(self) -> str:
2161
+ def name(self) -> builtins.str:
1649
2162
  """
1650
2163
  Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
1651
2164
 
@@ -1655,17 +2168,19 @@ class DeviceRequest(dict):
1655
2168
 
1656
2169
  @property
1657
2170
  @pulumi.getter(name="adminAccess")
1658
- def admin_access(self) -> Optional[bool]:
2171
+ def admin_access(self) -> Optional[builtins.bool]:
1659
2172
  """
1660
2173
  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
2174
 
2175
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2176
+
1662
2177
  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.
1663
2178
  """
1664
2179
  return pulumi.get(self, "admin_access")
1665
2180
 
1666
2181
  @property
1667
2182
  @pulumi.getter(name="allocationMode")
1668
- def allocation_mode(self) -> Optional[str]:
2183
+ def allocation_mode(self) -> Optional[builtins.str]:
1669
2184
  """
1670
2185
  AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1671
2186
 
@@ -1674,10 +2189,13 @@ class DeviceRequest(dict):
1674
2189
  count field.
1675
2190
 
1676
2191
  - All: This request is for all of the matching devices in a pool.
2192
+ At least one device must exist on the node for the allocation to succeed.
1677
2193
  Allocation will fail if some devices are already allocated,
1678
2194
  unless adminAccess is requested.
1679
2195
 
1680
- If AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2196
+ If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2197
+
2198
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1681
2199
 
1682
2200
  More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
1683
2201
  """
@@ -1685,20 +2203,66 @@ class DeviceRequest(dict):
1685
2203
 
1686
2204
  @property
1687
2205
  @pulumi.getter
1688
- def count(self) -> Optional[int]:
2206
+ def count(self) -> Optional[builtins.int]:
1689
2207
  """
1690
2208
  Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
2209
+
2210
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1691
2211
  """
1692
2212
  return pulumi.get(self, "count")
1693
2213
 
2214
+ @property
2215
+ @pulumi.getter(name="deviceClassName")
2216
+ def device_class_name(self) -> Optional[builtins.str]:
2217
+ """
2218
+ DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2219
+
2220
+ A class is required if no subrequests are specified in the firstAvailable list and no class can be set if subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.
2221
+
2222
+ Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
2223
+ """
2224
+ return pulumi.get(self, "device_class_name")
2225
+
2226
+ @property
2227
+ @pulumi.getter(name="firstAvailable")
2228
+ def first_available(self) -> Optional[Sequence['outputs.DeviceSubRequest']]:
2229
+ """
2230
+ FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one cannot be used.
2231
+
2232
+ This field may only be set in the entries of DeviceClaim.Requests.
2233
+
2234
+ DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.
2235
+ """
2236
+ return pulumi.get(self, "first_available")
2237
+
1694
2238
  @property
1695
2239
  @pulumi.getter
1696
2240
  def selectors(self) -> Optional[Sequence['outputs.DeviceSelector']]:
1697
2241
  """
1698
2242
  Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
2243
+
2244
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1699
2245
  """
1700
2246
  return pulumi.get(self, "selectors")
1701
2247
 
2248
+ @property
2249
+ @pulumi.getter
2250
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceToleration']]:
2251
+ """
2252
+ If specified, the request's tolerations.
2253
+
2254
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2255
+
2256
+ In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.
2257
+
2258
+ The maximum number of tolerations is 16.
2259
+
2260
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2261
+
2262
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2263
+ """
2264
+ return pulumi.get(self, "tolerations")
2265
+
1702
2266
 
1703
2267
  @pulumi.output_type
1704
2268
  class DeviceRequestAllocationResult(dict):
@@ -1723,24 +2287,32 @@ class DeviceRequestAllocationResult(dict):
1723
2287
  return super().get(key, default)
1724
2288
 
1725
2289
  def __init__(__self__, *,
1726
- device: str,
1727
- driver: str,
1728
- pool: str,
1729
- request: str,
1730
- admin_access: Optional[bool] = None):
2290
+ device: builtins.str,
2291
+ driver: builtins.str,
2292
+ pool: builtins.str,
2293
+ request: builtins.str,
2294
+ admin_access: Optional[builtins.bool] = None,
2295
+ tolerations: Optional[Sequence['outputs.DeviceToleration']] = None):
1731
2296
  """
1732
2297
  DeviceRequestAllocationResult contains the allocation result for one request.
1733
- :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
1734
- :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.
2298
+ :param builtins.str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
2299
+ :param builtins.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.
1735
2300
 
1736
2301
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
1737
- :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>`).
2302
+ :param builtins.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>`).
1738
2303
 
1739
2304
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
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.
2305
+ :param builtins.str request: Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.
2306
+
2307
+ Multiple devices may have been allocated per request.
2308
+ :param builtins.bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1742
2309
 
1743
2310
  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.
2311
+ :param Sequence['DeviceTolerationArgs'] tolerations: A copy of all tolerations specified in the request at the time when the device got allocated.
2312
+
2313
+ The maximum number of tolerations is 16.
2314
+
2315
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
1744
2316
  """
1745
2317
  pulumi.set(__self__, "device", device)
1746
2318
  pulumi.set(__self__, "driver", driver)
@@ -1748,10 +2320,146 @@ class DeviceRequestAllocationResult(dict):
1748
2320
  pulumi.set(__self__, "request", request)
1749
2321
  if admin_access is not None:
1750
2322
  pulumi.set(__self__, "admin_access", admin_access)
2323
+ if tolerations is not None:
2324
+ pulumi.set(__self__, "tolerations", tolerations)
2325
+
2326
+ @property
2327
+ @pulumi.getter
2328
+ def device(self) -> builtins.str:
2329
+ """
2330
+ Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
2331
+ """
2332
+ return pulumi.get(self, "device")
2333
+
2334
+ @property
2335
+ @pulumi.getter
2336
+ def driver(self) -> builtins.str:
2337
+ """
2338
+ 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.
2339
+
2340
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
2341
+ """
2342
+ return pulumi.get(self, "driver")
2343
+
2344
+ @property
2345
+ @pulumi.getter
2346
+ def pool(self) -> builtins.str:
2347
+ """
2348
+ This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
2349
+
2350
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
2351
+ """
2352
+ return pulumi.get(self, "pool")
2353
+
2354
+ @property
2355
+ @pulumi.getter
2356
+ def request(self) -> builtins.str:
2357
+ """
2358
+ Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.
2359
+
2360
+ Multiple devices may have been allocated per request.
2361
+ """
2362
+ return pulumi.get(self, "request")
2363
+
2364
+ @property
2365
+ @pulumi.getter(name="adminAccess")
2366
+ def admin_access(self) -> Optional[builtins.bool]:
2367
+ """
2368
+ AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
2369
+
2370
+ 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.
2371
+ """
2372
+ return pulumi.get(self, "admin_access")
2373
+
2374
+ @property
2375
+ @pulumi.getter
2376
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceToleration']]:
2377
+ """
2378
+ A copy of all tolerations specified in the request at the time when the device got allocated.
2379
+
2380
+ The maximum number of tolerations is 16.
2381
+
2382
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2383
+ """
2384
+ return pulumi.get(self, "tolerations")
2385
+
2386
+
2387
+ @pulumi.output_type
2388
+ class DeviceRequestAllocationResultPatch(dict):
2389
+ """
2390
+ DeviceRequestAllocationResult contains the allocation result for one request.
2391
+ """
2392
+ @staticmethod
2393
+ def __key_warning(key: str):
2394
+ suggest = None
2395
+ if key == "adminAccess":
2396
+ suggest = "admin_access"
2397
+
2398
+ if suggest:
2399
+ pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResultPatch. Access the value via the '{suggest}' property getter instead.")
2400
+
2401
+ def __getitem__(self, key: str) -> Any:
2402
+ DeviceRequestAllocationResultPatch.__key_warning(key)
2403
+ return super().__getitem__(key)
2404
+
2405
+ def get(self, key: str, default = None) -> Any:
2406
+ DeviceRequestAllocationResultPatch.__key_warning(key)
2407
+ return super().get(key, default)
2408
+
2409
+ def __init__(__self__, *,
2410
+ admin_access: Optional[builtins.bool] = None,
2411
+ device: Optional[builtins.str] = None,
2412
+ driver: Optional[builtins.str] = None,
2413
+ pool: Optional[builtins.str] = None,
2414
+ request: Optional[builtins.str] = None,
2415
+ tolerations: Optional[Sequence['outputs.DeviceTolerationPatch']] = None):
2416
+ """
2417
+ DeviceRequestAllocationResult contains the allocation result for one request.
2418
+ :param builtins.bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
2419
+
2420
+ 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.
2421
+ :param builtins.str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
2422
+ :param builtins.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.
2423
+
2424
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
2425
+ :param builtins.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>`).
2426
+
2427
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
2428
+ :param builtins.str request: Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.
2429
+
2430
+ Multiple devices may have been allocated per request.
2431
+ :param Sequence['DeviceTolerationPatchArgs'] tolerations: A copy of all tolerations specified in the request at the time when the device got allocated.
2432
+
2433
+ The maximum number of tolerations is 16.
2434
+
2435
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2436
+ """
2437
+ if admin_access is not None:
2438
+ pulumi.set(__self__, "admin_access", admin_access)
2439
+ if device is not None:
2440
+ pulumi.set(__self__, "device", device)
2441
+ if driver is not None:
2442
+ pulumi.set(__self__, "driver", driver)
2443
+ if pool is not None:
2444
+ pulumi.set(__self__, "pool", pool)
2445
+ if request is not None:
2446
+ pulumi.set(__self__, "request", request)
2447
+ if tolerations is not None:
2448
+ pulumi.set(__self__, "tolerations", tolerations)
2449
+
2450
+ @property
2451
+ @pulumi.getter(name="adminAccess")
2452
+ def admin_access(self) -> Optional[builtins.bool]:
2453
+ """
2454
+ AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
2455
+
2456
+ 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.
2457
+ """
2458
+ return pulumi.get(self, "admin_access")
1751
2459
 
1752
2460
  @property
1753
2461
  @pulumi.getter
1754
- def device(self) -> str:
2462
+ def device(self) -> Optional[builtins.str]:
1755
2463
  """
1756
2464
  Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
1757
2465
  """
@@ -1759,335 +2467,1321 @@ class DeviceRequestAllocationResult(dict):
1759
2467
 
1760
2468
  @property
1761
2469
  @pulumi.getter
1762
- def driver(self) -> str:
2470
+ def driver(self) -> Optional[builtins.str]:
1763
2471
  """
1764
2472
  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.
1765
2473
 
1766
- Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
1767
- """
1768
- return pulumi.get(self, "driver")
2474
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
2475
+ """
2476
+ return pulumi.get(self, "driver")
2477
+
2478
+ @property
2479
+ @pulumi.getter
2480
+ def pool(self) -> Optional[builtins.str]:
2481
+ """
2482
+ This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
2483
+
2484
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
2485
+ """
2486
+ return pulumi.get(self, "pool")
2487
+
2488
+ @property
2489
+ @pulumi.getter
2490
+ def request(self) -> Optional[builtins.str]:
2491
+ """
2492
+ Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>.
2493
+
2494
+ Multiple devices may have been allocated per request.
2495
+ """
2496
+ return pulumi.get(self, "request")
2497
+
2498
+ @property
2499
+ @pulumi.getter
2500
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceTolerationPatch']]:
2501
+ """
2502
+ A copy of all tolerations specified in the request at the time when the device got allocated.
2503
+
2504
+ The maximum number of tolerations is 16.
2505
+
2506
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2507
+ """
2508
+ return pulumi.get(self, "tolerations")
2509
+
2510
+
2511
+ @pulumi.output_type
2512
+ class DeviceRequestPatch(dict):
2513
+ """
2514
+ DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.
2515
+ """
2516
+ @staticmethod
2517
+ def __key_warning(key: str):
2518
+ suggest = None
2519
+ if key == "adminAccess":
2520
+ suggest = "admin_access"
2521
+ elif key == "allocationMode":
2522
+ suggest = "allocation_mode"
2523
+ elif key == "deviceClassName":
2524
+ suggest = "device_class_name"
2525
+ elif key == "firstAvailable":
2526
+ suggest = "first_available"
2527
+
2528
+ if suggest:
2529
+ pulumi.log.warn(f"Key '{key}' not found in DeviceRequestPatch. Access the value via the '{suggest}' property getter instead.")
2530
+
2531
+ def __getitem__(self, key: str) -> Any:
2532
+ DeviceRequestPatch.__key_warning(key)
2533
+ return super().__getitem__(key)
2534
+
2535
+ def get(self, key: str, default = None) -> Any:
2536
+ DeviceRequestPatch.__key_warning(key)
2537
+ return super().get(key, default)
2538
+
2539
+ def __init__(__self__, *,
2540
+ admin_access: Optional[builtins.bool] = None,
2541
+ allocation_mode: Optional[builtins.str] = None,
2542
+ count: Optional[builtins.int] = None,
2543
+ device_class_name: Optional[builtins.str] = None,
2544
+ first_available: Optional[Sequence['outputs.DeviceSubRequestPatch']] = None,
2545
+ name: Optional[builtins.str] = None,
2546
+ selectors: Optional[Sequence['outputs.DeviceSelectorPatch']] = None,
2547
+ tolerations: Optional[Sequence['outputs.DeviceTolerationPatch']] = None):
2548
+ """
2549
+ DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.
2550
+ :param builtins.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.
2551
+
2552
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2553
+
2554
+ 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.
2555
+ :param builtins.str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2556
+
2557
+ - ExactCount: This request is for a specific number of devices.
2558
+ This is the default. The exact number is provided in the
2559
+ count field.
2560
+
2561
+ - All: This request is for all of the matching devices in a pool.
2562
+ At least one device must exist on the node for the allocation to succeed.
2563
+ Allocation will fail if some devices are already allocated,
2564
+ unless adminAccess is requested.
2565
+
2566
+ If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2567
+
2568
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2569
+
2570
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2571
+ :param builtins.int count: Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
2572
+
2573
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2574
+ :param builtins.str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2575
+
2576
+ A class is required if no subrequests are specified in the firstAvailable list and no class can be set if subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.
2577
+
2578
+ Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
2579
+ :param Sequence['DeviceSubRequestPatchArgs'] first_available: FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one cannot be used.
2580
+
2581
+ This field may only be set in the entries of DeviceClaim.Requests.
2582
+
2583
+ DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.
2584
+ :param builtins.str name: Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
2585
+
2586
+ Must be a DNS label.
2587
+ :param Sequence['DeviceSelectorPatchArgs'] selectors: Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
2588
+
2589
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2590
+ :param Sequence['DeviceTolerationPatchArgs'] tolerations: If specified, the request's tolerations.
2591
+
2592
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2593
+
2594
+ In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.
2595
+
2596
+ The maximum number of tolerations is 16.
2597
+
2598
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2599
+
2600
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2601
+ """
2602
+ if admin_access is not None:
2603
+ pulumi.set(__self__, "admin_access", admin_access)
2604
+ if allocation_mode is not None:
2605
+ pulumi.set(__self__, "allocation_mode", allocation_mode)
2606
+ if count is not None:
2607
+ pulumi.set(__self__, "count", count)
2608
+ if device_class_name is not None:
2609
+ pulumi.set(__self__, "device_class_name", device_class_name)
2610
+ if first_available is not None:
2611
+ pulumi.set(__self__, "first_available", first_available)
2612
+ if name is not None:
2613
+ pulumi.set(__self__, "name", name)
2614
+ if selectors is not None:
2615
+ pulumi.set(__self__, "selectors", selectors)
2616
+ if tolerations is not None:
2617
+ pulumi.set(__self__, "tolerations", tolerations)
2618
+
2619
+ @property
2620
+ @pulumi.getter(name="adminAccess")
2621
+ def admin_access(self) -> Optional[builtins.bool]:
2622
+ """
2623
+ 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.
2624
+
2625
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2626
+
2627
+ 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.
2628
+ """
2629
+ return pulumi.get(self, "admin_access")
2630
+
2631
+ @property
2632
+ @pulumi.getter(name="allocationMode")
2633
+ def allocation_mode(self) -> Optional[builtins.str]:
2634
+ """
2635
+ AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2636
+
2637
+ - ExactCount: This request is for a specific number of devices.
2638
+ This is the default. The exact number is provided in the
2639
+ count field.
2640
+
2641
+ - All: This request is for all of the matching devices in a pool.
2642
+ At least one device must exist on the node for the allocation to succeed.
2643
+ Allocation will fail if some devices are already allocated,
2644
+ unless adminAccess is requested.
2645
+
2646
+ If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2647
+
2648
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2649
+
2650
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2651
+ """
2652
+ return pulumi.get(self, "allocation_mode")
2653
+
2654
+ @property
2655
+ @pulumi.getter
2656
+ def count(self) -> Optional[builtins.int]:
2657
+ """
2658
+ Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
2659
+
2660
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2661
+ """
2662
+ return pulumi.get(self, "count")
2663
+
2664
+ @property
2665
+ @pulumi.getter(name="deviceClassName")
2666
+ def device_class_name(self) -> Optional[builtins.str]:
2667
+ """
2668
+ DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2669
+
2670
+ A class is required if no subrequests are specified in the firstAvailable list and no class can be set if subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster.
2671
+
2672
+ Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
2673
+ """
2674
+ return pulumi.get(self, "device_class_name")
2675
+
2676
+ @property
2677
+ @pulumi.getter(name="firstAvailable")
2678
+ def first_available(self) -> Optional[Sequence['outputs.DeviceSubRequestPatch']]:
2679
+ """
2680
+ FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one cannot be used.
2681
+
2682
+ This field may only be set in the entries of DeviceClaim.Requests.
2683
+
2684
+ DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.
2685
+ """
2686
+ return pulumi.get(self, "first_available")
2687
+
2688
+ @property
2689
+ @pulumi.getter
2690
+ def name(self) -> Optional[builtins.str]:
2691
+ """
2692
+ Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
2693
+
2694
+ Must be a DNS label.
2695
+ """
2696
+ return pulumi.get(self, "name")
2697
+
2698
+ @property
2699
+ @pulumi.getter
2700
+ def selectors(self) -> Optional[Sequence['outputs.DeviceSelectorPatch']]:
2701
+ """
2702
+ Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
2703
+
2704
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2705
+ """
2706
+ return pulumi.get(self, "selectors")
2707
+
2708
+ @property
2709
+ @pulumi.getter
2710
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceTolerationPatch']]:
2711
+ """
2712
+ If specified, the request's tolerations.
2713
+
2714
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2715
+
2716
+ In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.
2717
+
2718
+ The maximum number of tolerations is 16.
2719
+
2720
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2721
+
2722
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2723
+ """
2724
+ return pulumi.get(self, "tolerations")
2725
+
2726
+
2727
+ @pulumi.output_type
2728
+ class DeviceSelector(dict):
2729
+ """
2730
+ DeviceSelector must have exactly one field set.
2731
+ """
2732
+ def __init__(__self__, *,
2733
+ cel: Optional['outputs.CELDeviceSelector'] = None):
2734
+ """
2735
+ DeviceSelector must have exactly one field set.
2736
+ :param 'CELDeviceSelectorArgs' cel: CEL contains a CEL expression for selecting a device.
2737
+ """
2738
+ if cel is not None:
2739
+ pulumi.set(__self__, "cel", cel)
2740
+
2741
+ @property
2742
+ @pulumi.getter
2743
+ def cel(self) -> Optional['outputs.CELDeviceSelector']:
2744
+ """
2745
+ CEL contains a CEL expression for selecting a device.
2746
+ """
2747
+ return pulumi.get(self, "cel")
2748
+
2749
+
2750
+ @pulumi.output_type
2751
+ class DeviceSelectorPatch(dict):
2752
+ """
2753
+ DeviceSelector must have exactly one field set.
2754
+ """
2755
+ def __init__(__self__, *,
2756
+ cel: Optional['outputs.CELDeviceSelectorPatch'] = None):
2757
+ """
2758
+ DeviceSelector must have exactly one field set.
2759
+ :param 'CELDeviceSelectorPatchArgs' cel: CEL contains a CEL expression for selecting a device.
2760
+ """
2761
+ if cel is not None:
2762
+ pulumi.set(__self__, "cel", cel)
2763
+
2764
+ @property
2765
+ @pulumi.getter
2766
+ def cel(self) -> Optional['outputs.CELDeviceSelectorPatch']:
2767
+ """
2768
+ CEL contains a CEL expression for selecting a device.
2769
+ """
2770
+ return pulumi.get(self, "cel")
2771
+
2772
+
2773
+ @pulumi.output_type
2774
+ class DeviceSubRequest(dict):
2775
+ """
2776
+ DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.
2777
+
2778
+ DeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.
2779
+ """
2780
+ @staticmethod
2781
+ def __key_warning(key: str):
2782
+ suggest = None
2783
+ if key == "deviceClassName":
2784
+ suggest = "device_class_name"
2785
+ elif key == "allocationMode":
2786
+ suggest = "allocation_mode"
2787
+
2788
+ if suggest:
2789
+ pulumi.log.warn(f"Key '{key}' not found in DeviceSubRequest. Access the value via the '{suggest}' property getter instead.")
2790
+
2791
+ def __getitem__(self, key: str) -> Any:
2792
+ DeviceSubRequest.__key_warning(key)
2793
+ return super().__getitem__(key)
2794
+
2795
+ def get(self, key: str, default = None) -> Any:
2796
+ DeviceSubRequest.__key_warning(key)
2797
+ return super().get(key, default)
2798
+
2799
+ def __init__(__self__, *,
2800
+ device_class_name: builtins.str,
2801
+ name: builtins.str,
2802
+ allocation_mode: Optional[builtins.str] = None,
2803
+ count: Optional[builtins.int] = None,
2804
+ selectors: Optional[Sequence['outputs.DeviceSelector']] = None,
2805
+ tolerations: Optional[Sequence['outputs.DeviceToleration']] = None):
2806
+ """
2807
+ DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.
2808
+
2809
+ DeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.
2810
+ :param builtins.str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.
2811
+
2812
+ A class is required. Which classes are available depends on the cluster.
2813
+
2814
+ Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
2815
+ :param builtins.str name: Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.
2816
+
2817
+ Must be a DNS label.
2818
+ :param builtins.str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2819
+
2820
+ - ExactCount: This request is for a specific number of devices.
2821
+ This is the default. The exact number is provided in the
2822
+ count field.
2823
+
2824
+ - All: This request is for all of the matching devices in a pool.
2825
+ Allocation will fail if some devices are already allocated,
2826
+ unless adminAccess is requested.
2827
+
2828
+ If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2829
+
2830
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2831
+ :param builtins.int count: Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
2832
+ :param Sequence['DeviceSelectorArgs'] selectors: Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
2833
+ :param Sequence['DeviceTolerationArgs'] tolerations: If specified, the request's tolerations.
2834
+
2835
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2836
+
2837
+ In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.
2838
+
2839
+ The maximum number of tolerations is 16.
2840
+
2841
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2842
+ """
2843
+ pulumi.set(__self__, "device_class_name", device_class_name)
2844
+ pulumi.set(__self__, "name", name)
2845
+ if allocation_mode is not None:
2846
+ pulumi.set(__self__, "allocation_mode", allocation_mode)
2847
+ if count is not None:
2848
+ pulumi.set(__self__, "count", count)
2849
+ if selectors is not None:
2850
+ pulumi.set(__self__, "selectors", selectors)
2851
+ if tolerations is not None:
2852
+ pulumi.set(__self__, "tolerations", tolerations)
2853
+
2854
+ @property
2855
+ @pulumi.getter(name="deviceClassName")
2856
+ def device_class_name(self) -> builtins.str:
2857
+ """
2858
+ DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.
2859
+
2860
+ A class is required. Which classes are available depends on the cluster.
2861
+
2862
+ Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
2863
+ """
2864
+ return pulumi.get(self, "device_class_name")
2865
+
2866
+ @property
2867
+ @pulumi.getter
2868
+ def name(self) -> builtins.str:
2869
+ """
2870
+ Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.
2871
+
2872
+ Must be a DNS label.
2873
+ """
2874
+ return pulumi.get(self, "name")
2875
+
2876
+ @property
2877
+ @pulumi.getter(name="allocationMode")
2878
+ def allocation_mode(self) -> Optional[builtins.str]:
2879
+ """
2880
+ AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2881
+
2882
+ - ExactCount: This request is for a specific number of devices.
2883
+ This is the default. The exact number is provided in the
2884
+ count field.
2885
+
2886
+ - All: This request is for all of the matching devices in a pool.
2887
+ Allocation will fail if some devices are already allocated,
2888
+ unless adminAccess is requested.
2889
+
2890
+ If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2891
+
2892
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2893
+ """
2894
+ return pulumi.get(self, "allocation_mode")
2895
+
2896
+ @property
2897
+ @pulumi.getter
2898
+ def count(self) -> Optional[builtins.int]:
2899
+ """
2900
+ Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
2901
+ """
2902
+ return pulumi.get(self, "count")
2903
+
2904
+ @property
2905
+ @pulumi.getter
2906
+ def selectors(self) -> Optional[Sequence['outputs.DeviceSelector']]:
2907
+ """
2908
+ Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
2909
+ """
2910
+ return pulumi.get(self, "selectors")
2911
+
2912
+ @property
2913
+ @pulumi.getter
2914
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceToleration']]:
2915
+ """
2916
+ If specified, the request's tolerations.
2917
+
2918
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2919
+
2920
+ In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.
2921
+
2922
+ The maximum number of tolerations is 16.
2923
+
2924
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2925
+ """
2926
+ return pulumi.get(self, "tolerations")
2927
+
2928
+
2929
+ @pulumi.output_type
2930
+ class DeviceSubRequestPatch(dict):
2931
+ """
2932
+ DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.
2933
+
2934
+ DeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.
2935
+ """
2936
+ @staticmethod
2937
+ def __key_warning(key: str):
2938
+ suggest = None
2939
+ if key == "allocationMode":
2940
+ suggest = "allocation_mode"
2941
+ elif key == "deviceClassName":
2942
+ suggest = "device_class_name"
2943
+
2944
+ if suggest:
2945
+ pulumi.log.warn(f"Key '{key}' not found in DeviceSubRequestPatch. Access the value via the '{suggest}' property getter instead.")
2946
+
2947
+ def __getitem__(self, key: str) -> Any:
2948
+ DeviceSubRequestPatch.__key_warning(key)
2949
+ return super().__getitem__(key)
2950
+
2951
+ def get(self, key: str, default = None) -> Any:
2952
+ DeviceSubRequestPatch.__key_warning(key)
2953
+ return super().get(key, default)
2954
+
2955
+ def __init__(__self__, *,
2956
+ allocation_mode: Optional[builtins.str] = None,
2957
+ count: Optional[builtins.int] = None,
2958
+ device_class_name: Optional[builtins.str] = None,
2959
+ name: Optional[builtins.str] = None,
2960
+ selectors: Optional[Sequence['outputs.DeviceSelectorPatch']] = None,
2961
+ tolerations: Optional[Sequence['outputs.DeviceTolerationPatch']] = None):
2962
+ """
2963
+ DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices.
2964
+
2965
+ DeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.
2966
+ :param builtins.str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2967
+
2968
+ - ExactCount: This request is for a specific number of devices.
2969
+ This is the default. The exact number is provided in the
2970
+ count field.
2971
+
2972
+ - All: This request is for all of the matching devices in a pool.
2973
+ Allocation will fail if some devices are already allocated,
2974
+ unless adminAccess is requested.
2975
+
2976
+ If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
2977
+
2978
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2979
+ :param builtins.int count: Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
2980
+ :param builtins.str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.
2981
+
2982
+ A class is required. Which classes are available depends on the cluster.
2983
+
2984
+ Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
2985
+ :param builtins.str name: Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.
2986
+
2987
+ Must be a DNS label.
2988
+ :param Sequence['DeviceSelectorPatchArgs'] selectors: Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
2989
+ :param Sequence['DeviceTolerationPatchArgs'] tolerations: If specified, the request's tolerations.
2990
+
2991
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2992
+
2993
+ In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.
2994
+
2995
+ The maximum number of tolerations is 16.
2996
+
2997
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2998
+ """
2999
+ if allocation_mode is not None:
3000
+ pulumi.set(__self__, "allocation_mode", allocation_mode)
3001
+ if count is not None:
3002
+ pulumi.set(__self__, "count", count)
3003
+ if device_class_name is not None:
3004
+ pulumi.set(__self__, "device_class_name", device_class_name)
3005
+ if name is not None:
3006
+ pulumi.set(__self__, "name", name)
3007
+ if selectors is not None:
3008
+ pulumi.set(__self__, "selectors", selectors)
3009
+ if tolerations is not None:
3010
+ pulumi.set(__self__, "tolerations", tolerations)
3011
+
3012
+ @property
3013
+ @pulumi.getter(name="allocationMode")
3014
+ def allocation_mode(self) -> Optional[builtins.str]:
3015
+ """
3016
+ AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
3017
+
3018
+ - ExactCount: This request is for a specific number of devices.
3019
+ This is the default. The exact number is provided in the
3020
+ count field.
3021
+
3022
+ - All: This request is for all of the matching devices in a pool.
3023
+ Allocation will fail if some devices are already allocated,
3024
+ unless adminAccess is requested.
3025
+
3026
+ If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
3027
+
3028
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
3029
+ """
3030
+ return pulumi.get(self, "allocation_mode")
3031
+
3032
+ @property
3033
+ @pulumi.getter
3034
+ def count(self) -> Optional[builtins.int]:
3035
+ """
3036
+ Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
3037
+ """
3038
+ return pulumi.get(self, "count")
3039
+
3040
+ @property
3041
+ @pulumi.getter(name="deviceClassName")
3042
+ def device_class_name(self) -> Optional[builtins.str]:
3043
+ """
3044
+ DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.
3045
+
3046
+ A class is required. Which classes are available depends on the cluster.
3047
+
3048
+ Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
3049
+ """
3050
+ return pulumi.get(self, "device_class_name")
3051
+
3052
+ @property
3053
+ @pulumi.getter
3054
+ def name(self) -> Optional[builtins.str]:
3055
+ """
3056
+ Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>.
3057
+
3058
+ Must be a DNS label.
3059
+ """
3060
+ return pulumi.get(self, "name")
3061
+
3062
+ @property
3063
+ @pulumi.getter
3064
+ def selectors(self) -> Optional[Sequence['outputs.DeviceSelectorPatch']]:
3065
+ """
3066
+ Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
3067
+ """
3068
+ return pulumi.get(self, "selectors")
3069
+
3070
+ @property
3071
+ @pulumi.getter
3072
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceTolerationPatch']]:
3073
+ """
3074
+ If specified, the request's tolerations.
3075
+
3076
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
3077
+
3078
+ In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated.
3079
+
3080
+ The maximum number of tolerations is 16.
3081
+
3082
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
3083
+ """
3084
+ return pulumi.get(self, "tolerations")
3085
+
3086
+
3087
+ @pulumi.output_type
3088
+ class DeviceTaint(dict):
3089
+ """
3090
+ The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.
3091
+ """
3092
+ @staticmethod
3093
+ def __key_warning(key: str):
3094
+ suggest = None
3095
+ if key == "timeAdded":
3096
+ suggest = "time_added"
3097
+
3098
+ if suggest:
3099
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaint. Access the value via the '{suggest}' property getter instead.")
3100
+
3101
+ def __getitem__(self, key: str) -> Any:
3102
+ DeviceTaint.__key_warning(key)
3103
+ return super().__getitem__(key)
3104
+
3105
+ def get(self, key: str, default = None) -> Any:
3106
+ DeviceTaint.__key_warning(key)
3107
+ return super().get(key, default)
3108
+
3109
+ def __init__(__self__, *,
3110
+ effect: builtins.str,
3111
+ key: builtins.str,
3112
+ time_added: Optional[builtins.str] = None,
3113
+ value: Optional[builtins.str] = None):
3114
+ """
3115
+ The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.
3116
+ :param builtins.str effect: The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.
3117
+ :param builtins.str key: The taint key to be applied to a device. Must be a label name.
3118
+ :param builtins.str time_added: TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.
3119
+ :param builtins.str value: The taint value corresponding to the taint key. Must be a label value.
3120
+ """
3121
+ pulumi.set(__self__, "effect", effect)
3122
+ pulumi.set(__self__, "key", key)
3123
+ if time_added is not None:
3124
+ pulumi.set(__self__, "time_added", time_added)
3125
+ if value is not None:
3126
+ pulumi.set(__self__, "value", value)
3127
+
3128
+ @property
3129
+ @pulumi.getter
3130
+ def effect(self) -> builtins.str:
3131
+ """
3132
+ The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.
3133
+ """
3134
+ return pulumi.get(self, "effect")
3135
+
3136
+ @property
3137
+ @pulumi.getter
3138
+ def key(self) -> builtins.str:
3139
+ """
3140
+ The taint key to be applied to a device. Must be a label name.
3141
+ """
3142
+ return pulumi.get(self, "key")
3143
+
3144
+ @property
3145
+ @pulumi.getter(name="timeAdded")
3146
+ def time_added(self) -> Optional[builtins.str]:
3147
+ """
3148
+ TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.
3149
+ """
3150
+ return pulumi.get(self, "time_added")
3151
+
3152
+ @property
3153
+ @pulumi.getter
3154
+ def value(self) -> Optional[builtins.str]:
3155
+ """
3156
+ The taint value corresponding to the taint key. Must be a label value.
3157
+ """
3158
+ return pulumi.get(self, "value")
3159
+
3160
+
3161
+ @pulumi.output_type
3162
+ class DeviceTaintPatch(dict):
3163
+ """
3164
+ The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.
3165
+ """
3166
+ @staticmethod
3167
+ def __key_warning(key: str):
3168
+ suggest = None
3169
+ if key == "timeAdded":
3170
+ suggest = "time_added"
3171
+
3172
+ if suggest:
3173
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaintPatch. Access the value via the '{suggest}' property getter instead.")
3174
+
3175
+ def __getitem__(self, key: str) -> Any:
3176
+ DeviceTaintPatch.__key_warning(key)
3177
+ return super().__getitem__(key)
3178
+
3179
+ def get(self, key: str, default = None) -> Any:
3180
+ DeviceTaintPatch.__key_warning(key)
3181
+ return super().get(key, default)
3182
+
3183
+ def __init__(__self__, *,
3184
+ effect: Optional[builtins.str] = None,
3185
+ key: Optional[builtins.str] = None,
3186
+ time_added: Optional[builtins.str] = None,
3187
+ value: Optional[builtins.str] = None):
3188
+ """
3189
+ The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.
3190
+ :param builtins.str effect: The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.
3191
+ :param builtins.str key: The taint key to be applied to a device. Must be a label name.
3192
+ :param builtins.str time_added: TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.
3193
+ :param builtins.str value: The taint value corresponding to the taint key. Must be a label value.
3194
+ """
3195
+ if effect is not None:
3196
+ pulumi.set(__self__, "effect", effect)
3197
+ if key is not None:
3198
+ pulumi.set(__self__, "key", key)
3199
+ if time_added is not None:
3200
+ pulumi.set(__self__, "time_added", time_added)
3201
+ if value is not None:
3202
+ pulumi.set(__self__, "value", value)
3203
+
3204
+ @property
3205
+ @pulumi.getter
3206
+ def effect(self) -> Optional[builtins.str]:
3207
+ """
3208
+ The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.
3209
+ """
3210
+ return pulumi.get(self, "effect")
3211
+
3212
+ @property
3213
+ @pulumi.getter
3214
+ def key(self) -> Optional[builtins.str]:
3215
+ """
3216
+ The taint key to be applied to a device. Must be a label name.
3217
+ """
3218
+ return pulumi.get(self, "key")
3219
+
3220
+ @property
3221
+ @pulumi.getter(name="timeAdded")
3222
+ def time_added(self) -> Optional[builtins.str]:
3223
+ """
3224
+ TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.
3225
+ """
3226
+ return pulumi.get(self, "time_added")
3227
+
3228
+ @property
3229
+ @pulumi.getter
3230
+ def value(self) -> Optional[builtins.str]:
3231
+ """
3232
+ The taint value corresponding to the taint key. Must be a label value.
3233
+ """
3234
+ return pulumi.get(self, "value")
3235
+
3236
+
3237
+ @pulumi.output_type
3238
+ class DeviceTaintRule(dict):
3239
+ """
3240
+ DeviceTaintRule adds one taint to all devices which match the selector. This has the same effect as if the taint was specified directly in the ResourceSlice by the DRA driver.
3241
+ """
3242
+ @staticmethod
3243
+ def __key_warning(key: str):
3244
+ suggest = None
3245
+ if key == "apiVersion":
3246
+ suggest = "api_version"
3247
+
3248
+ if suggest:
3249
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaintRule. Access the value via the '{suggest}' property getter instead.")
3250
+
3251
+ def __getitem__(self, key: str) -> Any:
3252
+ DeviceTaintRule.__key_warning(key)
3253
+ return super().__getitem__(key)
3254
+
3255
+ def get(self, key: str, default = None) -> Any:
3256
+ DeviceTaintRule.__key_warning(key)
3257
+ return super().get(key, default)
3258
+
3259
+ def __init__(__self__, *,
3260
+ spec: 'outputs.DeviceTaintRuleSpec',
3261
+ api_version: Optional[builtins.str] = None,
3262
+ kind: Optional[builtins.str] = None,
3263
+ metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
3264
+ """
3265
+ DeviceTaintRule adds one taint to all devices which match the selector. This has the same effect as if the taint was specified directly in the ResourceSlice by the DRA driver.
3266
+ :param 'DeviceTaintRuleSpecArgs' spec: Spec specifies the selector and one taint.
3267
+
3268
+ Changing the spec automatically increments the metadata.generation number.
3269
+ :param builtins.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
3270
+ :param builtins.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
3271
+ :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
3272
+ """
3273
+ pulumi.set(__self__, "spec", spec)
3274
+ if api_version is not None:
3275
+ pulumi.set(__self__, "api_version", 'resource.k8s.io/v1alpha3')
3276
+ if kind is not None:
3277
+ pulumi.set(__self__, "kind", 'DeviceTaintRule')
3278
+ if metadata is not None:
3279
+ pulumi.set(__self__, "metadata", metadata)
3280
+
3281
+ @property
3282
+ @pulumi.getter
3283
+ def spec(self) -> 'outputs.DeviceTaintRuleSpec':
3284
+ """
3285
+ Spec specifies the selector and one taint.
3286
+
3287
+ Changing the spec automatically increments the metadata.generation number.
3288
+ """
3289
+ return pulumi.get(self, "spec")
3290
+
3291
+ @property
3292
+ @pulumi.getter(name="apiVersion")
3293
+ def api_version(self) -> Optional[builtins.str]:
3294
+ """
3295
+ 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
3296
+ """
3297
+ return pulumi.get(self, "api_version")
3298
+
3299
+ @property
3300
+ @pulumi.getter
3301
+ def kind(self) -> Optional[builtins.str]:
3302
+ """
3303
+ 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
3304
+ """
3305
+ return pulumi.get(self, "kind")
3306
+
3307
+ @property
3308
+ @pulumi.getter
3309
+ def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']:
3310
+ """
3311
+ Standard object metadata
3312
+ """
3313
+ return pulumi.get(self, "metadata")
3314
+
3315
+
3316
+ @pulumi.output_type
3317
+ class DeviceTaintRuleSpec(dict):
3318
+ """
3319
+ DeviceTaintRuleSpec specifies the selector and one taint.
3320
+ """
3321
+ @staticmethod
3322
+ def __key_warning(key: str):
3323
+ suggest = None
3324
+ if key == "deviceSelector":
3325
+ suggest = "device_selector"
3326
+
3327
+ if suggest:
3328
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaintRuleSpec. Access the value via the '{suggest}' property getter instead.")
3329
+
3330
+ def __getitem__(self, key: str) -> Any:
3331
+ DeviceTaintRuleSpec.__key_warning(key)
3332
+ return super().__getitem__(key)
3333
+
3334
+ def get(self, key: str, default = None) -> Any:
3335
+ DeviceTaintRuleSpec.__key_warning(key)
3336
+ return super().get(key, default)
3337
+
3338
+ def __init__(__self__, *,
3339
+ taint: 'outputs.DeviceTaint',
3340
+ device_selector: Optional['outputs.DeviceTaintSelector'] = None):
3341
+ """
3342
+ DeviceTaintRuleSpec specifies the selector and one taint.
3343
+ :param 'DeviceTaintArgs' taint: The taint that gets applied to matching devices.
3344
+ :param 'DeviceTaintSelectorArgs' device_selector: DeviceSelector defines which device(s) the taint is applied to. All selector criteria must be satified for a device to match. The empty selector matches all devices. Without a selector, no devices are matches.
3345
+ """
3346
+ pulumi.set(__self__, "taint", taint)
3347
+ if device_selector is not None:
3348
+ pulumi.set(__self__, "device_selector", device_selector)
3349
+
3350
+ @property
3351
+ @pulumi.getter
3352
+ def taint(self) -> 'outputs.DeviceTaint':
3353
+ """
3354
+ The taint that gets applied to matching devices.
3355
+ """
3356
+ return pulumi.get(self, "taint")
3357
+
3358
+ @property
3359
+ @pulumi.getter(name="deviceSelector")
3360
+ def device_selector(self) -> Optional['outputs.DeviceTaintSelector']:
3361
+ """
3362
+ DeviceSelector defines which device(s) the taint is applied to. All selector criteria must be satified for a device to match. The empty selector matches all devices. Without a selector, no devices are matches.
3363
+ """
3364
+ return pulumi.get(self, "device_selector")
3365
+
3366
+
3367
+ @pulumi.output_type
3368
+ class DeviceTaintRuleSpecPatch(dict):
3369
+ """
3370
+ DeviceTaintRuleSpec specifies the selector and one taint.
3371
+ """
3372
+ @staticmethod
3373
+ def __key_warning(key: str):
3374
+ suggest = None
3375
+ if key == "deviceSelector":
3376
+ suggest = "device_selector"
3377
+
3378
+ if suggest:
3379
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaintRuleSpecPatch. Access the value via the '{suggest}' property getter instead.")
3380
+
3381
+ def __getitem__(self, key: str) -> Any:
3382
+ DeviceTaintRuleSpecPatch.__key_warning(key)
3383
+ return super().__getitem__(key)
3384
+
3385
+ def get(self, key: str, default = None) -> Any:
3386
+ DeviceTaintRuleSpecPatch.__key_warning(key)
3387
+ return super().get(key, default)
1769
3388
 
1770
- @property
1771
- @pulumi.getter
1772
- def pool(self) -> str:
3389
+ def __init__(__self__, *,
3390
+ device_selector: Optional['outputs.DeviceTaintSelectorPatch'] = None,
3391
+ taint: Optional['outputs.DeviceTaintPatch'] = None):
1773
3392
  """
1774
- This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
1775
-
1776
- Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
3393
+ DeviceTaintRuleSpec specifies the selector and one taint.
3394
+ :param 'DeviceTaintSelectorPatchArgs' device_selector: DeviceSelector defines which device(s) the taint is applied to. All selector criteria must be satified for a device to match. The empty selector matches all devices. Without a selector, no devices are matches.
3395
+ :param 'DeviceTaintPatchArgs' taint: The taint that gets applied to matching devices.
1777
3396
  """
1778
- return pulumi.get(self, "pool")
3397
+ if device_selector is not None:
3398
+ pulumi.set(__self__, "device_selector", device_selector)
3399
+ if taint is not None:
3400
+ pulumi.set(__self__, "taint", taint)
1779
3401
 
1780
3402
  @property
1781
- @pulumi.getter
1782
- def request(self) -> str:
3403
+ @pulumi.getter(name="deviceSelector")
3404
+ def device_selector(self) -> Optional['outputs.DeviceTaintSelectorPatch']:
1783
3405
  """
1784
- 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.
3406
+ DeviceSelector defines which device(s) the taint is applied to. All selector criteria must be satified for a device to match. The empty selector matches all devices. Without a selector, no devices are matches.
1785
3407
  """
1786
- return pulumi.get(self, "request")
3408
+ return pulumi.get(self, "device_selector")
1787
3409
 
1788
3410
  @property
1789
- @pulumi.getter(name="adminAccess")
1790
- def admin_access(self) -> Optional[bool]:
3411
+ @pulumi.getter
3412
+ def taint(self) -> Optional['outputs.DeviceTaintPatch']:
1791
3413
  """
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.
3414
+ The taint that gets applied to matching devices.
1795
3415
  """
1796
- return pulumi.get(self, "admin_access")
3416
+ return pulumi.get(self, "taint")
1797
3417
 
1798
3418
 
1799
3419
  @pulumi.output_type
1800
- class DeviceRequestAllocationResultPatch(dict):
3420
+ class DeviceTaintSelector(dict):
1801
3421
  """
1802
- DeviceRequestAllocationResult contains the allocation result for one request.
3422
+ DeviceTaintSelector defines which device(s) a DeviceTaintRule applies to. The empty selector matches all devices. Without a selector, no devices are matched.
1803
3423
  """
1804
3424
  @staticmethod
1805
3425
  def __key_warning(key: str):
1806
3426
  suggest = None
1807
- if key == "adminAccess":
1808
- suggest = "admin_access"
3427
+ if key == "deviceClassName":
3428
+ suggest = "device_class_name"
1809
3429
 
1810
3430
  if suggest:
1811
- pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResultPatch. Access the value via the '{suggest}' property getter instead.")
3431
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaintSelector. Access the value via the '{suggest}' property getter instead.")
1812
3432
 
1813
3433
  def __getitem__(self, key: str) -> Any:
1814
- DeviceRequestAllocationResultPatch.__key_warning(key)
3434
+ DeviceTaintSelector.__key_warning(key)
1815
3435
  return super().__getitem__(key)
1816
3436
 
1817
3437
  def get(self, key: str, default = None) -> Any:
1818
- DeviceRequestAllocationResultPatch.__key_warning(key)
3438
+ DeviceTaintSelector.__key_warning(key)
1819
3439
  return super().get(key, default)
1820
3440
 
1821
3441
  def __init__(__self__, *,
1822
- admin_access: Optional[bool] = None,
1823
- device: Optional[str] = None,
1824
- driver: Optional[str] = None,
1825
- pool: Optional[str] = None,
1826
- request: Optional[str] = None):
3442
+ device: Optional[builtins.str] = None,
3443
+ device_class_name: Optional[builtins.str] = None,
3444
+ driver: Optional[builtins.str] = None,
3445
+ pool: Optional[builtins.str] = None,
3446
+ selectors: Optional[Sequence['outputs.DeviceSelector']] = None):
1827
3447
  """
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.
1832
- :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
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.
3448
+ DeviceTaintSelector defines which device(s) a DeviceTaintRule applies to. The empty selector matches all devices. Without a selector, no devices are matched.
3449
+ :param builtins.str device: If device is set, only devices with that name are selected. This field corresponds to slice.spec.devices[].name.
1834
3450
 
1835
- Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
1836
- :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>`).
3451
+ Setting also driver and pool may be required to avoid ambiguity, but is not required.
3452
+ :param builtins.str device_class_name: If DeviceClassName is set, the selectors defined there must be satisfied by a device to be selected. This field corresponds to class.metadata.name.
3453
+ :param builtins.str driver: If driver is set, only devices from that driver are selected. This fields corresponds to slice.spec.driver.
3454
+ :param builtins.str pool: If pool is set, only devices in that pool are selected.
1837
3455
 
1838
- Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
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.
3456
+ Also setting the driver name may be useful to avoid ambiguity when different drivers use the same pool name, but this is not required because selecting pools from different drivers may also be useful, for example when drivers with node-local devices use the node name as their pool name.
3457
+ :param Sequence['DeviceSelectorArgs'] selectors: Selectors contains the same selection criteria as a ResourceClaim. Currently, CEL expressions are supported. All of these selectors must be satisfied.
1840
3458
  """
1841
- if admin_access is not None:
1842
- pulumi.set(__self__, "admin_access", admin_access)
1843
3459
  if device is not None:
1844
3460
  pulumi.set(__self__, "device", device)
3461
+ if device_class_name is not None:
3462
+ pulumi.set(__self__, "device_class_name", device_class_name)
1845
3463
  if driver is not None:
1846
3464
  pulumi.set(__self__, "driver", driver)
1847
3465
  if pool is not None:
1848
3466
  pulumi.set(__self__, "pool", pool)
1849
- if request is not None:
1850
- pulumi.set(__self__, "request", request)
3467
+ if selectors is not None:
3468
+ pulumi.set(__self__, "selectors", selectors)
1851
3469
 
1852
3470
  @property
1853
- @pulumi.getter(name="adminAccess")
1854
- def admin_access(self) -> Optional[bool]:
3471
+ @pulumi.getter
3472
+ def device(self) -> Optional[builtins.str]:
1855
3473
  """
1856
- AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
3474
+ If device is set, only devices with that name are selected. This field corresponds to slice.spec.devices[].name.
1857
3475
 
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.
3476
+ Setting also driver and pool may be required to avoid ambiguity, but is not required.
1859
3477
  """
1860
- return pulumi.get(self, "admin_access")
3478
+ return pulumi.get(self, "device")
1861
3479
 
1862
3480
  @property
1863
- @pulumi.getter
1864
- def device(self) -> Optional[str]:
3481
+ @pulumi.getter(name="deviceClassName")
3482
+ def device_class_name(self) -> Optional[builtins.str]:
1865
3483
  """
1866
- Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
3484
+ If DeviceClassName is set, the selectors defined there must be satisfied by a device to be selected. This field corresponds to class.metadata.name.
1867
3485
  """
1868
- return pulumi.get(self, "device")
3486
+ return pulumi.get(self, "device_class_name")
1869
3487
 
1870
3488
  @property
1871
3489
  @pulumi.getter
1872
- def driver(self) -> Optional[str]:
3490
+ def driver(self) -> Optional[builtins.str]:
1873
3491
  """
1874
- 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.
1875
-
1876
- Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
3492
+ If driver is set, only devices from that driver are selected. This fields corresponds to slice.spec.driver.
1877
3493
  """
1878
3494
  return pulumi.get(self, "driver")
1879
3495
 
1880
3496
  @property
1881
3497
  @pulumi.getter
1882
- def pool(self) -> Optional[str]:
3498
+ def pool(self) -> Optional[builtins.str]:
1883
3499
  """
1884
- This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
3500
+ If pool is set, only devices in that pool are selected.
1885
3501
 
1886
- Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
3502
+ Also setting the driver name may be useful to avoid ambiguity when different drivers use the same pool name, but this is not required because selecting pools from different drivers may also be useful, for example when drivers with node-local devices use the node name as their pool name.
1887
3503
  """
1888
3504
  return pulumi.get(self, "pool")
1889
3505
 
1890
3506
  @property
1891
3507
  @pulumi.getter
1892
- def request(self) -> Optional[str]:
3508
+ def selectors(self) -> Optional[Sequence['outputs.DeviceSelector']]:
1893
3509
  """
1894
- 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.
3510
+ Selectors contains the same selection criteria as a ResourceClaim. Currently, CEL expressions are supported. All of these selectors must be satisfied.
1895
3511
  """
1896
- return pulumi.get(self, "request")
3512
+ return pulumi.get(self, "selectors")
1897
3513
 
1898
3514
 
1899
3515
  @pulumi.output_type
1900
- class DeviceRequestPatch(dict):
3516
+ class DeviceTaintSelectorPatch(dict):
1901
3517
  """
1902
- DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.
1903
-
1904
- 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.
3518
+ DeviceTaintSelector defines which device(s) a DeviceTaintRule applies to. The empty selector matches all devices. Without a selector, no devices are matched.
1905
3519
  """
1906
3520
  @staticmethod
1907
3521
  def __key_warning(key: str):
1908
3522
  suggest = None
1909
- if key == "adminAccess":
1910
- suggest = "admin_access"
1911
- elif key == "allocationMode":
1912
- suggest = "allocation_mode"
1913
- elif key == "deviceClassName":
3523
+ if key == "deviceClassName":
1914
3524
  suggest = "device_class_name"
1915
3525
 
1916
3526
  if suggest:
1917
- pulumi.log.warn(f"Key '{key}' not found in DeviceRequestPatch. Access the value via the '{suggest}' property getter instead.")
3527
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaintSelectorPatch. Access the value via the '{suggest}' property getter instead.")
1918
3528
 
1919
3529
  def __getitem__(self, key: str) -> Any:
1920
- DeviceRequestPatch.__key_warning(key)
3530
+ DeviceTaintSelectorPatch.__key_warning(key)
1921
3531
  return super().__getitem__(key)
1922
3532
 
1923
3533
  def get(self, key: str, default = None) -> Any:
1924
- DeviceRequestPatch.__key_warning(key)
3534
+ DeviceTaintSelectorPatch.__key_warning(key)
1925
3535
  return super().get(key, default)
1926
3536
 
1927
3537
  def __init__(__self__, *,
1928
- admin_access: Optional[bool] = None,
1929
- allocation_mode: Optional[str] = None,
1930
- count: Optional[int] = None,
1931
- device_class_name: Optional[str] = None,
1932
- name: Optional[str] = None,
3538
+ device: Optional[builtins.str] = None,
3539
+ device_class_name: Optional[builtins.str] = None,
3540
+ driver: Optional[builtins.str] = None,
3541
+ pool: Optional[builtins.str] = None,
1933
3542
  selectors: Optional[Sequence['outputs.DeviceSelectorPatch']] = None):
1934
3543
  """
1935
- DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.
1936
-
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.
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.
1941
- :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1942
-
1943
- - ExactCount: This request is for a specific number of devices.
1944
- This is the default. The exact number is provided in the
1945
- count field.
1946
-
1947
- - All: This request is for all of the matching devices in a pool.
1948
- Allocation will fail if some devices are already allocated,
1949
- unless adminAccess is requested.
1950
-
1951
- If AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
1952
-
1953
- More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
1954
- :param int count: Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
1955
- :param str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
1956
-
1957
- A class is required. Which classes are available depends on the cluster.
3544
+ DeviceTaintSelector defines which device(s) a DeviceTaintRule applies to. The empty selector matches all devices. Without a selector, no devices are matched.
3545
+ :param builtins.str device: If device is set, only devices with that name are selected. This field corresponds to slice.spec.devices[].name.
1958
3546
 
1959
- Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
1960
- :param str name: Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
3547
+ Setting also driver and pool may be required to avoid ambiguity, but is not required.
3548
+ :param builtins.str device_class_name: If DeviceClassName is set, the selectors defined there must be satisfied by a device to be selected. This field corresponds to class.metadata.name.
3549
+ :param builtins.str driver: If driver is set, only devices from that driver are selected. This fields corresponds to slice.spec.driver.
3550
+ :param builtins.str pool: If pool is set, only devices in that pool are selected.
1961
3551
 
1962
- Must be a DNS label.
1963
- :param Sequence['DeviceSelectorPatchArgs'] selectors: Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
3552
+ Also setting the driver name may be useful to avoid ambiguity when different drivers use the same pool name, but this is not required because selecting pools from different drivers may also be useful, for example when drivers with node-local devices use the node name as their pool name.
3553
+ :param Sequence['DeviceSelectorPatchArgs'] selectors: Selectors contains the same selection criteria as a ResourceClaim. Currently, CEL expressions are supported. All of these selectors must be satisfied.
1964
3554
  """
1965
- if admin_access is not None:
1966
- pulumi.set(__self__, "admin_access", admin_access)
1967
- if allocation_mode is not None:
1968
- pulumi.set(__self__, "allocation_mode", allocation_mode)
1969
- if count is not None:
1970
- pulumi.set(__self__, "count", count)
3555
+ if device is not None:
3556
+ pulumi.set(__self__, "device", device)
1971
3557
  if device_class_name is not None:
1972
3558
  pulumi.set(__self__, "device_class_name", device_class_name)
1973
- if name is not None:
1974
- pulumi.set(__self__, "name", name)
3559
+ if driver is not None:
3560
+ pulumi.set(__self__, "driver", driver)
3561
+ if pool is not None:
3562
+ pulumi.set(__self__, "pool", pool)
1975
3563
  if selectors is not None:
1976
3564
  pulumi.set(__self__, "selectors", selectors)
1977
3565
 
1978
3566
  @property
1979
- @pulumi.getter(name="adminAccess")
1980
- def admin_access(self) -> Optional[bool]:
3567
+ @pulumi.getter
3568
+ def device(self) -> Optional[builtins.str]:
1981
3569
  """
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.
3570
+ If device is set, only devices with that name are selected. This field corresponds to slice.spec.devices[].name.
1983
3571
 
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.
3572
+ Setting also driver and pool may be required to avoid ambiguity, but is not required.
1985
3573
  """
1986
- return pulumi.get(self, "admin_access")
3574
+ return pulumi.get(self, "device")
1987
3575
 
1988
3576
  @property
1989
- @pulumi.getter(name="allocationMode")
1990
- def allocation_mode(self) -> Optional[str]:
3577
+ @pulumi.getter(name="deviceClassName")
3578
+ def device_class_name(self) -> Optional[builtins.str]:
1991
3579
  """
1992
- AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1993
-
1994
- - ExactCount: This request is for a specific number of devices.
1995
- This is the default. The exact number is provided in the
1996
- count field.
3580
+ If DeviceClassName is set, the selectors defined there must be satisfied by a device to be selected. This field corresponds to class.metadata.name.
3581
+ """
3582
+ return pulumi.get(self, "device_class_name")
1997
3583
 
1998
- - All: This request is for all of the matching devices in a pool.
1999
- Allocation will fail if some devices are already allocated,
2000
- unless adminAccess is requested.
3584
+ @property
3585
+ @pulumi.getter
3586
+ def driver(self) -> Optional[builtins.str]:
3587
+ """
3588
+ If driver is set, only devices from that driver are selected. This fields corresponds to slice.spec.driver.
3589
+ """
3590
+ return pulumi.get(self, "driver")
2001
3591
 
2002
- If AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.
3592
+ @property
3593
+ @pulumi.getter
3594
+ def pool(self) -> Optional[builtins.str]:
3595
+ """
3596
+ If pool is set, only devices in that pool are selected.
2003
3597
 
2004
- More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
3598
+ Also setting the driver name may be useful to avoid ambiguity when different drivers use the same pool name, but this is not required because selecting pools from different drivers may also be useful, for example when drivers with node-local devices use the node name as their pool name.
2005
3599
  """
2006
- return pulumi.get(self, "allocation_mode")
3600
+ return pulumi.get(self, "pool")
2007
3601
 
2008
3602
  @property
2009
3603
  @pulumi.getter
2010
- def count(self) -> Optional[int]:
3604
+ def selectors(self) -> Optional[Sequence['outputs.DeviceSelectorPatch']]:
2011
3605
  """
2012
- Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.
3606
+ Selectors contains the same selection criteria as a ResourceClaim. Currently, CEL expressions are supported. All of these selectors must be satisfied.
2013
3607
  """
2014
- return pulumi.get(self, "count")
3608
+ return pulumi.get(self, "selectors")
3609
+
3610
+
3611
+ @pulumi.output_type
3612
+ class DeviceToleration(dict):
3613
+ """
3614
+ The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3615
+ """
3616
+ @staticmethod
3617
+ def __key_warning(key: str):
3618
+ suggest = None
3619
+ if key == "tolerationSeconds":
3620
+ suggest = "toleration_seconds"
3621
+
3622
+ if suggest:
3623
+ pulumi.log.warn(f"Key '{key}' not found in DeviceToleration. Access the value via the '{suggest}' property getter instead.")
3624
+
3625
+ def __getitem__(self, key: str) -> Any:
3626
+ DeviceToleration.__key_warning(key)
3627
+ return super().__getitem__(key)
3628
+
3629
+ def get(self, key: str, default = None) -> Any:
3630
+ DeviceToleration.__key_warning(key)
3631
+ return super().get(key, default)
3632
+
3633
+ def __init__(__self__, *,
3634
+ effect: Optional[builtins.str] = None,
3635
+ key: Optional[builtins.str] = None,
3636
+ operator: Optional[builtins.str] = None,
3637
+ toleration_seconds: Optional[builtins.int] = None,
3638
+ value: Optional[builtins.str] = None):
3639
+ """
3640
+ The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3641
+ :param builtins.str effect: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.
3642
+ :param builtins.str key: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.
3643
+ :param builtins.str operator: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.
3644
+ :param builtins.int toleration_seconds: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.
3645
+ :param builtins.str value: Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.
3646
+ """
3647
+ if effect is not None:
3648
+ pulumi.set(__self__, "effect", effect)
3649
+ if key is not None:
3650
+ pulumi.set(__self__, "key", key)
3651
+ if operator is not None:
3652
+ pulumi.set(__self__, "operator", operator)
3653
+ if toleration_seconds is not None:
3654
+ pulumi.set(__self__, "toleration_seconds", toleration_seconds)
3655
+ if value is not None:
3656
+ pulumi.set(__self__, "value", value)
2015
3657
 
2016
3658
  @property
2017
- @pulumi.getter(name="deviceClassName")
2018
- def device_class_name(self) -> Optional[str]:
3659
+ @pulumi.getter
3660
+ def effect(self) -> Optional[builtins.str]:
2019
3661
  """
2020
- DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2021
-
2022
- A class is required. Which classes are available depends on the cluster.
3662
+ Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.
3663
+ """
3664
+ return pulumi.get(self, "effect")
2023
3665
 
2024
- Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.
3666
+ @property
3667
+ @pulumi.getter
3668
+ def key(self) -> Optional[builtins.str]:
2025
3669
  """
2026
- return pulumi.get(self, "device_class_name")
3670
+ Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.
3671
+ """
3672
+ return pulumi.get(self, "key")
2027
3673
 
2028
3674
  @property
2029
3675
  @pulumi.getter
2030
- def name(self) -> Optional[str]:
3676
+ def operator(self) -> Optional[builtins.str]:
2031
3677
  """
2032
- Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
3678
+ Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.
3679
+ """
3680
+ return pulumi.get(self, "operator")
2033
3681
 
2034
- Must be a DNS label.
3682
+ @property
3683
+ @pulumi.getter(name="tolerationSeconds")
3684
+ def toleration_seconds(self) -> Optional[builtins.int]:
2035
3685
  """
2036
- return pulumi.get(self, "name")
3686
+ TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.
3687
+ """
3688
+ return pulumi.get(self, "toleration_seconds")
2037
3689
 
2038
3690
  @property
2039
3691
  @pulumi.getter
2040
- def selectors(self) -> Optional[Sequence['outputs.DeviceSelectorPatch']]:
3692
+ def value(self) -> Optional[builtins.str]:
2041
3693
  """
2042
- Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.
3694
+ Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.
2043
3695
  """
2044
- return pulumi.get(self, "selectors")
3696
+ return pulumi.get(self, "value")
2045
3697
 
2046
3698
 
2047
3699
  @pulumi.output_type
2048
- class DeviceSelector(dict):
3700
+ class DeviceTolerationPatch(dict):
2049
3701
  """
2050
- DeviceSelector must have exactly one field set.
3702
+ The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
2051
3703
  """
3704
+ @staticmethod
3705
+ def __key_warning(key: str):
3706
+ suggest = None
3707
+ if key == "tolerationSeconds":
3708
+ suggest = "toleration_seconds"
3709
+
3710
+ if suggest:
3711
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTolerationPatch. Access the value via the '{suggest}' property getter instead.")
3712
+
3713
+ def __getitem__(self, key: str) -> Any:
3714
+ DeviceTolerationPatch.__key_warning(key)
3715
+ return super().__getitem__(key)
3716
+
3717
+ def get(self, key: str, default = None) -> Any:
3718
+ DeviceTolerationPatch.__key_warning(key)
3719
+ return super().get(key, default)
3720
+
2052
3721
  def __init__(__self__, *,
2053
- cel: Optional['outputs.CELDeviceSelector'] = None):
3722
+ effect: Optional[builtins.str] = None,
3723
+ key: Optional[builtins.str] = None,
3724
+ operator: Optional[builtins.str] = None,
3725
+ toleration_seconds: Optional[builtins.int] = None,
3726
+ value: Optional[builtins.str] = None):
3727
+ """
3728
+ The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3729
+ :param builtins.str effect: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.
3730
+ :param builtins.str key: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.
3731
+ :param builtins.str operator: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.
3732
+ :param builtins.int toleration_seconds: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.
3733
+ :param builtins.str value: Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.
3734
+ """
3735
+ if effect is not None:
3736
+ pulumi.set(__self__, "effect", effect)
3737
+ if key is not None:
3738
+ pulumi.set(__self__, "key", key)
3739
+ if operator is not None:
3740
+ pulumi.set(__self__, "operator", operator)
3741
+ if toleration_seconds is not None:
3742
+ pulumi.set(__self__, "toleration_seconds", toleration_seconds)
3743
+ if value is not None:
3744
+ pulumi.set(__self__, "value", value)
3745
+
3746
+ @property
3747
+ @pulumi.getter
3748
+ def effect(self) -> Optional[builtins.str]:
2054
3749
  """
2055
- DeviceSelector must have exactly one field set.
2056
- :param 'CELDeviceSelectorArgs' cel: CEL contains a CEL expression for selecting a device.
3750
+ Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.
2057
3751
  """
2058
- if cel is not None:
2059
- pulumi.set(__self__, "cel", cel)
3752
+ return pulumi.get(self, "effect")
2060
3753
 
2061
3754
  @property
2062
3755
  @pulumi.getter
2063
- def cel(self) -> Optional['outputs.CELDeviceSelector']:
3756
+ def key(self) -> Optional[builtins.str]:
2064
3757
  """
2065
- CEL contains a CEL expression for selecting a device.
3758
+ Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.
2066
3759
  """
2067
- return pulumi.get(self, "cel")
3760
+ return pulumi.get(self, "key")
2068
3761
 
3762
+ @property
3763
+ @pulumi.getter
3764
+ def operator(self) -> Optional[builtins.str]:
3765
+ """
3766
+ Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.
3767
+ """
3768
+ return pulumi.get(self, "operator")
2069
3769
 
2070
- @pulumi.output_type
2071
- class DeviceSelectorPatch(dict):
2072
- """
2073
- DeviceSelector must have exactly one field set.
2074
- """
2075
- def __init__(__self__, *,
2076
- cel: Optional['outputs.CELDeviceSelectorPatch'] = None):
3770
+ @property
3771
+ @pulumi.getter(name="tolerationSeconds")
3772
+ def toleration_seconds(self) -> Optional[builtins.int]:
2077
3773
  """
2078
- DeviceSelector must have exactly one field set.
2079
- :param 'CELDeviceSelectorPatchArgs' cel: CEL contains a CEL expression for selecting a device.
3774
+ TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.
2080
3775
  """
2081
- if cel is not None:
2082
- pulumi.set(__self__, "cel", cel)
3776
+ return pulumi.get(self, "toleration_seconds")
2083
3777
 
2084
3778
  @property
2085
3779
  @pulumi.getter
2086
- def cel(self) -> Optional['outputs.CELDeviceSelectorPatch']:
3780
+ def value(self) -> Optional[builtins.str]:
2087
3781
  """
2088
- CEL contains a CEL expression for selecting a device.
3782
+ Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.
2089
3783
  """
2090
- return pulumi.get(self, "cel")
3784
+ return pulumi.get(self, "value")
2091
3785
 
2092
3786
 
2093
3787
  @pulumi.output_type
@@ -2115,18 +3809,20 @@ class NetworkDeviceData(dict):
2115
3809
  return super().get(key, default)
2116
3810
 
2117
3811
  def __init__(__self__, *,
2118
- hardware_address: Optional[str] = None,
2119
- interface_name: Optional[str] = None,
2120
- ips: Optional[Sequence[str]] = None):
3812
+ hardware_address: Optional[builtins.str] = None,
3813
+ interface_name: Optional[builtins.str] = None,
3814
+ ips: Optional[Sequence[builtins.str]] = None):
2121
3815
  """
2122
3816
  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.
3817
+ :param builtins.str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2124
3818
 
2125
3819
  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.
3820
+ :param builtins.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
3821
 
2128
3822
  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.
3823
+ :param Sequence[builtins.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.
3824
+
3825
+ Must not contain more than 16 entries.
2130
3826
  """
2131
3827
  if hardware_address is not None:
2132
3828
  pulumi.set(__self__, "hardware_address", hardware_address)
@@ -2137,7 +3833,7 @@ class NetworkDeviceData(dict):
2137
3833
 
2138
3834
  @property
2139
3835
  @pulumi.getter(name="hardwareAddress")
2140
- def hardware_address(self) -> Optional[str]:
3836
+ def hardware_address(self) -> Optional[builtins.str]:
2141
3837
  """
2142
3838
  HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2143
3839
 
@@ -2147,7 +3843,7 @@ class NetworkDeviceData(dict):
2147
3843
 
2148
3844
  @property
2149
3845
  @pulumi.getter(name="interfaceName")
2150
- def interface_name(self) -> Optional[str]:
3846
+ def interface_name(self) -> Optional[builtins.str]:
2151
3847
  """
2152
3848
  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
3849
 
@@ -2157,9 +3853,11 @@ class NetworkDeviceData(dict):
2157
3853
 
2158
3854
  @property
2159
3855
  @pulumi.getter
2160
- def ips(self) -> Optional[Sequence[str]]:
3856
+ def ips(self) -> Optional[Sequence[builtins.str]]:
2161
3857
  """
2162
3858
  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.
3859
+
3860
+ Must not contain more than 16 entries.
2163
3861
  """
2164
3862
  return pulumi.get(self, "ips")
2165
3863
 
@@ -2189,18 +3887,20 @@ class NetworkDeviceDataPatch(dict):
2189
3887
  return super().get(key, default)
2190
3888
 
2191
3889
  def __init__(__self__, *,
2192
- hardware_address: Optional[str] = None,
2193
- interface_name: Optional[str] = None,
2194
- ips: Optional[Sequence[str]] = None):
3890
+ hardware_address: Optional[builtins.str] = None,
3891
+ interface_name: Optional[builtins.str] = None,
3892
+ ips: Optional[Sequence[builtins.str]] = None):
2195
3893
  """
2196
3894
  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.
3895
+ :param builtins.str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2198
3896
 
2199
3897
  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.
3898
+ :param builtins.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
3899
 
2202
3900
  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.
3901
+ :param Sequence[builtins.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.
3902
+
3903
+ Must not contain more than 16 entries.
2204
3904
  """
2205
3905
  if hardware_address is not None:
2206
3906
  pulumi.set(__self__, "hardware_address", hardware_address)
@@ -2211,7 +3911,7 @@ class NetworkDeviceDataPatch(dict):
2211
3911
 
2212
3912
  @property
2213
3913
  @pulumi.getter(name="hardwareAddress")
2214
- def hardware_address(self) -> Optional[str]:
3914
+ def hardware_address(self) -> Optional[builtins.str]:
2215
3915
  """
2216
3916
  HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2217
3917
 
@@ -2221,7 +3921,7 @@ class NetworkDeviceDataPatch(dict):
2221
3921
 
2222
3922
  @property
2223
3923
  @pulumi.getter(name="interfaceName")
2224
- def interface_name(self) -> Optional[str]:
3924
+ def interface_name(self) -> Optional[builtins.str]:
2225
3925
  """
2226
3926
  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
3927
 
@@ -2231,9 +3931,11 @@ class NetworkDeviceDataPatch(dict):
2231
3931
 
2232
3932
  @property
2233
3933
  @pulumi.getter
2234
- def ips(self) -> Optional[Sequence[str]]:
3934
+ def ips(self) -> Optional[Sequence[builtins.str]]:
2235
3935
  """
2236
3936
  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.
3937
+
3938
+ Must not contain more than 16 entries.
2237
3939
  """
2238
3940
  return pulumi.get(self, "ips")
2239
3941
 
@@ -2244,11 +3946,11 @@ class OpaqueDeviceConfiguration(dict):
2244
3946
  OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.
2245
3947
  """
2246
3948
  def __init__(__self__, *,
2247
- driver: str,
3949
+ driver: builtins.str,
2248
3950
  parameters: Any):
2249
3951
  """
2250
3952
  OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.
2251
- :param str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
3953
+ :param builtins.str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
2252
3954
 
2253
3955
  An admission policy provided by the driver developer could use this to decide whether it needs to validate them.
2254
3956
 
@@ -2262,7 +3964,7 @@ class OpaqueDeviceConfiguration(dict):
2262
3964
 
2263
3965
  @property
2264
3966
  @pulumi.getter
2265
- def driver(self) -> str:
3967
+ def driver(self) -> builtins.str:
2266
3968
  """
2267
3969
  Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
2268
3970
 
@@ -2289,11 +3991,11 @@ class OpaqueDeviceConfigurationPatch(dict):
2289
3991
  OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.
2290
3992
  """
2291
3993
  def __init__(__self__, *,
2292
- driver: Optional[str] = None,
3994
+ driver: Optional[builtins.str] = None,
2293
3995
  parameters: Optional[Any] = None):
2294
3996
  """
2295
3997
  OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.
2296
- :param str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
3998
+ :param builtins.str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
2297
3999
 
2298
4000
  An admission policy provided by the driver developer could use this to decide whether it needs to validate them.
2299
4001
 
@@ -2309,7 +4011,7 @@ class OpaqueDeviceConfigurationPatch(dict):
2309
4011
 
2310
4012
  @property
2311
4013
  @pulumi.getter
2312
- def driver(self) -> Optional[str]:
4014
+ def driver(self) -> Optional[builtins.str]:
2313
4015
  """
2314
4016
  Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
2315
4017
 
@@ -2356,8 +4058,8 @@ class PodSchedulingContext(dict):
2356
4058
 
2357
4059
  def __init__(__self__, *,
2358
4060
  spec: 'outputs.PodSchedulingContextSpec',
2359
- api_version: Optional[str] = None,
2360
- kind: Optional[str] = None,
4061
+ api_version: Optional[builtins.str] = None,
4062
+ kind: Optional[builtins.str] = None,
2361
4063
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None,
2362
4064
  status: Optional['outputs.PodSchedulingContextStatus'] = None):
2363
4065
  """
@@ -2365,8 +4067,8 @@ class PodSchedulingContext(dict):
2365
4067
 
2366
4068
  This is an alpha type and requires enabling the DRAControlPlaneController feature gate.
2367
4069
  :param 'PodSchedulingContextSpecArgs' spec: Spec describes where resources for the Pod are needed.
2368
- :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
2369
- :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
4070
+ :param builtins.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
4071
+ :param builtins.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
2370
4072
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
2371
4073
  :param 'PodSchedulingContextStatusArgs' status: Status describes where resources for the Pod can be allocated.
2372
4074
  """
@@ -2390,7 +4092,7 @@ class PodSchedulingContext(dict):
2390
4092
 
2391
4093
  @property
2392
4094
  @pulumi.getter(name="apiVersion")
2393
- def api_version(self) -> Optional[str]:
4095
+ def api_version(self) -> Optional[builtins.str]:
2394
4096
  """
2395
4097
  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
2396
4098
  """
@@ -2398,7 +4100,7 @@ class PodSchedulingContext(dict):
2398
4100
 
2399
4101
  @property
2400
4102
  @pulumi.getter
2401
- def kind(self) -> Optional[str]:
4103
+ def kind(self) -> Optional[builtins.str]:
2402
4104
  """
2403
4105
  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
2404
4106
  """
@@ -2446,14 +4148,14 @@ class PodSchedulingContextSpec(dict):
2446
4148
  return super().get(key, default)
2447
4149
 
2448
4150
  def __init__(__self__, *,
2449
- potential_nodes: Optional[Sequence[str]] = None,
2450
- selected_node: Optional[str] = None):
4151
+ potential_nodes: Optional[Sequence[builtins.str]] = None,
4152
+ selected_node: Optional[builtins.str] = None):
2451
4153
  """
2452
4154
  PodSchedulingContextSpec describes where resources for the Pod are needed.
2453
- :param Sequence[str] potential_nodes: PotentialNodes lists nodes where the Pod might be able to run.
4155
+ :param Sequence[builtins.str] potential_nodes: PotentialNodes lists nodes where the Pod might be able to run.
2454
4156
 
2455
4157
  The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced.
2456
- :param str selected_node: SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted.
4158
+ :param builtins.str selected_node: SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted.
2457
4159
  """
2458
4160
  if potential_nodes is not None:
2459
4161
  pulumi.set(__self__, "potential_nodes", potential_nodes)
@@ -2462,7 +4164,7 @@ class PodSchedulingContextSpec(dict):
2462
4164
 
2463
4165
  @property
2464
4166
  @pulumi.getter(name="potentialNodes")
2465
- def potential_nodes(self) -> Optional[Sequence[str]]:
4167
+ def potential_nodes(self) -> Optional[Sequence[builtins.str]]:
2466
4168
  """
2467
4169
  PotentialNodes lists nodes where the Pod might be able to run.
2468
4170
 
@@ -2472,7 +4174,7 @@ class PodSchedulingContextSpec(dict):
2472
4174
 
2473
4175
  @property
2474
4176
  @pulumi.getter(name="selectedNode")
2475
- def selected_node(self) -> Optional[str]:
4177
+ def selected_node(self) -> Optional[builtins.str]:
2476
4178
  """
2477
4179
  SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted.
2478
4180
  """
@@ -2504,14 +4206,14 @@ class PodSchedulingContextSpecPatch(dict):
2504
4206
  return super().get(key, default)
2505
4207
 
2506
4208
  def __init__(__self__, *,
2507
- potential_nodes: Optional[Sequence[str]] = None,
2508
- selected_node: Optional[str] = None):
4209
+ potential_nodes: Optional[Sequence[builtins.str]] = None,
4210
+ selected_node: Optional[builtins.str] = None):
2509
4211
  """
2510
4212
  PodSchedulingContextSpec describes where resources for the Pod are needed.
2511
- :param Sequence[str] potential_nodes: PotentialNodes lists nodes where the Pod might be able to run.
4213
+ :param Sequence[builtins.str] potential_nodes: PotentialNodes lists nodes where the Pod might be able to run.
2512
4214
 
2513
4215
  The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced.
2514
- :param str selected_node: SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted.
4216
+ :param builtins.str selected_node: SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted.
2515
4217
  """
2516
4218
  if potential_nodes is not None:
2517
4219
  pulumi.set(__self__, "potential_nodes", potential_nodes)
@@ -2520,7 +4222,7 @@ class PodSchedulingContextSpecPatch(dict):
2520
4222
 
2521
4223
  @property
2522
4224
  @pulumi.getter(name="potentialNodes")
2523
- def potential_nodes(self) -> Optional[Sequence[str]]:
4225
+ def potential_nodes(self) -> Optional[Sequence[builtins.str]]:
2524
4226
  """
2525
4227
  PotentialNodes lists nodes where the Pod might be able to run.
2526
4228
 
@@ -2530,7 +4232,7 @@ class PodSchedulingContextSpecPatch(dict):
2530
4232
 
2531
4233
  @property
2532
4234
  @pulumi.getter(name="selectedNode")
2533
- def selected_node(self) -> Optional[str]:
4235
+ def selected_node(self) -> Optional[builtins.str]:
2534
4236
  """
2535
4237
  SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted.
2536
4238
  """
@@ -2643,8 +4345,8 @@ class ResourceClaim(dict):
2643
4345
 
2644
4346
  def __init__(__self__, *,
2645
4347
  spec: 'outputs.ResourceClaimSpec',
2646
- api_version: Optional[str] = None,
2647
- kind: Optional[str] = None,
4348
+ api_version: Optional[builtins.str] = None,
4349
+ kind: Optional[builtins.str] = None,
2648
4350
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None,
2649
4351
  status: Optional['outputs.ResourceClaimStatus'] = None):
2650
4352
  """
@@ -2652,8 +4354,8 @@ class ResourceClaim(dict):
2652
4354
 
2653
4355
  This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
2654
4356
  :param 'ResourceClaimSpecArgs' spec: Spec describes what is being requested and how to configure it. The spec is immutable.
2655
- :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
2656
- :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
4357
+ :param builtins.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
4358
+ :param builtins.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
2657
4359
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
2658
4360
  :param 'ResourceClaimStatusArgs' status: Status describes whether the claim is ready to use and what has been allocated.
2659
4361
  """
@@ -2677,7 +4379,7 @@ class ResourceClaim(dict):
2677
4379
 
2678
4380
  @property
2679
4381
  @pulumi.getter(name="apiVersion")
2680
- def api_version(self) -> Optional[str]:
4382
+ def api_version(self) -> Optional[builtins.str]:
2681
4383
  """
2682
4384
  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
2683
4385
  """
@@ -2685,7 +4387,7 @@ class ResourceClaim(dict):
2685
4387
 
2686
4388
  @property
2687
4389
  @pulumi.getter
2688
- def kind(self) -> Optional[str]:
4390
+ def kind(self) -> Optional[builtins.str]:
2689
4391
  """
2690
4392
  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
2691
4393
  """
@@ -2731,16 +4433,16 @@ class ResourceClaimConsumerReference(dict):
2731
4433
  return super().get(key, default)
2732
4434
 
2733
4435
  def __init__(__self__, *,
2734
- name: str,
2735
- resource: str,
2736
- uid: str,
2737
- api_group: Optional[str] = None):
4436
+ name: builtins.str,
4437
+ resource: builtins.str,
4438
+ uid: builtins.str,
4439
+ api_group: Optional[builtins.str] = None):
2738
4440
  """
2739
4441
  ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.
2740
- :param str name: Name is the name of resource being referenced.
2741
- :param str resource: Resource is the type of resource being referenced, for example "pods".
2742
- :param str uid: UID identifies exactly one incarnation of the resource.
2743
- :param str api_group: APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
4442
+ :param builtins.str name: Name is the name of resource being referenced.
4443
+ :param builtins.str resource: Resource is the type of resource being referenced, for example "pods".
4444
+ :param builtins.str uid: UID identifies exactly one incarnation of the resource.
4445
+ :param builtins.str api_group: APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
2744
4446
  """
2745
4447
  pulumi.set(__self__, "name", name)
2746
4448
  pulumi.set(__self__, "resource", resource)
@@ -2750,7 +4452,7 @@ class ResourceClaimConsumerReference(dict):
2750
4452
 
2751
4453
  @property
2752
4454
  @pulumi.getter
2753
- def name(self) -> str:
4455
+ def name(self) -> builtins.str:
2754
4456
  """
2755
4457
  Name is the name of resource being referenced.
2756
4458
  """
@@ -2758,7 +4460,7 @@ class ResourceClaimConsumerReference(dict):
2758
4460
 
2759
4461
  @property
2760
4462
  @pulumi.getter
2761
- def resource(self) -> str:
4463
+ def resource(self) -> builtins.str:
2762
4464
  """
2763
4465
  Resource is the type of resource being referenced, for example "pods".
2764
4466
  """
@@ -2766,7 +4468,7 @@ class ResourceClaimConsumerReference(dict):
2766
4468
 
2767
4469
  @property
2768
4470
  @pulumi.getter
2769
- def uid(self) -> str:
4471
+ def uid(self) -> builtins.str:
2770
4472
  """
2771
4473
  UID identifies exactly one incarnation of the resource.
2772
4474
  """
@@ -2774,7 +4476,7 @@ class ResourceClaimConsumerReference(dict):
2774
4476
 
2775
4477
  @property
2776
4478
  @pulumi.getter(name="apiGroup")
2777
- def api_group(self) -> Optional[str]:
4479
+ def api_group(self) -> Optional[builtins.str]:
2778
4480
  """
2779
4481
  APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
2780
4482
  """
@@ -2804,16 +4506,16 @@ class ResourceClaimConsumerReferencePatch(dict):
2804
4506
  return super().get(key, default)
2805
4507
 
2806
4508
  def __init__(__self__, *,
2807
- api_group: Optional[str] = None,
2808
- name: Optional[str] = None,
2809
- resource: Optional[str] = None,
2810
- uid: Optional[str] = None):
4509
+ api_group: Optional[builtins.str] = None,
4510
+ name: Optional[builtins.str] = None,
4511
+ resource: Optional[builtins.str] = None,
4512
+ uid: Optional[builtins.str] = None):
2811
4513
  """
2812
4514
  ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.
2813
- :param str api_group: APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
2814
- :param str name: Name is the name of resource being referenced.
2815
- :param str resource: Resource is the type of resource being referenced, for example "pods".
2816
- :param str uid: UID identifies exactly one incarnation of the resource.
4515
+ :param builtins.str api_group: APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
4516
+ :param builtins.str name: Name is the name of resource being referenced.
4517
+ :param builtins.str resource: Resource is the type of resource being referenced, for example "pods".
4518
+ :param builtins.str uid: UID identifies exactly one incarnation of the resource.
2817
4519
  """
2818
4520
  if api_group is not None:
2819
4521
  pulumi.set(__self__, "api_group", api_group)
@@ -2826,7 +4528,7 @@ class ResourceClaimConsumerReferencePatch(dict):
2826
4528
 
2827
4529
  @property
2828
4530
  @pulumi.getter(name="apiGroup")
2829
- def api_group(self) -> Optional[str]:
4531
+ def api_group(self) -> Optional[builtins.str]:
2830
4532
  """
2831
4533
  APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
2832
4534
  """
@@ -2834,7 +4536,7 @@ class ResourceClaimConsumerReferencePatch(dict):
2834
4536
 
2835
4537
  @property
2836
4538
  @pulumi.getter
2837
- def name(self) -> Optional[str]:
4539
+ def name(self) -> Optional[builtins.str]:
2838
4540
  """
2839
4541
  Name is the name of resource being referenced.
2840
4542
  """
@@ -2842,7 +4544,7 @@ class ResourceClaimConsumerReferencePatch(dict):
2842
4544
 
2843
4545
  @property
2844
4546
  @pulumi.getter
2845
- def resource(self) -> Optional[str]:
4547
+ def resource(self) -> Optional[builtins.str]:
2846
4548
  """
2847
4549
  Resource is the type of resource being referenced, for example "pods".
2848
4550
  """
@@ -2850,7 +4552,7 @@ class ResourceClaimConsumerReferencePatch(dict):
2850
4552
 
2851
4553
  @property
2852
4554
  @pulumi.getter
2853
- def uid(self) -> Optional[str]:
4555
+ def uid(self) -> Optional[builtins.str]:
2854
4556
  """
2855
4557
  UID identifies exactly one incarnation of the resource.
2856
4558
  """
@@ -2880,12 +4582,12 @@ class ResourceClaimSchedulingStatus(dict):
2880
4582
  return super().get(key, default)
2881
4583
 
2882
4584
  def __init__(__self__, *,
2883
- name: str,
2884
- unsuitable_nodes: Optional[Sequence[str]] = None):
4585
+ name: builtins.str,
4586
+ unsuitable_nodes: Optional[Sequence[builtins.str]] = None):
2885
4587
  """
2886
4588
  ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode.
2887
- :param str name: Name matches the pod.spec.resourceClaims[*].Name field.
2888
- :param Sequence[str] unsuitable_nodes: UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for.
4589
+ :param builtins.str name: Name matches the pod.spec.resourceClaims[*].Name field.
4590
+ :param Sequence[builtins.str] unsuitable_nodes: UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for.
2889
4591
 
2890
4592
  The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced.
2891
4593
  """
@@ -2895,7 +4597,7 @@ class ResourceClaimSchedulingStatus(dict):
2895
4597
 
2896
4598
  @property
2897
4599
  @pulumi.getter
2898
- def name(self) -> str:
4600
+ def name(self) -> builtins.str:
2899
4601
  """
2900
4602
  Name matches the pod.spec.resourceClaims[*].Name field.
2901
4603
  """
@@ -2903,7 +4605,7 @@ class ResourceClaimSchedulingStatus(dict):
2903
4605
 
2904
4606
  @property
2905
4607
  @pulumi.getter(name="unsuitableNodes")
2906
- def unsuitable_nodes(self) -> Optional[Sequence[str]]:
4608
+ def unsuitable_nodes(self) -> Optional[Sequence[builtins.str]]:
2907
4609
  """
2908
4610
  UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for.
2909
4611
 
@@ -2935,12 +4637,12 @@ class ResourceClaimSchedulingStatusPatch(dict):
2935
4637
  return super().get(key, default)
2936
4638
 
2937
4639
  def __init__(__self__, *,
2938
- name: Optional[str] = None,
2939
- unsuitable_nodes: Optional[Sequence[str]] = None):
4640
+ name: Optional[builtins.str] = None,
4641
+ unsuitable_nodes: Optional[Sequence[builtins.str]] = None):
2940
4642
  """
2941
4643
  ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode.
2942
- :param str name: Name matches the pod.spec.resourceClaims[*].Name field.
2943
- :param Sequence[str] unsuitable_nodes: UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for.
4644
+ :param builtins.str name: Name matches the pod.spec.resourceClaims[*].Name field.
4645
+ :param Sequence[builtins.str] unsuitable_nodes: UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for.
2944
4646
 
2945
4647
  The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced.
2946
4648
  """
@@ -2951,7 +4653,7 @@ class ResourceClaimSchedulingStatusPatch(dict):
2951
4653
 
2952
4654
  @property
2953
4655
  @pulumi.getter
2954
- def name(self) -> Optional[str]:
4656
+ def name(self) -> Optional[builtins.str]:
2955
4657
  """
2956
4658
  Name matches the pod.spec.resourceClaims[*].Name field.
2957
4659
  """
@@ -2959,7 +4661,7 @@ class ResourceClaimSchedulingStatusPatch(dict):
2959
4661
 
2960
4662
  @property
2961
4663
  @pulumi.getter(name="unsuitableNodes")
2962
- def unsuitable_nodes(self) -> Optional[Sequence[str]]:
4664
+ def unsuitable_nodes(self) -> Optional[Sequence[builtins.str]]:
2963
4665
  """
2964
4666
  UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for.
2965
4667
 
@@ -2974,11 +4676,11 @@ class ResourceClaimSpec(dict):
2974
4676
  ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.
2975
4677
  """
2976
4678
  def __init__(__self__, *,
2977
- controller: Optional[str] = None,
4679
+ controller: Optional[builtins.str] = None,
2978
4680
  devices: Optional['outputs.DeviceClaim'] = None):
2979
4681
  """
2980
4682
  ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.
2981
- :param str controller: Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod.
4683
+ :param builtins.str controller: Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod.
2982
4684
 
2983
4685
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
2984
4686
 
@@ -2992,7 +4694,7 @@ class ResourceClaimSpec(dict):
2992
4694
 
2993
4695
  @property
2994
4696
  @pulumi.getter
2995
- def controller(self) -> Optional[str]:
4697
+ def controller(self) -> Optional[builtins.str]:
2996
4698
  """
2997
4699
  Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod.
2998
4700
 
@@ -3017,11 +4719,11 @@ class ResourceClaimSpecPatch(dict):
3017
4719
  ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.
3018
4720
  """
3019
4721
  def __init__(__self__, *,
3020
- controller: Optional[str] = None,
4722
+ controller: Optional[builtins.str] = None,
3021
4723
  devices: Optional['outputs.DeviceClaimPatch'] = None):
3022
4724
  """
3023
4725
  ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.
3024
- :param str controller: Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod.
4726
+ :param builtins.str controller: Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod.
3025
4727
 
3026
4728
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
3027
4729
 
@@ -3035,7 +4737,7 @@ class ResourceClaimSpecPatch(dict):
3035
4737
 
3036
4738
  @property
3037
4739
  @pulumi.getter
3038
- def controller(self) -> Optional[str]:
4740
+ def controller(self) -> Optional[builtins.str]:
3039
4741
  """
3040
4742
  Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod.
3041
4743
 
@@ -3080,13 +4782,13 @@ class ResourceClaimStatus(dict):
3080
4782
 
3081
4783
  def __init__(__self__, *,
3082
4784
  allocation: Optional['outputs.AllocationResult'] = None,
3083
- deallocation_requested: Optional[bool] = None,
4785
+ deallocation_requested: Optional[builtins.bool] = None,
3084
4786
  devices: Optional[Sequence['outputs.AllocatedDeviceStatus']] = None,
3085
4787
  reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReference']] = None):
3086
4788
  """
3087
4789
  ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.
3088
4790
  :param 'AllocationResultArgs' allocation: Allocation is set once the claim has been allocated successfully.
3089
- :param bool deallocation_requested: Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor.
4791
+ :param builtins.bool deallocation_requested: Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor.
3090
4792
 
3091
4793
  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.
3092
4794
 
@@ -3098,7 +4800,7 @@ class ResourceClaimStatus(dict):
3098
4800
 
3099
4801
  Both schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again.
3100
4802
 
3101
- There can be at most 32 such reservations. This may get increased in the future, but not reduced.
4803
+ There can be at most 256 such reservations. This may get increased in the future, but not reduced.
3102
4804
  """
3103
4805
  if allocation is not None:
3104
4806
  pulumi.set(__self__, "allocation", allocation)
@@ -3119,7 +4821,7 @@ class ResourceClaimStatus(dict):
3119
4821
 
3120
4822
  @property
3121
4823
  @pulumi.getter(name="deallocationRequested")
3122
- def deallocation_requested(self) -> Optional[bool]:
4824
+ def deallocation_requested(self) -> Optional[builtins.bool]:
3123
4825
  """
3124
4826
  Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor.
3125
4827
 
@@ -3147,7 +4849,7 @@ class ResourceClaimStatus(dict):
3147
4849
 
3148
4850
  Both schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again.
3149
4851
 
3150
- There can be at most 32 such reservations. This may get increased in the future, but not reduced.
4852
+ There can be at most 256 such reservations. This may get increased in the future, but not reduced.
3151
4853
  """
3152
4854
  return pulumi.get(self, "reserved_for")
3153
4855
 
@@ -3178,13 +4880,13 @@ class ResourceClaimStatusPatch(dict):
3178
4880
 
3179
4881
  def __init__(__self__, *,
3180
4882
  allocation: Optional['outputs.AllocationResultPatch'] = None,
3181
- deallocation_requested: Optional[bool] = None,
4883
+ deallocation_requested: Optional[builtins.bool] = None,
3182
4884
  devices: Optional[Sequence['outputs.AllocatedDeviceStatusPatch']] = None,
3183
4885
  reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']] = None):
3184
4886
  """
3185
4887
  ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.
3186
4888
  :param 'AllocationResultPatchArgs' allocation: Allocation is set once the claim has been allocated successfully.
3187
- :param bool deallocation_requested: Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor.
4889
+ :param builtins.bool deallocation_requested: Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor.
3188
4890
 
3189
4891
  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.
3190
4892
 
@@ -3196,7 +4898,7 @@ class ResourceClaimStatusPatch(dict):
3196
4898
 
3197
4899
  Both schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again.
3198
4900
 
3199
- There can be at most 32 such reservations. This may get increased in the future, but not reduced.
4901
+ There can be at most 256 such reservations. This may get increased in the future, but not reduced.
3200
4902
  """
3201
4903
  if allocation is not None:
3202
4904
  pulumi.set(__self__, "allocation", allocation)
@@ -3217,7 +4919,7 @@ class ResourceClaimStatusPatch(dict):
3217
4919
 
3218
4920
  @property
3219
4921
  @pulumi.getter(name="deallocationRequested")
3220
- def deallocation_requested(self) -> Optional[bool]:
4922
+ def deallocation_requested(self) -> Optional[builtins.bool]:
3221
4923
  """
3222
4924
  Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor.
3223
4925
 
@@ -3245,7 +4947,7 @@ class ResourceClaimStatusPatch(dict):
3245
4947
 
3246
4948
  Both schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again.
3247
4949
 
3248
- There can be at most 32 such reservations. This may get increased in the future, but not reduced.
4950
+ There can be at most 256 such reservations. This may get increased in the future, but not reduced.
3249
4951
  """
3250
4952
  return pulumi.get(self, "reserved_for")
3251
4953
 
@@ -3276,8 +4978,8 @@ class ResourceClaimTemplate(dict):
3276
4978
 
3277
4979
  def __init__(__self__, *,
3278
4980
  spec: 'outputs.ResourceClaimTemplateSpec',
3279
- api_version: Optional[str] = None,
3280
- kind: Optional[str] = None,
4981
+ api_version: Optional[builtins.str] = None,
4982
+ kind: Optional[builtins.str] = None,
3281
4983
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
3282
4984
  """
3283
4985
  ResourceClaimTemplate is used to produce ResourceClaim objects.
@@ -3286,8 +4988,8 @@ class ResourceClaimTemplate(dict):
3286
4988
  :param 'ResourceClaimTemplateSpecArgs' spec: Describes the ResourceClaim that is to be generated.
3287
4989
 
3288
4990
  This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore.
3289
- :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
3290
- :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
4991
+ :param builtins.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
4992
+ :param builtins.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
3291
4993
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
3292
4994
  """
3293
4995
  pulumi.set(__self__, "spec", spec)
@@ -3310,7 +5012,7 @@ class ResourceClaimTemplate(dict):
3310
5012
 
3311
5013
  @property
3312
5014
  @pulumi.getter(name="apiVersion")
3313
- def api_version(self) -> Optional[str]:
5015
+ def api_version(self) -> Optional[builtins.str]:
3314
5016
  """
3315
5017
  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
3316
5018
  """
@@ -3318,7 +5020,7 @@ class ResourceClaimTemplate(dict):
3318
5020
 
3319
5021
  @property
3320
5022
  @pulumi.getter
3321
- def kind(self) -> Optional[str]:
5023
+ def kind(self) -> Optional[builtins.str]:
3322
5024
  """
3323
5025
  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
3324
5026
  """
@@ -3425,18 +5127,18 @@ class ResourcePool(dict):
3425
5127
  return super().get(key, default)
3426
5128
 
3427
5129
  def __init__(__self__, *,
3428
- generation: int,
3429
- name: str,
3430
- resource_slice_count: int):
5130
+ generation: builtins.int,
5131
+ name: builtins.str,
5132
+ resource_slice_count: builtins.int):
3431
5133
  """
3432
5134
  ResourcePool describes the pool that ResourceSlices belong to.
3433
- :param int generation: Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.
5135
+ :param builtins.int generation: Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.
3434
5136
 
3435
5137
  Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state.
3436
- :param str name: Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.
5138
+ :param builtins.str name: Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.
3437
5139
 
3438
5140
  It must not be longer than 253 characters and must consist of one or more DNS sub-domains separated by slashes. This field is immutable.
3439
- :param int resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
5141
+ :param builtins.int resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
3440
5142
 
3441
5143
  Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool.
3442
5144
  """
@@ -3446,7 +5148,7 @@ class ResourcePool(dict):
3446
5148
 
3447
5149
  @property
3448
5150
  @pulumi.getter
3449
- def generation(self) -> int:
5151
+ def generation(self) -> builtins.int:
3450
5152
  """
3451
5153
  Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.
3452
5154
 
@@ -3456,7 +5158,7 @@ class ResourcePool(dict):
3456
5158
 
3457
5159
  @property
3458
5160
  @pulumi.getter
3459
- def name(self) -> str:
5161
+ def name(self) -> builtins.str:
3460
5162
  """
3461
5163
  Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.
3462
5164
 
@@ -3466,7 +5168,7 @@ class ResourcePool(dict):
3466
5168
 
3467
5169
  @property
3468
5170
  @pulumi.getter(name="resourceSliceCount")
3469
- def resource_slice_count(self) -> int:
5171
+ def resource_slice_count(self) -> builtins.int:
3470
5172
  """
3471
5173
  ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
3472
5174
 
@@ -3498,18 +5200,18 @@ class ResourcePoolPatch(dict):
3498
5200
  return super().get(key, default)
3499
5201
 
3500
5202
  def __init__(__self__, *,
3501
- generation: Optional[int] = None,
3502
- name: Optional[str] = None,
3503
- resource_slice_count: Optional[int] = None):
5203
+ generation: Optional[builtins.int] = None,
5204
+ name: Optional[builtins.str] = None,
5205
+ resource_slice_count: Optional[builtins.int] = None):
3504
5206
  """
3505
5207
  ResourcePool describes the pool that ResourceSlices belong to.
3506
- :param int generation: Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.
5208
+ :param builtins.int generation: Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.
3507
5209
 
3508
5210
  Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state.
3509
- :param str name: Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.
5211
+ :param builtins.str name: Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.
3510
5212
 
3511
5213
  It must not be longer than 253 characters and must consist of one or more DNS sub-domains separated by slashes. This field is immutable.
3512
- :param int resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
5214
+ :param builtins.int resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
3513
5215
 
3514
5216
  Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool.
3515
5217
  """
@@ -3522,7 +5224,7 @@ class ResourcePoolPatch(dict):
3522
5224
 
3523
5225
  @property
3524
5226
  @pulumi.getter
3525
- def generation(self) -> Optional[int]:
5227
+ def generation(self) -> Optional[builtins.int]:
3526
5228
  """
3527
5229
  Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.
3528
5230
 
@@ -3532,7 +5234,7 @@ class ResourcePoolPatch(dict):
3532
5234
 
3533
5235
  @property
3534
5236
  @pulumi.getter
3535
- def name(self) -> Optional[str]:
5237
+ def name(self) -> Optional[builtins.str]:
3536
5238
  """
3537
5239
  Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.
3538
5240
 
@@ -3542,7 +5244,7 @@ class ResourcePoolPatch(dict):
3542
5244
 
3543
5245
  @property
3544
5246
  @pulumi.getter(name="resourceSliceCount")
3545
- def resource_slice_count(self) -> Optional[int]:
5247
+ def resource_slice_count(self) -> Optional[builtins.int]:
3546
5248
  """
3547
5249
  ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
3548
5250
 
@@ -3585,8 +5287,8 @@ class ResourceSlice(dict):
3585
5287
 
3586
5288
  def __init__(__self__, *,
3587
5289
  spec: 'outputs.ResourceSliceSpec',
3588
- api_version: Optional[str] = None,
3589
- kind: Optional[str] = None,
5290
+ api_version: Optional[builtins.str] = None,
5291
+ kind: Optional[builtins.str] = None,
3590
5292
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
3591
5293
  """
3592
5294
  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.
@@ -3603,8 +5305,8 @@ class ResourceSlice(dict):
3603
5305
  :param 'ResourceSliceSpecArgs' spec: Contains the information published by the driver.
3604
5306
 
3605
5307
  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
5308
+ :param builtins.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
5309
+ :param builtins.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
5310
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
3609
5311
  """
3610
5312
  pulumi.set(__self__, "spec", spec)
@@ -3627,7 +5329,7 @@ class ResourceSlice(dict):
3627
5329
 
3628
5330
  @property
3629
5331
  @pulumi.getter(name="apiVersion")
3630
- def api_version(self) -> Optional[str]:
5332
+ def api_version(self) -> Optional[builtins.str]:
3631
5333
  """
3632
5334
  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
5335
  """
@@ -3635,7 +5337,7 @@ class ResourceSlice(dict):
3635
5337
 
3636
5338
  @property
3637
5339
  @pulumi.getter
3638
- def kind(self) -> Optional[str]:
5340
+ def kind(self) -> Optional[builtins.str]:
3639
5341
  """
3640
5342
  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
5343
  """
@@ -3664,6 +5366,10 @@ class ResourceSliceSpec(dict):
3664
5366
  suggest = "node_name"
3665
5367
  elif key == "nodeSelector":
3666
5368
  suggest = "node_selector"
5369
+ elif key == "perDeviceNodeSelection":
5370
+ suggest = "per_device_node_selection"
5371
+ elif key == "sharedCounters":
5372
+ suggest = "shared_counters"
3667
5373
 
3668
5374
  if suggest:
3669
5375
  pulumi.log.warn(f"Key '{key}' not found in ResourceSliceSpec. Access the value via the '{suggest}' property getter instead.")
@@ -3677,34 +5383,44 @@ class ResourceSliceSpec(dict):
3677
5383
  return super().get(key, default)
3678
5384
 
3679
5385
  def __init__(__self__, *,
3680
- driver: str,
5386
+ driver: builtins.str,
3681
5387
  pool: 'outputs.ResourcePool',
3682
- all_nodes: Optional[bool] = None,
5388
+ all_nodes: Optional[builtins.bool] = None,
3683
5389
  devices: Optional[Sequence['outputs.Device']] = None,
3684
- node_name: Optional[str] = None,
3685
- node_selector: Optional['_core.v1.outputs.NodeSelector'] = None):
5390
+ node_name: Optional[builtins.str] = None,
5391
+ node_selector: Optional['_core.v1.outputs.NodeSelector'] = None,
5392
+ per_device_node_selection: Optional[builtins.bool] = None,
5393
+ shared_counters: Optional[Sequence['outputs.CounterSet']] = None):
3686
5394
  """
3687
5395
  ResourceSliceSpec contains the information published by the driver in one ResourceSlice.
3688
- :param str driver: Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.
5396
+ :param builtins.str driver: Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.
3689
5397
 
3690
5398
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable.
3691
5399
  :param 'ResourcePoolArgs' pool: Pool describes the pool that this ResourceSlice belongs to.
3692
- :param bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool.
5400
+ :param builtins.bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool.
3693
5401
 
3694
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
5402
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3695
5403
  :param Sequence['DeviceArgs'] devices: Devices lists some or all of the devices in this pool.
3696
5404
 
3697
5405
  Must not have more than 128 entries.
3698
- :param str node_name: NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.
5406
+ :param builtins.str node_name: NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.
3699
5407
 
3700
5408
  This field can be used to limit access from nodes to ResourceSlices with the same node name. It also indicates to autoscalers that adding new nodes of the same type as some old node might also make new resources available.
3701
5409
 
3702
- Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.
5410
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.
3703
5411
  :param '_core.v1.NodeSelectorArgs' node_selector: NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node.
3704
5412
 
3705
5413
  Must use exactly one term.
3706
5414
 
3707
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
5415
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
5416
+ :param builtins.bool per_device_node_selection: PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually.
5417
+
5418
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
5419
+ :param Sequence['CounterSetArgs'] shared_counters: SharedCounters defines a list of counter sets, each of which has a name and a list of counters available.
5420
+
5421
+ The names of the SharedCounters must be unique in the ResourceSlice.
5422
+
5423
+ The maximum number of SharedCounters is 32.
3708
5424
  """
3709
5425
  pulumi.set(__self__, "driver", driver)
3710
5426
  pulumi.set(__self__, "pool", pool)
@@ -3716,10 +5432,14 @@ class ResourceSliceSpec(dict):
3716
5432
  pulumi.set(__self__, "node_name", node_name)
3717
5433
  if node_selector is not None:
3718
5434
  pulumi.set(__self__, "node_selector", node_selector)
5435
+ if per_device_node_selection is not None:
5436
+ pulumi.set(__self__, "per_device_node_selection", per_device_node_selection)
5437
+ if shared_counters is not None:
5438
+ pulumi.set(__self__, "shared_counters", shared_counters)
3719
5439
 
3720
5440
  @property
3721
5441
  @pulumi.getter
3722
- def driver(self) -> str:
5442
+ def driver(self) -> builtins.str:
3723
5443
  """
3724
5444
  Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.
3725
5445
 
@@ -3737,11 +5457,11 @@ class ResourceSliceSpec(dict):
3737
5457
 
3738
5458
  @property
3739
5459
  @pulumi.getter(name="allNodes")
3740
- def all_nodes(self) -> Optional[bool]:
5460
+ def all_nodes(self) -> Optional[builtins.bool]:
3741
5461
  """
3742
5462
  AllNodes indicates that all nodes have access to the resources in the pool.
3743
5463
 
3744
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
5464
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3745
5465
  """
3746
5466
  return pulumi.get(self, "all_nodes")
3747
5467
 
@@ -3757,13 +5477,13 @@ class ResourceSliceSpec(dict):
3757
5477
 
3758
5478
  @property
3759
5479
  @pulumi.getter(name="nodeName")
3760
- def node_name(self) -> Optional[str]:
5480
+ def node_name(self) -> Optional[builtins.str]:
3761
5481
  """
3762
5482
  NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.
3763
5483
 
3764
5484
  This field can be used to limit access from nodes to ResourceSlices with the same node name. It also indicates to autoscalers that adding new nodes of the same type as some old node might also make new resources available.
3765
5485
 
3766
- Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.
5486
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.
3767
5487
  """
3768
5488
  return pulumi.get(self, "node_name")
3769
5489
 
@@ -3775,10 +5495,32 @@ class ResourceSliceSpec(dict):
3775
5495
 
3776
5496
  Must use exactly one term.
3777
5497
 
3778
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
5498
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3779
5499
  """
3780
5500
  return pulumi.get(self, "node_selector")
3781
5501
 
5502
+ @property
5503
+ @pulumi.getter(name="perDeviceNodeSelection")
5504
+ def per_device_node_selection(self) -> Optional[builtins.bool]:
5505
+ """
5506
+ PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually.
5507
+
5508
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
5509
+ """
5510
+ return pulumi.get(self, "per_device_node_selection")
5511
+
5512
+ @property
5513
+ @pulumi.getter(name="sharedCounters")
5514
+ def shared_counters(self) -> Optional[Sequence['outputs.CounterSet']]:
5515
+ """
5516
+ SharedCounters defines a list of counter sets, each of which has a name and a list of counters available.
5517
+
5518
+ The names of the SharedCounters must be unique in the ResourceSlice.
5519
+
5520
+ The maximum number of SharedCounters is 32.
5521
+ """
5522
+ return pulumi.get(self, "shared_counters")
5523
+
3782
5524
 
3783
5525
  @pulumi.output_type
3784
5526
  class ResourceSliceSpecPatch(dict):
@@ -3794,6 +5536,10 @@ class ResourceSliceSpecPatch(dict):
3794
5536
  suggest = "node_name"
3795
5537
  elif key == "nodeSelector":
3796
5538
  suggest = "node_selector"
5539
+ elif key == "perDeviceNodeSelection":
5540
+ suggest = "per_device_node_selection"
5541
+ elif key == "sharedCounters":
5542
+ suggest = "shared_counters"
3797
5543
 
3798
5544
  if suggest:
3799
5545
  pulumi.log.warn(f"Key '{key}' not found in ResourceSliceSpecPatch. Access the value via the '{suggest}' property getter instead.")
@@ -3807,34 +5553,44 @@ class ResourceSliceSpecPatch(dict):
3807
5553
  return super().get(key, default)
3808
5554
 
3809
5555
  def __init__(__self__, *,
3810
- all_nodes: Optional[bool] = None,
5556
+ all_nodes: Optional[builtins.bool] = None,
3811
5557
  devices: Optional[Sequence['outputs.DevicePatch']] = None,
3812
- driver: Optional[str] = None,
3813
- node_name: Optional[str] = None,
5558
+ driver: Optional[builtins.str] = None,
5559
+ node_name: Optional[builtins.str] = None,
3814
5560
  node_selector: Optional['_core.v1.outputs.NodeSelectorPatch'] = None,
3815
- pool: Optional['outputs.ResourcePoolPatch'] = None):
5561
+ per_device_node_selection: Optional[builtins.bool] = None,
5562
+ pool: Optional['outputs.ResourcePoolPatch'] = None,
5563
+ shared_counters: Optional[Sequence['outputs.CounterSetPatch']] = None):
3816
5564
  """
3817
5565
  ResourceSliceSpec contains the information published by the driver in one ResourceSlice.
3818
- :param bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool.
5566
+ :param builtins.bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool.
3819
5567
 
3820
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
5568
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3821
5569
  :param Sequence['DevicePatchArgs'] devices: Devices lists some or all of the devices in this pool.
3822
5570
 
3823
5571
  Must not have more than 128 entries.
3824
- :param str driver: Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.
5572
+ :param builtins.str driver: Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.
3825
5573
 
3826
5574
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable.
3827
- :param str node_name: NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.
5575
+ :param builtins.str node_name: NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.
3828
5576
 
3829
5577
  This field can be used to limit access from nodes to ResourceSlices with the same node name. It also indicates to autoscalers that adding new nodes of the same type as some old node might also make new resources available.
3830
5578
 
3831
- Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.
5579
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.
3832
5580
  :param '_core.v1.NodeSelectorPatchArgs' node_selector: NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node.
3833
5581
 
3834
5582
  Must use exactly one term.
3835
5583
 
3836
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
5584
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
5585
+ :param builtins.bool per_device_node_selection: PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually.
5586
+
5587
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3837
5588
  :param 'ResourcePoolPatchArgs' pool: Pool describes the pool that this ResourceSlice belongs to.
5589
+ :param Sequence['CounterSetPatchArgs'] shared_counters: SharedCounters defines a list of counter sets, each of which has a name and a list of counters available.
5590
+
5591
+ The names of the SharedCounters must be unique in the ResourceSlice.
5592
+
5593
+ The maximum number of SharedCounters is 32.
3838
5594
  """
3839
5595
  if all_nodes is not None:
3840
5596
  pulumi.set(__self__, "all_nodes", all_nodes)
@@ -3846,16 +5602,20 @@ class ResourceSliceSpecPatch(dict):
3846
5602
  pulumi.set(__self__, "node_name", node_name)
3847
5603
  if node_selector is not None:
3848
5604
  pulumi.set(__self__, "node_selector", node_selector)
5605
+ if per_device_node_selection is not None:
5606
+ pulumi.set(__self__, "per_device_node_selection", per_device_node_selection)
3849
5607
  if pool is not None:
3850
5608
  pulumi.set(__self__, "pool", pool)
5609
+ if shared_counters is not None:
5610
+ pulumi.set(__self__, "shared_counters", shared_counters)
3851
5611
 
3852
5612
  @property
3853
5613
  @pulumi.getter(name="allNodes")
3854
- def all_nodes(self) -> Optional[bool]:
5614
+ def all_nodes(self) -> Optional[builtins.bool]:
3855
5615
  """
3856
5616
  AllNodes indicates that all nodes have access to the resources in the pool.
3857
5617
 
3858
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
5618
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3859
5619
  """
3860
5620
  return pulumi.get(self, "all_nodes")
3861
5621
 
@@ -3871,7 +5631,7 @@ class ResourceSliceSpecPatch(dict):
3871
5631
 
3872
5632
  @property
3873
5633
  @pulumi.getter
3874
- def driver(self) -> Optional[str]:
5634
+ def driver(self) -> Optional[builtins.str]:
3875
5635
  """
3876
5636
  Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.
3877
5637
 
@@ -3881,13 +5641,13 @@ class ResourceSliceSpecPatch(dict):
3881
5641
 
3882
5642
  @property
3883
5643
  @pulumi.getter(name="nodeName")
3884
- def node_name(self) -> Optional[str]:
5644
+ def node_name(self) -> Optional[builtins.str]:
3885
5645
  """
3886
5646
  NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.
3887
5647
 
3888
5648
  This field can be used to limit access from nodes to ResourceSlices with the same node name. It also indicates to autoscalers that adding new nodes of the same type as some old node might also make new resources available.
3889
5649
 
3890
- Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.
5650
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.
3891
5651
  """
3892
5652
  return pulumi.get(self, "node_name")
3893
5653
 
@@ -3899,10 +5659,20 @@ class ResourceSliceSpecPatch(dict):
3899
5659
 
3900
5660
  Must use exactly one term.
3901
5661
 
3902
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
5662
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3903
5663
  """
3904
5664
  return pulumi.get(self, "node_selector")
3905
5665
 
5666
+ @property
5667
+ @pulumi.getter(name="perDeviceNodeSelection")
5668
+ def per_device_node_selection(self) -> Optional[builtins.bool]:
5669
+ """
5670
+ PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually.
5671
+
5672
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
5673
+ """
5674
+ return pulumi.get(self, "per_device_node_selection")
5675
+
3906
5676
  @property
3907
5677
  @pulumi.getter
3908
5678
  def pool(self) -> Optional['outputs.ResourcePoolPatch']:
@@ -3911,4 +5681,16 @@ class ResourceSliceSpecPatch(dict):
3911
5681
  """
3912
5682
  return pulumi.get(self, "pool")
3913
5683
 
5684
+ @property
5685
+ @pulumi.getter(name="sharedCounters")
5686
+ def shared_counters(self) -> Optional[Sequence['outputs.CounterSetPatch']]:
5687
+ """
5688
+ SharedCounters defines a list of counter sets, each of which has a name and a list of counters available.
5689
+
5690
+ The names of the SharedCounters must be unique in the ResourceSlice.
5691
+
5692
+ The maximum number of SharedCounters is 32.
5693
+ """
5694
+ return pulumi.get(self, "shared_counters")
5695
+
3914
5696