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',
@@ -44,6 +48,8 @@ __all__ = [
44
48
  'DeviceClassSpecPatch',
45
49
  'DeviceConstraint',
46
50
  'DeviceConstraintPatch',
51
+ 'DeviceCounterConsumption',
52
+ 'DeviceCounterConsumptionPatch',
47
53
  'DevicePatch',
48
54
  'DeviceRequest',
49
55
  'DeviceRequestAllocationResult',
@@ -51,6 +57,12 @@ __all__ = [
51
57
  'DeviceRequestPatch',
52
58
  'DeviceSelector',
53
59
  'DeviceSelectorPatch',
60
+ 'DeviceSubRequest',
61
+ 'DeviceSubRequestPatch',
62
+ 'DeviceTaint',
63
+ 'DeviceTaintPatch',
64
+ 'DeviceToleration',
65
+ 'DeviceTolerationPatch',
54
66
  'NetworkDeviceData',
55
67
  'NetworkDeviceDataPatch',
56
68
  'OpaqueDeviceConfiguration',
@@ -95,22 +107,24 @@ class AllocatedDeviceStatus(dict):
95
107
  return super().get(key, default)
96
108
 
97
109
  def __init__(__self__, *,
98
- device: str,
99
- driver: str,
100
- pool: str,
110
+ device: builtins.str,
111
+ driver: builtins.str,
112
+ pool: builtins.str,
101
113
  conditions: Optional[Sequence['_meta.v1.outputs.Condition']] = None,
102
114
  data: Optional[Any] = None,
103
115
  network_data: Optional['outputs.NetworkDeviceData'] = None):
104
116
  """
105
117
  AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
106
- :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
107
- :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.
118
+ :param builtins.str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
119
+ :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.
108
120
 
109
121
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
110
- :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>`).
122
+ :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>`).
111
123
 
112
124
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
113
125
  :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.
126
+
127
+ Must not contain more than 8 entries.
114
128
  :param Any data: Data contains arbitrary driver-specific data.
115
129
 
116
130
  The length of the raw data must be smaller or equal to 10 Ki.
@@ -128,7 +142,7 @@ class AllocatedDeviceStatus(dict):
128
142
 
129
143
  @property
130
144
  @pulumi.getter
131
- def device(self) -> str:
145
+ def device(self) -> builtins.str:
132
146
  """
133
147
  Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
134
148
  """
@@ -136,7 +150,7 @@ class AllocatedDeviceStatus(dict):
136
150
 
137
151
  @property
138
152
  @pulumi.getter
139
- def driver(self) -> str:
153
+ def driver(self) -> builtins.str:
140
154
  """
141
155
  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.
142
156
 
@@ -146,7 +160,7 @@ class AllocatedDeviceStatus(dict):
146
160
 
147
161
  @property
148
162
  @pulumi.getter
149
- def pool(self) -> str:
163
+ def pool(self) -> builtins.str:
150
164
  """
151
165
  This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
152
166
 
@@ -159,6 +173,8 @@ class AllocatedDeviceStatus(dict):
159
173
  def conditions(self) -> Optional[Sequence['_meta.v1.outputs.Condition']]:
160
174
  """
161
175
  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.
176
+
177
+ Must not contain more than 8 entries.
162
178
  """
163
179
  return pulumi.get(self, "conditions")
164
180
 
@@ -206,22 +222,24 @@ class AllocatedDeviceStatusPatch(dict):
206
222
  def __init__(__self__, *,
207
223
  conditions: Optional[Sequence['_meta.v1.outputs.ConditionPatch']] = None,
208
224
  data: Optional[Any] = None,
209
- device: Optional[str] = None,
210
- driver: Optional[str] = None,
225
+ device: Optional[builtins.str] = None,
226
+ driver: Optional[builtins.str] = None,
211
227
  network_data: Optional['outputs.NetworkDeviceDataPatch'] = None,
212
- pool: Optional[str] = None):
228
+ pool: Optional[builtins.str] = None):
213
229
  """
214
230
  AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
215
231
  :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.
232
+
233
+ Must not contain more than 8 entries.
216
234
  :param Any data: Data contains arbitrary driver-specific data.
217
235
 
218
236
  The length of the raw data must be smaller or equal to 10 Ki.
219
- :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
220
- :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.
237
+ :param builtins.str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
238
+ :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.
221
239
 
222
240
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
223
241
  :param 'NetworkDeviceDataPatchArgs' network_data: NetworkData contains network-related information specific to the device.
224
- :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>`).
242
+ :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>`).
225
243
 
226
244
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
227
245
  """
@@ -243,6 +261,8 @@ class AllocatedDeviceStatusPatch(dict):
243
261
  def conditions(self) -> Optional[Sequence['_meta.v1.outputs.ConditionPatch']]:
244
262
  """
245
263
  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.
264
+
265
+ Must not contain more than 8 entries.
246
266
  """
247
267
  return pulumi.get(self, "conditions")
248
268
 
@@ -258,7 +278,7 @@ class AllocatedDeviceStatusPatch(dict):
258
278
 
259
279
  @property
260
280
  @pulumi.getter
261
- def device(self) -> Optional[str]:
281
+ def device(self) -> Optional[builtins.str]:
262
282
  """
263
283
  Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
264
284
  """
@@ -266,7 +286,7 @@ class AllocatedDeviceStatusPatch(dict):
266
286
 
267
287
  @property
268
288
  @pulumi.getter
269
- def driver(self) -> Optional[str]:
289
+ def driver(self) -> Optional[builtins.str]:
270
290
  """
271
291
  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.
272
292
 
@@ -284,7 +304,7 @@ class AllocatedDeviceStatusPatch(dict):
284
304
 
285
305
  @property
286
306
  @pulumi.getter
287
- def pool(self) -> Optional[str]:
307
+ def pool(self) -> Optional[builtins.str]:
288
308
  """
289
309
  This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
290
310
 
@@ -402,22 +422,91 @@ class BasicDevice(dict):
402
422
  """
403
423
  BasicDevice defines one device instance.
404
424
  """
425
+ @staticmethod
426
+ def __key_warning(key: str):
427
+ suggest = None
428
+ if key == "allNodes":
429
+ suggest = "all_nodes"
430
+ elif key == "consumesCounters":
431
+ suggest = "consumes_counters"
432
+ elif key == "nodeName":
433
+ suggest = "node_name"
434
+ elif key == "nodeSelector":
435
+ suggest = "node_selector"
436
+
437
+ if suggest:
438
+ pulumi.log.warn(f"Key '{key}' not found in BasicDevice. Access the value via the '{suggest}' property getter instead.")
439
+
440
+ def __getitem__(self, key: str) -> Any:
441
+ BasicDevice.__key_warning(key)
442
+ return super().__getitem__(key)
443
+
444
+ def get(self, key: str, default = None) -> Any:
445
+ BasicDevice.__key_warning(key)
446
+ return super().get(key, default)
447
+
405
448
  def __init__(__self__, *,
449
+ all_nodes: Optional[builtins.bool] = None,
406
450
  attributes: Optional[Mapping[str, 'outputs.DeviceAttribute']] = None,
407
- capacity: Optional[Mapping[str, 'outputs.DeviceCapacity']] = None):
451
+ capacity: Optional[Mapping[str, 'outputs.DeviceCapacity']] = None,
452
+ consumes_counters: Optional[Sequence['outputs.DeviceCounterConsumption']] = None,
453
+ node_name: Optional[builtins.str] = None,
454
+ node_selector: Optional['_core.v1.outputs.NodeSelector'] = None,
455
+ taints: Optional[Sequence['outputs.DeviceTaint']] = None):
408
456
  """
409
457
  BasicDevice defines one device instance.
458
+ :param builtins.bool all_nodes: AllNodes indicates that all nodes have access to the device.
459
+
460
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
410
461
  :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.
411
462
 
412
463
  The maximum number of attributes and capacities combined is 32.
413
464
  :param Mapping[str, 'DeviceCapacityArgs'] capacity: Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
414
465
 
415
466
  The maximum number of attributes and capacities combined is 32.
467
+ :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.
468
+
469
+ There can only be a single entry per counterSet.
470
+
471
+ 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).
472
+ :param builtins.str node_name: NodeName identifies the node where the device is available.
473
+
474
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
475
+ :param '_core.v1.NodeSelectorArgs' node_selector: NodeSelector defines the nodes where the device is available.
476
+
477
+ Must use exactly one term.
478
+
479
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
480
+ :param Sequence['DeviceTaintArgs'] taints: If specified, these are the driver-defined taints.
481
+
482
+ The maximum number of taints is 4.
483
+
484
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
416
485
  """
486
+ if all_nodes is not None:
487
+ pulumi.set(__self__, "all_nodes", all_nodes)
417
488
  if attributes is not None:
418
489
  pulumi.set(__self__, "attributes", attributes)
419
490
  if capacity is not None:
420
491
  pulumi.set(__self__, "capacity", capacity)
492
+ if consumes_counters is not None:
493
+ pulumi.set(__self__, "consumes_counters", consumes_counters)
494
+ if node_name is not None:
495
+ pulumi.set(__self__, "node_name", node_name)
496
+ if node_selector is not None:
497
+ pulumi.set(__self__, "node_selector", node_selector)
498
+ if taints is not None:
499
+ pulumi.set(__self__, "taints", taints)
500
+
501
+ @property
502
+ @pulumi.getter(name="allNodes")
503
+ def all_nodes(self) -> Optional[builtins.bool]:
504
+ """
505
+ AllNodes indicates that all nodes have access to the device.
506
+
507
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
508
+ """
509
+ return pulumi.get(self, "all_nodes")
421
510
 
422
511
  @property
423
512
  @pulumi.getter
@@ -439,28 +528,143 @@ class BasicDevice(dict):
439
528
  """
440
529
  return pulumi.get(self, "capacity")
441
530
 
531
+ @property
532
+ @pulumi.getter(name="consumesCounters")
533
+ def consumes_counters(self) -> Optional[Sequence['outputs.DeviceCounterConsumption']]:
534
+ """
535
+ ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.
536
+
537
+ There can only be a single entry per counterSet.
538
+
539
+ 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).
540
+ """
541
+ return pulumi.get(self, "consumes_counters")
542
+
543
+ @property
544
+ @pulumi.getter(name="nodeName")
545
+ def node_name(self) -> Optional[builtins.str]:
546
+ """
547
+ NodeName identifies the node where the device is available.
548
+
549
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
550
+ """
551
+ return pulumi.get(self, "node_name")
552
+
553
+ @property
554
+ @pulumi.getter(name="nodeSelector")
555
+ def node_selector(self) -> Optional['_core.v1.outputs.NodeSelector']:
556
+ """
557
+ NodeSelector defines the nodes where the device is available.
558
+
559
+ Must use exactly one term.
560
+
561
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
562
+ """
563
+ return pulumi.get(self, "node_selector")
564
+
565
+ @property
566
+ @pulumi.getter
567
+ def taints(self) -> Optional[Sequence['outputs.DeviceTaint']]:
568
+ """
569
+ If specified, these are the driver-defined taints.
570
+
571
+ The maximum number of taints is 4.
572
+
573
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
574
+ """
575
+ return pulumi.get(self, "taints")
576
+
442
577
 
443
578
  @pulumi.output_type
444
579
  class BasicDevicePatch(dict):
445
580
  """
446
581
  BasicDevice defines one device instance.
447
582
  """
583
+ @staticmethod
584
+ def __key_warning(key: str):
585
+ suggest = None
586
+ if key == "allNodes":
587
+ suggest = "all_nodes"
588
+ elif key == "consumesCounters":
589
+ suggest = "consumes_counters"
590
+ elif key == "nodeName":
591
+ suggest = "node_name"
592
+ elif key == "nodeSelector":
593
+ suggest = "node_selector"
594
+
595
+ if suggest:
596
+ pulumi.log.warn(f"Key '{key}' not found in BasicDevicePatch. Access the value via the '{suggest}' property getter instead.")
597
+
598
+ def __getitem__(self, key: str) -> Any:
599
+ BasicDevicePatch.__key_warning(key)
600
+ return super().__getitem__(key)
601
+
602
+ def get(self, key: str, default = None) -> Any:
603
+ BasicDevicePatch.__key_warning(key)
604
+ return super().get(key, default)
605
+
448
606
  def __init__(__self__, *,
607
+ all_nodes: Optional[builtins.bool] = None,
449
608
  attributes: Optional[Mapping[str, 'outputs.DeviceAttribute']] = None,
450
- capacity: Optional[Mapping[str, 'outputs.DeviceCapacity']] = None):
609
+ capacity: Optional[Mapping[str, 'outputs.DeviceCapacity']] = None,
610
+ consumes_counters: Optional[Sequence['outputs.DeviceCounterConsumptionPatch']] = None,
611
+ node_name: Optional[builtins.str] = None,
612
+ node_selector: Optional['_core.v1.outputs.NodeSelectorPatch'] = None,
613
+ taints: Optional[Sequence['outputs.DeviceTaintPatch']] = None):
451
614
  """
452
615
  BasicDevice defines one device instance.
616
+ :param builtins.bool all_nodes: AllNodes indicates that all nodes have access to the device.
617
+
618
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
453
619
  :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.
454
620
 
455
621
  The maximum number of attributes and capacities combined is 32.
456
622
  :param Mapping[str, 'DeviceCapacityArgs'] capacity: Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
457
623
 
458
624
  The maximum number of attributes and capacities combined is 32.
625
+ :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.
626
+
627
+ There can only be a single entry per counterSet.
628
+
629
+ 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).
630
+ :param builtins.str node_name: NodeName identifies the node where the device is available.
631
+
632
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
633
+ :param '_core.v1.NodeSelectorPatchArgs' node_selector: NodeSelector defines the nodes where the device is available.
634
+
635
+ Must use exactly one term.
636
+
637
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
638
+ :param Sequence['DeviceTaintPatchArgs'] taints: If specified, these are the driver-defined taints.
639
+
640
+ The maximum number of taints is 4.
641
+
642
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
459
643
  """
644
+ if all_nodes is not None:
645
+ pulumi.set(__self__, "all_nodes", all_nodes)
460
646
  if attributes is not None:
461
647
  pulumi.set(__self__, "attributes", attributes)
462
648
  if capacity is not None:
463
649
  pulumi.set(__self__, "capacity", capacity)
650
+ if consumes_counters is not None:
651
+ pulumi.set(__self__, "consumes_counters", consumes_counters)
652
+ if node_name is not None:
653
+ pulumi.set(__self__, "node_name", node_name)
654
+ if node_selector is not None:
655
+ pulumi.set(__self__, "node_selector", node_selector)
656
+ if taints is not None:
657
+ pulumi.set(__self__, "taints", taints)
658
+
659
+ @property
660
+ @pulumi.getter(name="allNodes")
661
+ def all_nodes(self) -> Optional[builtins.bool]:
662
+ """
663
+ 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.
666
+ """
667
+ return pulumi.get(self, "all_nodes")
464
668
 
465
669
  @property
466
670
  @pulumi.getter
@@ -482,6 +686,52 @@ class BasicDevicePatch(dict):
482
686
  """
483
687
  return pulumi.get(self, "capacity")
484
688
 
689
+ @property
690
+ @pulumi.getter(name="consumesCounters")
691
+ def consumes_counters(self) -> Optional[Sequence['outputs.DeviceCounterConsumptionPatch']]:
692
+ """
693
+ ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.
694
+
695
+ There can only be a single entry per counterSet.
696
+
697
+ 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).
698
+ """
699
+ return pulumi.get(self, "consumes_counters")
700
+
701
+ @property
702
+ @pulumi.getter(name="nodeName")
703
+ def node_name(self) -> Optional[builtins.str]:
704
+ """
705
+ NodeName identifies the node where the device is available.
706
+
707
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
708
+ """
709
+ return pulumi.get(self, "node_name")
710
+
711
+ @property
712
+ @pulumi.getter(name="nodeSelector")
713
+ def node_selector(self) -> Optional['_core.v1.outputs.NodeSelectorPatch']:
714
+ """
715
+ NodeSelector defines the nodes where the device is available.
716
+
717
+ Must use exactly one term.
718
+
719
+ Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
720
+ """
721
+ return pulumi.get(self, "node_selector")
722
+
723
+ @property
724
+ @pulumi.getter
725
+ def taints(self) -> Optional[Sequence['outputs.DeviceTaintPatch']]:
726
+ """
727
+ If specified, these are the driver-defined taints.
728
+
729
+ The maximum number of taints is 4.
730
+
731
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
732
+ """
733
+ return pulumi.get(self, "taints")
734
+
485
735
 
486
736
  @pulumi.output_type
487
737
  class CELDeviceSelector(dict):
@@ -489,10 +739,10 @@ class CELDeviceSelector(dict):
489
739
  CELDeviceSelector contains a CEL expression for selecting a device.
490
740
  """
491
741
  def __init__(__self__, *,
492
- expression: str):
742
+ expression: builtins.str):
493
743
  """
494
744
  CELDeviceSelector contains a CEL expression for selecting a device.
495
- :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.
745
+ :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.
496
746
 
497
747
  The expression's input is an object named "device", which carries the following properties:
498
748
  - driver (string): the name of the driver which defines this device.
@@ -526,7 +776,7 @@ class CELDeviceSelector(dict):
526
776
 
527
777
  @property
528
778
  @pulumi.getter
529
- def expression(self) -> str:
779
+ def expression(self) -> builtins.str:
530
780
  """
531
781
  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.
532
782
 
@@ -567,10 +817,10 @@ class CELDeviceSelectorPatch(dict):
567
817
  CELDeviceSelector contains a CEL expression for selecting a device.
568
818
  """
569
819
  def __init__(__self__, *,
570
- expression: Optional[str] = None):
820
+ expression: Optional[builtins.str] = None):
571
821
  """
572
822
  CELDeviceSelector contains a CEL expression for selecting a device.
573
- :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.
823
+ :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.
574
824
 
575
825
  The expression's input is an object named "device", which carries the following properties:
576
826
  - driver (string): the name of the driver which defines this device.
@@ -605,7 +855,7 @@ class CELDeviceSelectorPatch(dict):
605
855
 
606
856
  @property
607
857
  @pulumi.getter
608
- def expression(self) -> Optional[str]:
858
+ def expression(self) -> Optional[builtins.str]:
609
859
  """
610
860
  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.
611
861
 
@@ -640,17 +890,123 @@ class CELDeviceSelectorPatch(dict):
640
890
  return pulumi.get(self, "expression")
641
891
 
642
892
 
893
+ @pulumi.output_type
894
+ class Counter(dict):
895
+ """
896
+ Counter describes a quantity associated with a device.
897
+ """
898
+ def __init__(__self__, *,
899
+ value: builtins.str):
900
+ """
901
+ Counter describes a quantity associated with a device.
902
+ :param builtins.str value: Value defines how much of a certain device counter is available.
903
+ """
904
+ pulumi.set(__self__, "value", value)
905
+
906
+ @property
907
+ @pulumi.getter
908
+ def value(self) -> builtins.str:
909
+ """
910
+ Value defines how much of a certain device counter is available.
911
+ """
912
+ return pulumi.get(self, "value")
913
+
914
+
915
+ @pulumi.output_type
916
+ class CounterSet(dict):
917
+ """
918
+ CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice.
919
+
920
+ 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.
921
+ """
922
+ def __init__(__self__, *,
923
+ counters: Mapping[str, 'outputs.Counter'],
924
+ name: builtins.str):
925
+ """
926
+ CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice.
927
+
928
+ 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.
929
+ :param Mapping[str, 'CounterArgs'] counters: Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label.
930
+
931
+ The maximum number of counters is 32.
932
+ :param builtins.str name: Name defines the name of the counter set. It must be a DNS label.
933
+ """
934
+ pulumi.set(__self__, "counters", counters)
935
+ pulumi.set(__self__, "name", name)
936
+
937
+ @property
938
+ @pulumi.getter
939
+ def counters(self) -> Mapping[str, 'outputs.Counter']:
940
+ """
941
+ Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label.
942
+
943
+ The maximum number of counters is 32.
944
+ """
945
+ return pulumi.get(self, "counters")
946
+
947
+ @property
948
+ @pulumi.getter
949
+ def name(self) -> builtins.str:
950
+ """
951
+ Name defines the name of the counter set. It must be a DNS label.
952
+ """
953
+ return pulumi.get(self, "name")
954
+
955
+
956
+ @pulumi.output_type
957
+ class CounterSetPatch(dict):
958
+ """
959
+ CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice.
960
+
961
+ 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.
962
+ """
963
+ def __init__(__self__, *,
964
+ counters: Optional[Mapping[str, 'outputs.Counter']] = None,
965
+ name: Optional[builtins.str] = None):
966
+ """
967
+ CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice.
968
+
969
+ 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.
970
+ :param Mapping[str, 'CounterArgs'] counters: Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label.
971
+
972
+ The maximum number of counters is 32.
973
+ :param builtins.str name: Name defines the name of the counter set. It must be a DNS label.
974
+ """
975
+ if counters is not None:
976
+ pulumi.set(__self__, "counters", counters)
977
+ if name is not None:
978
+ pulumi.set(__self__, "name", name)
979
+
980
+ @property
981
+ @pulumi.getter
982
+ def counters(self) -> Optional[Mapping[str, 'outputs.Counter']]:
983
+ """
984
+ Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label.
985
+
986
+ The maximum number of counters is 32.
987
+ """
988
+ return pulumi.get(self, "counters")
989
+
990
+ @property
991
+ @pulumi.getter
992
+ def name(self) -> Optional[builtins.str]:
993
+ """
994
+ Name defines the name of the counter set. It must be a DNS label.
995
+ """
996
+ return pulumi.get(self, "name")
997
+
998
+
643
999
  @pulumi.output_type
644
1000
  class Device(dict):
645
1001
  """
646
1002
  Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
647
1003
  """
648
1004
  def __init__(__self__, *,
649
- name: str,
1005
+ name: builtins.str,
650
1006
  basic: Optional['outputs.BasicDevice'] = None):
651
1007
  """
652
1008
  Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
653
- :param str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
1009
+ :param builtins.str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
654
1010
  :param 'BasicDeviceArgs' basic: Basic defines one device instance.
655
1011
  """
656
1012
  pulumi.set(__self__, "name", name)
@@ -659,7 +1015,7 @@ class Device(dict):
659
1015
 
660
1016
  @property
661
1017
  @pulumi.getter
662
- def name(self) -> str:
1018
+ def name(self) -> builtins.str:
663
1019
  """
664
1020
  Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
665
1021
  """
@@ -680,14 +1036,16 @@ class DeviceAllocationConfiguration(dict):
680
1036
  DeviceAllocationConfiguration gets embedded in an AllocationResult.
681
1037
  """
682
1038
  def __init__(__self__, *,
683
- source: str,
1039
+ source: builtins.str,
684
1040
  opaque: Optional['outputs.OpaqueDeviceConfiguration'] = None,
685
- requests: Optional[Sequence[str]] = None):
1041
+ requests: Optional[Sequence[builtins.str]] = None):
686
1042
  """
687
1043
  DeviceAllocationConfiguration gets embedded in an AllocationResult.
688
- :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.
1044
+ :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.
689
1045
  :param 'OpaqueDeviceConfigurationArgs' opaque: Opaque provides driver-specific configuration parameters.
690
- :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1046
+ :param Sequence[builtins.str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1047
+
1048
+ 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.
691
1049
  """
692
1050
  pulumi.set(__self__, "source", source)
693
1051
  if opaque is not None:
@@ -697,7 +1055,7 @@ class DeviceAllocationConfiguration(dict):
697
1055
 
698
1056
  @property
699
1057
  @pulumi.getter
700
- def source(self) -> str:
1058
+ def source(self) -> builtins.str:
701
1059
  """
702
1060
  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.
703
1061
  """
@@ -713,9 +1071,11 @@ class DeviceAllocationConfiguration(dict):
713
1071
 
714
1072
  @property
715
1073
  @pulumi.getter
716
- def requests(self) -> Optional[Sequence[str]]:
1074
+ def requests(self) -> Optional[Sequence[builtins.str]]:
717
1075
  """
718
1076
  Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1077
+
1078
+ 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.
719
1079
  """
720
1080
  return pulumi.get(self, "requests")
721
1081
 
@@ -727,13 +1087,15 @@ class DeviceAllocationConfigurationPatch(dict):
727
1087
  """
728
1088
  def __init__(__self__, *,
729
1089
  opaque: Optional['outputs.OpaqueDeviceConfigurationPatch'] = None,
730
- requests: Optional[Sequence[str]] = None,
731
- source: Optional[str] = None):
1090
+ requests: Optional[Sequence[builtins.str]] = None,
1091
+ source: Optional[builtins.str] = None):
732
1092
  """
733
1093
  DeviceAllocationConfiguration gets embedded in an AllocationResult.
734
1094
  :param 'OpaqueDeviceConfigurationPatchArgs' opaque: Opaque provides driver-specific configuration parameters.
735
- :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
736
- :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 Sequence[builtins.str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1096
+
1097
+ 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.
1098
+ :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.
737
1099
  """
738
1100
  if opaque is not None:
739
1101
  pulumi.set(__self__, "opaque", opaque)
@@ -752,15 +1114,17 @@ class DeviceAllocationConfigurationPatch(dict):
752
1114
 
753
1115
  @property
754
1116
  @pulumi.getter
755
- def requests(self) -> Optional[Sequence[str]]:
1117
+ def requests(self) -> Optional[Sequence[builtins.str]]:
756
1118
  """
757
1119
  Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.
1120
+
1121
+ 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.
758
1122
  """
759
1123
  return pulumi.get(self, "requests")
760
1124
 
761
1125
  @property
762
1126
  @pulumi.getter
763
- def source(self) -> Optional[str]:
1127
+ def source(self) -> Optional[builtins.str]:
764
1128
  """
765
1129
  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.
766
1130
  """
@@ -851,16 +1215,16 @@ class DeviceAttribute(dict):
851
1215
  DeviceAttribute must have exactly one field set.
852
1216
  """
853
1217
  def __init__(__self__, *,
854
- bool: Optional[bool] = None,
855
- int: Optional[int] = None,
856
- string: Optional[str] = None,
857
- version: Optional[str] = None):
1218
+ bool: Optional[builtins.bool] = None,
1219
+ int: Optional[builtins.int] = None,
1220
+ string: Optional[builtins.str] = None,
1221
+ version: Optional[builtins.str] = None):
858
1222
  """
859
1223
  DeviceAttribute must have exactly one field set.
860
- :param bool bool: BoolValue is a true/false value.
861
- :param int int: IntValue is a number.
862
- :param str string: StringValue is a string. Must not be longer than 64 characters.
863
- :param str version: VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.
1224
+ :param builtins.bool bool: BoolValue is a true/false value.
1225
+ :param builtins.int int: IntValue is a number.
1226
+ :param builtins.str string: StringValue is a string. Must not be longer than 64 characters.
1227
+ :param builtins.str version: VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.
864
1228
  """
865
1229
  if bool is not None:
866
1230
  pulumi.set(__self__, "bool", bool)
@@ -873,7 +1237,7 @@ class DeviceAttribute(dict):
873
1237
 
874
1238
  @property
875
1239
  @pulumi.getter
876
- def bool(self) -> Optional[bool]:
1240
+ def bool(self) -> Optional[builtins.bool]:
877
1241
  """
878
1242
  BoolValue is a true/false value.
879
1243
  """
@@ -881,7 +1245,7 @@ class DeviceAttribute(dict):
881
1245
 
882
1246
  @property
883
1247
  @pulumi.getter
884
- def int(self) -> Optional[int]:
1248
+ def int(self) -> Optional[builtins.int]:
885
1249
  """
886
1250
  IntValue is a number.
887
1251
  """
@@ -889,7 +1253,7 @@ class DeviceAttribute(dict):
889
1253
 
890
1254
  @property
891
1255
  @pulumi.getter
892
- def string(self) -> Optional[str]:
1256
+ def string(self) -> Optional[builtins.str]:
893
1257
  """
894
1258
  StringValue is a string. Must not be longer than 64 characters.
895
1259
  """
@@ -897,7 +1261,7 @@ class DeviceAttribute(dict):
897
1261
 
898
1262
  @property
899
1263
  @pulumi.getter
900
- def version(self) -> Optional[str]:
1264
+ def version(self) -> Optional[builtins.str]:
901
1265
  """
902
1266
  VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.
903
1267
  """
@@ -910,16 +1274,16 @@ class DeviceCapacity(dict):
910
1274
  DeviceCapacity describes a quantity associated with a device.
911
1275
  """
912
1276
  def __init__(__self__, *,
913
- value: str):
1277
+ value: builtins.str):
914
1278
  """
915
1279
  DeviceCapacity describes a quantity associated with a device.
916
- :param str value: Value defines how much of a certain device capacity is available.
1280
+ :param builtins.str value: Value defines how much of a certain device capacity is available.
917
1281
  """
918
1282
  pulumi.set(__self__, "value", value)
919
1283
 
920
1284
  @property
921
1285
  @pulumi.getter
922
- def value(self) -> str:
1286
+ def value(self) -> builtins.str:
923
1287
  """
924
1288
  Value defines how much of a certain device capacity is available.
925
1289
  """
@@ -980,11 +1344,13 @@ class DeviceClaimConfiguration(dict):
980
1344
  """
981
1345
  def __init__(__self__, *,
982
1346
  opaque: Optional['outputs.OpaqueDeviceConfiguration'] = None,
983
- requests: Optional[Sequence[str]] = None):
1347
+ requests: Optional[Sequence[builtins.str]] = None):
984
1348
  """
985
1349
  DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.
986
1350
  :param 'OpaqueDeviceConfigurationArgs' opaque: Opaque provides driver-specific configuration parameters.
987
- :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1351
+ :param Sequence[builtins.str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1352
+
1353
+ 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.
988
1354
  """
989
1355
  if opaque is not None:
990
1356
  pulumi.set(__self__, "opaque", opaque)
@@ -1001,9 +1367,11 @@ class DeviceClaimConfiguration(dict):
1001
1367
 
1002
1368
  @property
1003
1369
  @pulumi.getter
1004
- def requests(self) -> Optional[Sequence[str]]:
1370
+ def requests(self) -> Optional[Sequence[builtins.str]]:
1005
1371
  """
1006
1372
  Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1373
+
1374
+ 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.
1007
1375
  """
1008
1376
  return pulumi.get(self, "requests")
1009
1377
 
@@ -1015,11 +1383,13 @@ class DeviceClaimConfigurationPatch(dict):
1015
1383
  """
1016
1384
  def __init__(__self__, *,
1017
1385
  opaque: Optional['outputs.OpaqueDeviceConfigurationPatch'] = None,
1018
- requests: Optional[Sequence[str]] = None):
1386
+ requests: Optional[Sequence[builtins.str]] = None):
1019
1387
  """
1020
1388
  DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.
1021
1389
  :param 'OpaqueDeviceConfigurationPatchArgs' opaque: Opaque provides driver-specific configuration parameters.
1022
- :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1390
+ :param Sequence[builtins.str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1391
+
1392
+ 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.
1023
1393
  """
1024
1394
  if opaque is not None:
1025
1395
  pulumi.set(__self__, "opaque", opaque)
@@ -1036,9 +1406,11 @@ class DeviceClaimConfigurationPatch(dict):
1036
1406
 
1037
1407
  @property
1038
1408
  @pulumi.getter
1039
- def requests(self) -> Optional[Sequence[str]]:
1409
+ def requests(self) -> Optional[Sequence[builtins.str]]:
1040
1410
  """
1041
1411
  Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.
1412
+
1413
+ 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.
1042
1414
  """
1043
1415
  return pulumi.get(self, "requests")
1044
1416
 
@@ -1116,8 +1488,8 @@ class DeviceClass(dict):
1116
1488
 
1117
1489
  def __init__(__self__, *,
1118
1490
  spec: 'outputs.DeviceClassSpec',
1119
- api_version: Optional[str] = None,
1120
- kind: Optional[str] = None,
1491
+ api_version: Optional[builtins.str] = None,
1492
+ kind: Optional[builtins.str] = None,
1121
1493
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
1122
1494
  """
1123
1495
  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.
@@ -1128,8 +1500,8 @@ class DeviceClass(dict):
1128
1500
  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.
1129
1501
 
1130
1502
  Changing the spec automatically increments the metadata.generation number.
1131
- :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
1132
- :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
1503
+ :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
1504
+ :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
1133
1505
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
1134
1506
  """
1135
1507
  pulumi.set(__self__, "spec", spec)
@@ -1154,7 +1526,7 @@ class DeviceClass(dict):
1154
1526
 
1155
1527
  @property
1156
1528
  @pulumi.getter(name="apiVersion")
1157
- def api_version(self) -> Optional[str]:
1529
+ def api_version(self) -> Optional[builtins.str]:
1158
1530
  """
1159
1531
  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
1160
1532
  """
@@ -1162,7 +1534,7 @@ class DeviceClass(dict):
1162
1534
 
1163
1535
  @property
1164
1536
  @pulumi.getter
1165
- def kind(self) -> Optional[str]:
1537
+ def kind(self) -> Optional[builtins.str]:
1166
1538
  """
1167
1539
  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
1168
1540
  """
@@ -1324,16 +1696,18 @@ class DeviceConstraint(dict):
1324
1696
  return super().get(key, default)
1325
1697
 
1326
1698
  def __init__(__self__, *,
1327
- match_attribute: Optional[str] = None,
1328
- requests: Optional[Sequence[str]] = None):
1699
+ match_attribute: Optional[builtins.str] = None,
1700
+ requests: Optional[Sequence[builtins.str]] = None):
1329
1701
  """
1330
1702
  DeviceConstraint must have exactly one field set besides Requests.
1331
- :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.
1703
+ :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.
1332
1704
 
1333
1705
  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.
1334
1706
 
1335
1707
  Must include the domain qualifier.
1336
- :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.
1708
+ :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.
1709
+
1710
+ 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.
1337
1711
  """
1338
1712
  if match_attribute is not None:
1339
1713
  pulumi.set(__self__, "match_attribute", match_attribute)
@@ -1342,7 +1716,7 @@ class DeviceConstraint(dict):
1342
1716
 
1343
1717
  @property
1344
1718
  @pulumi.getter(name="matchAttribute")
1345
- def match_attribute(self) -> Optional[str]:
1719
+ def match_attribute(self) -> Optional[builtins.str]:
1346
1720
  """
1347
1721
  MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.
1348
1722
 
@@ -1354,9 +1728,11 @@ class DeviceConstraint(dict):
1354
1728
 
1355
1729
  @property
1356
1730
  @pulumi.getter
1357
- def requests(self) -> Optional[Sequence[str]]:
1731
+ def requests(self) -> Optional[Sequence[builtins.str]]:
1358
1732
  """
1359
1733
  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.
1734
+
1735
+ 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.
1360
1736
  """
1361
1737
  return pulumi.get(self, "requests")
1362
1738
 
@@ -1384,16 +1760,18 @@ class DeviceConstraintPatch(dict):
1384
1760
  return super().get(key, default)
1385
1761
 
1386
1762
  def __init__(__self__, *,
1387
- match_attribute: Optional[str] = None,
1388
- requests: Optional[Sequence[str]] = None):
1763
+ match_attribute: Optional[builtins.str] = None,
1764
+ requests: Optional[Sequence[builtins.str]] = None):
1389
1765
  """
1390
1766
  DeviceConstraint must have exactly one field set besides Requests.
1391
- :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.
1767
+ :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.
1392
1768
 
1393
1769
  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.
1394
1770
 
1395
1771
  Must include the domain qualifier.
1396
- :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.
1772
+ :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.
1773
+
1774
+ 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.
1397
1775
  """
1398
1776
  if match_attribute is not None:
1399
1777
  pulumi.set(__self__, "match_attribute", match_attribute)
@@ -1402,7 +1780,7 @@ class DeviceConstraintPatch(dict):
1402
1780
 
1403
1781
  @property
1404
1782
  @pulumi.getter(name="matchAttribute")
1405
- def match_attribute(self) -> Optional[str]:
1783
+ def match_attribute(self) -> Optional[builtins.str]:
1406
1784
  """
1407
1785
  MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.
1408
1786
 
@@ -1414,64 +1792,176 @@ class DeviceConstraintPatch(dict):
1414
1792
 
1415
1793
  @property
1416
1794
  @pulumi.getter
1417
- def requests(self) -> Optional[Sequence[str]]:
1795
+ def requests(self) -> Optional[Sequence[builtins.str]]:
1418
1796
  """
1419
1797
  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.
1798
+
1799
+ 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.
1420
1800
  """
1421
1801
  return pulumi.get(self, "requests")
1422
1802
 
1423
1803
 
1424
1804
  @pulumi.output_type
1425
- class DevicePatch(dict):
1805
+ class DeviceCounterConsumption(dict):
1426
1806
  """
1427
- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
1807
+ DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.
1428
1808
  """
1809
+ @staticmethod
1810
+ def __key_warning(key: str):
1811
+ suggest = None
1812
+ if key == "counterSet":
1813
+ suggest = "counter_set"
1814
+
1815
+ if suggest:
1816
+ pulumi.log.warn(f"Key '{key}' not found in DeviceCounterConsumption. Access the value via the '{suggest}' property getter instead.")
1817
+
1818
+ def __getitem__(self, key: str) -> Any:
1819
+ DeviceCounterConsumption.__key_warning(key)
1820
+ return super().__getitem__(key)
1821
+
1822
+ def get(self, key: str, default = None) -> Any:
1823
+ DeviceCounterConsumption.__key_warning(key)
1824
+ return super().get(key, default)
1825
+
1429
1826
  def __init__(__self__, *,
1430
- basic: Optional['outputs.BasicDevicePatch'] = None,
1431
- name: Optional[str] = None):
1827
+ counter_set: builtins.str,
1828
+ counters: Mapping[str, 'outputs.Counter']):
1432
1829
  """
1433
- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
1434
- :param 'BasicDevicePatchArgs' basic: Basic defines one device instance.
1435
- :param str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
1830
+ DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.
1831
+ :param builtins.str counter_set: CounterSet is the name of the set from which the counters defined will be consumed.
1832
+ :param Mapping[str, 'CounterArgs'] counters: Counters defines the counters that will be consumed by the device.
1833
+
1834
+ 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).
1436
1835
  """
1437
- if basic is not None:
1438
- pulumi.set(__self__, "basic", basic)
1439
- if name is not None:
1440
- pulumi.set(__self__, "name", name)
1836
+ pulumi.set(__self__, "counter_set", counter_set)
1837
+ pulumi.set(__self__, "counters", counters)
1441
1838
 
1442
1839
  @property
1443
- @pulumi.getter
1444
- def basic(self) -> Optional['outputs.BasicDevicePatch']:
1840
+ @pulumi.getter(name="counterSet")
1841
+ def counter_set(self) -> builtins.str:
1445
1842
  """
1446
- Basic defines one device instance.
1843
+ CounterSet is the name of the set from which the counters defined will be consumed.
1447
1844
  """
1448
- return pulumi.get(self, "basic")
1845
+ return pulumi.get(self, "counter_set")
1449
1846
 
1450
1847
  @property
1451
1848
  @pulumi.getter
1452
- def name(self) -> Optional[str]:
1849
+ def counters(self) -> Mapping[str, 'outputs.Counter']:
1453
1850
  """
1454
- Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
1851
+ Counters defines the counters that will be consumed by the device.
1852
+
1853
+ 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).
1455
1854
  """
1456
- return pulumi.get(self, "name")
1855
+ return pulumi.get(self, "counters")
1457
1856
 
1458
1857
 
1459
1858
  @pulumi.output_type
1460
- class DeviceRequest(dict):
1859
+ class DeviceCounterConsumptionPatch(dict):
1461
1860
  """
1462
- 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.
1463
-
1464
- 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.
1861
+ DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.
1465
1862
  """
1466
1863
  @staticmethod
1467
1864
  def __key_warning(key: str):
1468
1865
  suggest = None
1469
- if key == "deviceClassName":
1470
- suggest = "device_class_name"
1471
- elif key == "adminAccess":
1472
- suggest = "admin_access"
1866
+ if key == "counterSet":
1867
+ suggest = "counter_set"
1868
+
1869
+ if suggest:
1870
+ pulumi.log.warn(f"Key '{key}' not found in DeviceCounterConsumptionPatch. Access the value via the '{suggest}' property getter instead.")
1871
+
1872
+ def __getitem__(self, key: str) -> Any:
1873
+ DeviceCounterConsumptionPatch.__key_warning(key)
1874
+ return super().__getitem__(key)
1875
+
1876
+ def get(self, key: str, default = None) -> Any:
1877
+ DeviceCounterConsumptionPatch.__key_warning(key)
1878
+ return super().get(key, default)
1879
+
1880
+ def __init__(__self__, *,
1881
+ counter_set: Optional[builtins.str] = None,
1882
+ counters: Optional[Mapping[str, 'outputs.Counter']] = None):
1883
+ """
1884
+ DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.
1885
+ :param builtins.str counter_set: CounterSet is the name of the set from which the counters defined will be consumed.
1886
+ :param Mapping[str, 'CounterArgs'] counters: Counters defines the counters that will be consumed by the device.
1887
+
1888
+ 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).
1889
+ """
1890
+ if counter_set is not None:
1891
+ pulumi.set(__self__, "counter_set", counter_set)
1892
+ if counters is not None:
1893
+ pulumi.set(__self__, "counters", counters)
1894
+
1895
+ @property
1896
+ @pulumi.getter(name="counterSet")
1897
+ def counter_set(self) -> Optional[builtins.str]:
1898
+ """
1899
+ CounterSet is the name of the set from which the counters defined will be consumed.
1900
+ """
1901
+ return pulumi.get(self, "counter_set")
1902
+
1903
+ @property
1904
+ @pulumi.getter
1905
+ def counters(self) -> Optional[Mapping[str, 'outputs.Counter']]:
1906
+ """
1907
+ Counters defines the counters that will be consumed by the device.
1908
+
1909
+ 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).
1910
+ """
1911
+ return pulumi.get(self, "counters")
1912
+
1913
+
1914
+ @pulumi.output_type
1915
+ class DevicePatch(dict):
1916
+ """
1917
+ Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
1918
+ """
1919
+ def __init__(__self__, *,
1920
+ basic: Optional['outputs.BasicDevicePatch'] = None,
1921
+ name: Optional[builtins.str] = None):
1922
+ """
1923
+ Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
1924
+ :param 'BasicDevicePatchArgs' basic: Basic defines one device instance.
1925
+ :param builtins.str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
1926
+ """
1927
+ if basic is not None:
1928
+ pulumi.set(__self__, "basic", basic)
1929
+ if name is not None:
1930
+ pulumi.set(__self__, "name", name)
1931
+
1932
+ @property
1933
+ @pulumi.getter
1934
+ def basic(self) -> Optional['outputs.BasicDevicePatch']:
1935
+ """
1936
+ Basic defines one device instance.
1937
+ """
1938
+ return pulumi.get(self, "basic")
1939
+
1940
+ @property
1941
+ @pulumi.getter
1942
+ def name(self) -> Optional[builtins.str]:
1943
+ """
1944
+ Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
1945
+ """
1946
+ return pulumi.get(self, "name")
1947
+
1948
+
1949
+ @pulumi.output_type
1950
+ class DeviceRequest(dict):
1951
+ """
1952
+ 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.
1953
+ """
1954
+ @staticmethod
1955
+ def __key_warning(key: str):
1956
+ suggest = None
1957
+ if key == "adminAccess":
1958
+ suggest = "admin_access"
1473
1959
  elif key == "allocationMode":
1474
1960
  suggest = "allocation_mode"
1961
+ elif key == "deviceClassName":
1962
+ suggest = "device_class_name"
1963
+ elif key == "firstAvailable":
1964
+ suggest = "first_available"
1475
1965
 
1476
1966
  if suggest:
1477
1967
  pulumi.log.warn(f"Key '{key}' not found in DeviceRequest. Access the value via the '{suggest}' property getter instead.")
@@ -1485,44 +1975,68 @@ class DeviceRequest(dict):
1485
1975
  return super().get(key, default)
1486
1976
 
1487
1977
  def __init__(__self__, *,
1488
- device_class_name: str,
1489
- name: str,
1490
- admin_access: Optional[bool] = None,
1491
- allocation_mode: Optional[str] = None,
1492
- count: Optional[int] = None,
1493
- selectors: Optional[Sequence['outputs.DeviceSelector']] = None):
1978
+ name: builtins.str,
1979
+ admin_access: Optional[builtins.bool] = None,
1980
+ allocation_mode: Optional[builtins.str] = None,
1981
+ count: Optional[builtins.int] = None,
1982
+ device_class_name: Optional[builtins.str] = None,
1983
+ first_available: Optional[Sequence['outputs.DeviceSubRequest']] = None,
1984
+ selectors: Optional[Sequence['outputs.DeviceSelector']] = None,
1985
+ tolerations: Optional[Sequence['outputs.DeviceToleration']] = None):
1494
1986
  """
1495
1987
  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.
1496
-
1497
- 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.
1498
- :param str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
1988
+ :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.
1499
1989
 
1500
- A class is required. Which classes are available depends on the cluster.
1990
+ Must be a DNS label and unique among all DeviceRequests in a ResourceClaim.
1991
+ :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.
1501
1992
 
1502
- 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.
1503
- :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.
1504
-
1505
- Must be a DNS label.
1506
- :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.
1993
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1507
1994
 
1508
1995
  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.
1509
- :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1996
+ :param builtins.str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1510
1997
 
1511
1998
  - ExactCount: This request is for a specific number of devices.
1512
1999
  This is the default. The exact number is provided in the
1513
2000
  count field.
1514
2001
 
1515
2002
  - All: This request is for all of the matching devices in a pool.
2003
+ At least one device must exist on the node for the allocation to succeed.
1516
2004
  Allocation will fail if some devices are already allocated,
1517
2005
  unless adminAccess is requested.
1518
2006
 
1519
- 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.
2007
+ 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.
2008
+
2009
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1520
2010
 
1521
2011
  More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
1522
- :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.
2012
+ :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.
2013
+
2014
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2015
+ :param builtins.str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2016
+
2017
+ 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.
2018
+
2019
+ 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.
2020
+ :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.
2021
+
2022
+ This field may only be set in the entries of DeviceClaim.Requests.
2023
+
2024
+ 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.
1523
2025
  :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.
2026
+
2027
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2028
+ :param Sequence['DeviceTolerationArgs'] tolerations: If specified, the request's tolerations.
2029
+
2030
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2031
+
2032
+ 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.
2033
+
2034
+ The maximum number of tolerations is 16.
2035
+
2036
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2037
+
2038
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
1524
2039
  """
1525
- pulumi.set(__self__, "device_class_name", device_class_name)
1526
2040
  pulumi.set(__self__, "name", name)
1527
2041
  if admin_access is not None:
1528
2042
  pulumi.set(__self__, "admin_access", admin_access)
@@ -1530,44 +2044,40 @@ class DeviceRequest(dict):
1530
2044
  pulumi.set(__self__, "allocation_mode", allocation_mode)
1531
2045
  if count is not None:
1532
2046
  pulumi.set(__self__, "count", count)
2047
+ if device_class_name is not None:
2048
+ pulumi.set(__self__, "device_class_name", device_class_name)
2049
+ if first_available is not None:
2050
+ pulumi.set(__self__, "first_available", first_available)
1533
2051
  if selectors is not None:
1534
2052
  pulumi.set(__self__, "selectors", selectors)
1535
-
1536
- @property
1537
- @pulumi.getter(name="deviceClassName")
1538
- def device_class_name(self) -> str:
1539
- """
1540
- DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
1541
-
1542
- A class is required. Which classes are available depends on the cluster.
1543
-
1544
- 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.
1545
- """
1546
- return pulumi.get(self, "device_class_name")
2053
+ if tolerations is not None:
2054
+ pulumi.set(__self__, "tolerations", tolerations)
1547
2055
 
1548
2056
  @property
1549
2057
  @pulumi.getter
1550
- def name(self) -> str:
2058
+ def name(self) -> builtins.str:
1551
2059
  """
1552
2060
  Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
1553
2061
 
1554
- Must be a DNS label.
2062
+ Must be a DNS label and unique among all DeviceRequests in a ResourceClaim.
1555
2063
  """
1556
2064
  return pulumi.get(self, "name")
1557
2065
 
1558
2066
  @property
1559
2067
  @pulumi.getter(name="adminAccess")
1560
- def admin_access(self) -> Optional[bool]:
2068
+ def admin_access(self) -> Optional[builtins.bool]:
1561
2069
  """
1562
2070
  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.
1563
2071
 
2072
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2073
+
1564
2074
  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.
1565
2075
  """
1566
2076
  return pulumi.get(self, "admin_access")
1567
2077
 
1568
2078
  @property
1569
2079
  @pulumi.getter(name="allocationMode")
1570
- def allocation_mode(self) -> Optional[str]:
2080
+ def allocation_mode(self) -> Optional[builtins.str]:
1571
2081
  """
1572
2082
  AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
1573
2083
 
@@ -1576,10 +2086,13 @@ class DeviceRequest(dict):
1576
2086
  count field.
1577
2087
 
1578
2088
  - All: This request is for all of the matching devices in a pool.
2089
+ At least one device must exist on the node for the allocation to succeed.
1579
2090
  Allocation will fail if some devices are already allocated,
1580
2091
  unless adminAccess is requested.
1581
2092
 
1582
- 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.
2093
+ 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.
2094
+
2095
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1583
2096
 
1584
2097
  More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
1585
2098
  """
@@ -1587,20 +2100,66 @@ class DeviceRequest(dict):
1587
2100
 
1588
2101
  @property
1589
2102
  @pulumi.getter
1590
- def count(self) -> Optional[int]:
2103
+ def count(self) -> Optional[builtins.int]:
1591
2104
  """
1592
2105
  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.
2106
+
2107
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1593
2108
  """
1594
2109
  return pulumi.get(self, "count")
1595
2110
 
2111
+ @property
2112
+ @pulumi.getter(name="deviceClassName")
2113
+ def device_class_name(self) -> Optional[builtins.str]:
2114
+ """
2115
+ DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2116
+
2117
+ 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.
2118
+
2119
+ 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.
2120
+ """
2121
+ return pulumi.get(self, "device_class_name")
2122
+
2123
+ @property
2124
+ @pulumi.getter(name="firstAvailable")
2125
+ def first_available(self) -> Optional[Sequence['outputs.DeviceSubRequest']]:
2126
+ """
2127
+ 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.
2128
+
2129
+ This field may only be set in the entries of DeviceClaim.Requests.
2130
+
2131
+ 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.
2132
+ """
2133
+ return pulumi.get(self, "first_available")
2134
+
1596
2135
  @property
1597
2136
  @pulumi.getter
1598
2137
  def selectors(self) -> Optional[Sequence['outputs.DeviceSelector']]:
1599
2138
  """
1600
2139
  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.
2140
+
2141
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
1601
2142
  """
1602
2143
  return pulumi.get(self, "selectors")
1603
2144
 
2145
+ @property
2146
+ @pulumi.getter
2147
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceToleration']]:
2148
+ """
2149
+ If specified, the request's tolerations.
2150
+
2151
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2152
+
2153
+ 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.
2154
+
2155
+ The maximum number of tolerations is 16.
2156
+
2157
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2158
+
2159
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2160
+ """
2161
+ return pulumi.get(self, "tolerations")
2162
+
1604
2163
 
1605
2164
  @pulumi.output_type
1606
2165
  class DeviceRequestAllocationResult(dict):
@@ -1625,24 +2184,32 @@ class DeviceRequestAllocationResult(dict):
1625
2184
  return super().get(key, default)
1626
2185
 
1627
2186
  def __init__(__self__, *,
1628
- device: str,
1629
- driver: str,
1630
- pool: str,
1631
- request: str,
1632
- admin_access: Optional[bool] = None):
2187
+ device: builtins.str,
2188
+ driver: builtins.str,
2189
+ pool: builtins.str,
2190
+ request: builtins.str,
2191
+ admin_access: Optional[builtins.bool] = None,
2192
+ tolerations: Optional[Sequence['outputs.DeviceToleration']] = None):
1633
2193
  """
1634
2194
  DeviceRequestAllocationResult contains the allocation result for one request.
1635
- :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
1636
- :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.
2195
+ :param builtins.str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
2196
+ :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.
1637
2197
 
1638
2198
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
1639
- :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>`).
2199
+ :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>`).
1640
2200
 
1641
2201
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
1642
- :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.
1643
- :param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
2202
+ :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>.
2203
+
2204
+ Multiple devices may have been allocated per request.
2205
+ :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.
1644
2206
 
1645
2207
  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.
2208
+ :param Sequence['DeviceTolerationArgs'] tolerations: A copy of all tolerations specified in the request at the time when the device got allocated.
2209
+
2210
+ The maximum number of tolerations is 16.
2211
+
2212
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
1646
2213
  """
1647
2214
  pulumi.set(__self__, "device", device)
1648
2215
  pulumi.set(__self__, "driver", driver)
@@ -1650,10 +2217,12 @@ class DeviceRequestAllocationResult(dict):
1650
2217
  pulumi.set(__self__, "request", request)
1651
2218
  if admin_access is not None:
1652
2219
  pulumi.set(__self__, "admin_access", admin_access)
2220
+ if tolerations is not None:
2221
+ pulumi.set(__self__, "tolerations", tolerations)
1653
2222
 
1654
2223
  @property
1655
2224
  @pulumi.getter
1656
- def device(self) -> str:
2225
+ def device(self) -> builtins.str:
1657
2226
  """
1658
2227
  Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
1659
2228
  """
@@ -1661,7 +2230,7 @@ class DeviceRequestAllocationResult(dict):
1661
2230
 
1662
2231
  @property
1663
2232
  @pulumi.getter
1664
- def driver(self) -> str:
2233
+ def driver(self) -> builtins.str:
1665
2234
  """
1666
2235
  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.
1667
2236
 
@@ -1671,7 +2240,7 @@ class DeviceRequestAllocationResult(dict):
1671
2240
 
1672
2241
  @property
1673
2242
  @pulumi.getter
1674
- def pool(self) -> str:
2243
+ def pool(self) -> builtins.str:
1675
2244
  """
1676
2245
  This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
1677
2246
 
@@ -1681,15 +2250,17 @@ class DeviceRequestAllocationResult(dict):
1681
2250
 
1682
2251
  @property
1683
2252
  @pulumi.getter
1684
- def request(self) -> str:
2253
+ def request(self) -> builtins.str:
1685
2254
  """
1686
- 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.
2255
+ 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>.
2256
+
2257
+ Multiple devices may have been allocated per request.
1687
2258
  """
1688
2259
  return pulumi.get(self, "request")
1689
2260
 
1690
2261
  @property
1691
2262
  @pulumi.getter(name="adminAccess")
1692
- def admin_access(self) -> Optional[bool]:
2263
+ def admin_access(self) -> Optional[builtins.bool]:
1693
2264
  """
1694
2265
  AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1695
2266
 
@@ -1697,6 +2268,18 @@ class DeviceRequestAllocationResult(dict):
1697
2268
  """
1698
2269
  return pulumi.get(self, "admin_access")
1699
2270
 
2271
+ @property
2272
+ @pulumi.getter
2273
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceToleration']]:
2274
+ """
2275
+ A copy of all tolerations specified in the request at the time when the device got allocated.
2276
+
2277
+ The maximum number of tolerations is 16.
2278
+
2279
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2280
+ """
2281
+ return pulumi.get(self, "tolerations")
2282
+
1700
2283
 
1701
2284
  @pulumi.output_type
1702
2285
  class DeviceRequestAllocationResultPatch(dict):
@@ -1721,24 +2304,32 @@ class DeviceRequestAllocationResultPatch(dict):
1721
2304
  return super().get(key, default)
1722
2305
 
1723
2306
  def __init__(__self__, *,
1724
- admin_access: Optional[bool] = None,
1725
- device: Optional[str] = None,
1726
- driver: Optional[str] = None,
1727
- pool: Optional[str] = None,
1728
- request: Optional[str] = None):
2307
+ admin_access: Optional[builtins.bool] = None,
2308
+ device: Optional[builtins.str] = None,
2309
+ driver: Optional[builtins.str] = None,
2310
+ pool: Optional[builtins.str] = None,
2311
+ request: Optional[builtins.str] = None,
2312
+ tolerations: Optional[Sequence['outputs.DeviceTolerationPatch']] = None):
1729
2313
  """
1730
2314
  DeviceRequestAllocationResult contains the allocation result for one request.
1731
- :param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
2315
+ :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.
1732
2316
 
1733
2317
  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.
1734
- :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
1735
- :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.
2318
+ :param builtins.str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
2319
+ :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.
1736
2320
 
1737
2321
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
1738
- :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>`).
2322
+ :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>`).
1739
2323
 
1740
2324
  Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
1741
- :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.
2325
+ :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>.
2326
+
2327
+ Multiple devices may have been allocated per request.
2328
+ :param Sequence['DeviceTolerationPatchArgs'] tolerations: A copy of all tolerations specified in the request at the time when the device got allocated.
2329
+
2330
+ The maximum number of tolerations is 16.
2331
+
2332
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
1742
2333
  """
1743
2334
  if admin_access is not None:
1744
2335
  pulumi.set(__self__, "admin_access", admin_access)
@@ -1750,122 +2341,558 @@ class DeviceRequestAllocationResultPatch(dict):
1750
2341
  pulumi.set(__self__, "pool", pool)
1751
2342
  if request is not None:
1752
2343
  pulumi.set(__self__, "request", request)
2344
+ if tolerations is not None:
2345
+ pulumi.set(__self__, "tolerations", tolerations)
1753
2346
 
1754
2347
  @property
1755
2348
  @pulumi.getter(name="adminAccess")
1756
- def admin_access(self) -> Optional[bool]:
2349
+ def admin_access(self) -> Optional[builtins.bool]:
1757
2350
  """
1758
2351
  AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
1759
2352
 
1760
2353
  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.
1761
2354
  """
1762
- return pulumi.get(self, "admin_access")
2355
+ return pulumi.get(self, "admin_access")
2356
+
2357
+ @property
2358
+ @pulumi.getter
2359
+ def device(self) -> Optional[builtins.str]:
2360
+ """
2361
+ Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
2362
+ """
2363
+ return pulumi.get(self, "device")
2364
+
2365
+ @property
2366
+ @pulumi.getter
2367
+ def driver(self) -> Optional[builtins.str]:
2368
+ """
2369
+ 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.
2370
+
2371
+ Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
2372
+ """
2373
+ return pulumi.get(self, "driver")
2374
+
2375
+ @property
2376
+ @pulumi.getter
2377
+ def pool(self) -> Optional[builtins.str]:
2378
+ """
2379
+ This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
2380
+
2381
+ Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
2382
+ """
2383
+ return pulumi.get(self, "pool")
2384
+
2385
+ @property
2386
+ @pulumi.getter
2387
+ def request(self) -> Optional[builtins.str]:
2388
+ """
2389
+ 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>.
2390
+
2391
+ Multiple devices may have been allocated per request.
2392
+ """
2393
+ return pulumi.get(self, "request")
2394
+
2395
+ @property
2396
+ @pulumi.getter
2397
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceTolerationPatch']]:
2398
+ """
2399
+ A copy of all tolerations specified in the request at the time when the device got allocated.
2400
+
2401
+ The maximum number of tolerations is 16.
2402
+
2403
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2404
+ """
2405
+ return pulumi.get(self, "tolerations")
2406
+
2407
+
2408
+ @pulumi.output_type
2409
+ class DeviceRequestPatch(dict):
2410
+ """
2411
+ 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.
2412
+ """
2413
+ @staticmethod
2414
+ def __key_warning(key: str):
2415
+ suggest = None
2416
+ if key == "adminAccess":
2417
+ suggest = "admin_access"
2418
+ elif key == "allocationMode":
2419
+ suggest = "allocation_mode"
2420
+ elif key == "deviceClassName":
2421
+ suggest = "device_class_name"
2422
+ elif key == "firstAvailable":
2423
+ suggest = "first_available"
2424
+
2425
+ if suggest:
2426
+ pulumi.log.warn(f"Key '{key}' not found in DeviceRequestPatch. Access the value via the '{suggest}' property getter instead.")
2427
+
2428
+ def __getitem__(self, key: str) -> Any:
2429
+ DeviceRequestPatch.__key_warning(key)
2430
+ return super().__getitem__(key)
2431
+
2432
+ def get(self, key: str, default = None) -> Any:
2433
+ DeviceRequestPatch.__key_warning(key)
2434
+ return super().get(key, default)
2435
+
2436
+ def __init__(__self__, *,
2437
+ admin_access: Optional[builtins.bool] = None,
2438
+ allocation_mode: Optional[builtins.str] = None,
2439
+ count: Optional[builtins.int] = None,
2440
+ device_class_name: Optional[builtins.str] = None,
2441
+ first_available: Optional[Sequence['outputs.DeviceSubRequestPatch']] = None,
2442
+ name: Optional[builtins.str] = None,
2443
+ selectors: Optional[Sequence['outputs.DeviceSelectorPatch']] = None,
2444
+ tolerations: Optional[Sequence['outputs.DeviceTolerationPatch']] = None):
2445
+ """
2446
+ 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.
2447
+ :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.
2448
+
2449
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2450
+
2451
+ 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.
2452
+ :param builtins.str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2453
+
2454
+ - ExactCount: This request is for a specific number of devices.
2455
+ This is the default. The exact number is provided in the
2456
+ count field.
2457
+
2458
+ - All: This request is for all of the matching devices in a pool.
2459
+ At least one device must exist on the node for the allocation to succeed.
2460
+ Allocation will fail if some devices are already allocated,
2461
+ unless adminAccess is requested.
2462
+
2463
+ 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.
2464
+
2465
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2466
+
2467
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2468
+ :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.
2469
+
2470
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2471
+ :param builtins.str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2472
+
2473
+ 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.
2474
+
2475
+ 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.
2476
+ :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.
2477
+
2478
+ This field may only be set in the entries of DeviceClaim.Requests.
2479
+
2480
+ 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.
2481
+ :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.
2482
+
2483
+ Must be a DNS label and unique among all DeviceRequests in a ResourceClaim.
2484
+ :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.
2485
+
2486
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2487
+ :param Sequence['DeviceTolerationPatchArgs'] tolerations: If specified, the request's tolerations.
2488
+
2489
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2490
+
2491
+ 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.
2492
+
2493
+ The maximum number of tolerations is 16.
2494
+
2495
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2496
+
2497
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2498
+ """
2499
+ if admin_access is not None:
2500
+ pulumi.set(__self__, "admin_access", admin_access)
2501
+ if allocation_mode is not None:
2502
+ pulumi.set(__self__, "allocation_mode", allocation_mode)
2503
+ if count is not None:
2504
+ pulumi.set(__self__, "count", count)
2505
+ if device_class_name is not None:
2506
+ pulumi.set(__self__, "device_class_name", device_class_name)
2507
+ if first_available is not None:
2508
+ pulumi.set(__self__, "first_available", first_available)
2509
+ if name is not None:
2510
+ pulumi.set(__self__, "name", name)
2511
+ if selectors is not None:
2512
+ pulumi.set(__self__, "selectors", selectors)
2513
+ if tolerations is not None:
2514
+ pulumi.set(__self__, "tolerations", tolerations)
2515
+
2516
+ @property
2517
+ @pulumi.getter(name="adminAccess")
2518
+ def admin_access(self) -> Optional[builtins.bool]:
2519
+ """
2520
+ 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.
2521
+
2522
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2523
+
2524
+ 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.
2525
+ """
2526
+ return pulumi.get(self, "admin_access")
2527
+
2528
+ @property
2529
+ @pulumi.getter(name="allocationMode")
2530
+ def allocation_mode(self) -> Optional[builtins.str]:
2531
+ """
2532
+ AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2533
+
2534
+ - ExactCount: This request is for a specific number of devices.
2535
+ This is the default. The exact number is provided in the
2536
+ count field.
2537
+
2538
+ - All: This request is for all of the matching devices in a pool.
2539
+ At least one device must exist on the node for the allocation to succeed.
2540
+ Allocation will fail if some devices are already allocated,
2541
+ unless adminAccess is requested.
2542
+
2543
+ 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.
2544
+
2545
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2546
+
2547
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2548
+ """
2549
+ return pulumi.get(self, "allocation_mode")
2550
+
2551
+ @property
2552
+ @pulumi.getter
2553
+ def count(self) -> Optional[builtins.int]:
2554
+ """
2555
+ 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.
2556
+
2557
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2558
+ """
2559
+ return pulumi.get(self, "count")
2560
+
2561
+ @property
2562
+ @pulumi.getter(name="deviceClassName")
2563
+ def device_class_name(self) -> Optional[builtins.str]:
2564
+ """
2565
+ DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2566
+
2567
+ 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.
2568
+
2569
+ 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.
2570
+ """
2571
+ return pulumi.get(self, "device_class_name")
2572
+
2573
+ @property
2574
+ @pulumi.getter(name="firstAvailable")
2575
+ def first_available(self) -> Optional[Sequence['outputs.DeviceSubRequestPatch']]:
2576
+ """
2577
+ 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.
2578
+
2579
+ This field may only be set in the entries of DeviceClaim.Requests.
2580
+
2581
+ 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.
2582
+ """
2583
+ return pulumi.get(self, "first_available")
2584
+
2585
+ @property
2586
+ @pulumi.getter
2587
+ def name(self) -> Optional[builtins.str]:
2588
+ """
2589
+ Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
2590
+
2591
+ Must be a DNS label and unique among all DeviceRequests in a ResourceClaim.
2592
+ """
2593
+ return pulumi.get(self, "name")
2594
+
2595
+ @property
2596
+ @pulumi.getter
2597
+ def selectors(self) -> Optional[Sequence['outputs.DeviceSelectorPatch']]:
2598
+ """
2599
+ 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.
2600
+
2601
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2602
+ """
2603
+ return pulumi.get(self, "selectors")
2604
+
2605
+ @property
2606
+ @pulumi.getter
2607
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceTolerationPatch']]:
2608
+ """
2609
+ If specified, the request's tolerations.
2610
+
2611
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2612
+
2613
+ 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.
2614
+
2615
+ The maximum number of tolerations is 16.
2616
+
2617
+ This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.
2618
+
2619
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2620
+ """
2621
+ return pulumi.get(self, "tolerations")
2622
+
2623
+
2624
+ @pulumi.output_type
2625
+ class DeviceSelector(dict):
2626
+ """
2627
+ DeviceSelector must have exactly one field set.
2628
+ """
2629
+ def __init__(__self__, *,
2630
+ cel: Optional['outputs.CELDeviceSelector'] = None):
2631
+ """
2632
+ DeviceSelector must have exactly one field set.
2633
+ :param 'CELDeviceSelectorArgs' cel: CEL contains a CEL expression for selecting a device.
2634
+ """
2635
+ if cel is not None:
2636
+ pulumi.set(__self__, "cel", cel)
2637
+
2638
+ @property
2639
+ @pulumi.getter
2640
+ def cel(self) -> Optional['outputs.CELDeviceSelector']:
2641
+ """
2642
+ CEL contains a CEL expression for selecting a device.
2643
+ """
2644
+ return pulumi.get(self, "cel")
2645
+
2646
+
2647
+ @pulumi.output_type
2648
+ class DeviceSelectorPatch(dict):
2649
+ """
2650
+ DeviceSelector must have exactly one field set.
2651
+ """
2652
+ def __init__(__self__, *,
2653
+ cel: Optional['outputs.CELDeviceSelectorPatch'] = None):
2654
+ """
2655
+ DeviceSelector must have exactly one field set.
2656
+ :param 'CELDeviceSelectorPatchArgs' cel: CEL contains a CEL expression for selecting a device.
2657
+ """
2658
+ if cel is not None:
2659
+ pulumi.set(__self__, "cel", cel)
2660
+
2661
+ @property
2662
+ @pulumi.getter
2663
+ def cel(self) -> Optional['outputs.CELDeviceSelectorPatch']:
2664
+ """
2665
+ CEL contains a CEL expression for selecting a device.
2666
+ """
2667
+ return pulumi.get(self, "cel")
2668
+
2669
+
2670
+ @pulumi.output_type
2671
+ class DeviceSubRequest(dict):
2672
+ """
2673
+ 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.
2674
+
2675
+ 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.
2676
+ """
2677
+ @staticmethod
2678
+ def __key_warning(key: str):
2679
+ suggest = None
2680
+ if key == "deviceClassName":
2681
+ suggest = "device_class_name"
2682
+ elif key == "allocationMode":
2683
+ suggest = "allocation_mode"
2684
+
2685
+ if suggest:
2686
+ pulumi.log.warn(f"Key '{key}' not found in DeviceSubRequest. Access the value via the '{suggest}' property getter instead.")
2687
+
2688
+ def __getitem__(self, key: str) -> Any:
2689
+ DeviceSubRequest.__key_warning(key)
2690
+ return super().__getitem__(key)
2691
+
2692
+ def get(self, key: str, default = None) -> Any:
2693
+ DeviceSubRequest.__key_warning(key)
2694
+ return super().get(key, default)
2695
+
2696
+ def __init__(__self__, *,
2697
+ device_class_name: builtins.str,
2698
+ name: builtins.str,
2699
+ allocation_mode: Optional[builtins.str] = None,
2700
+ count: Optional[builtins.int] = None,
2701
+ selectors: Optional[Sequence['outputs.DeviceSelector']] = None,
2702
+ tolerations: Optional[Sequence['outputs.DeviceToleration']] = None):
2703
+ """
2704
+ 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.
2705
+
2706
+ 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.
2707
+ :param builtins.str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.
2708
+
2709
+ A class is required. Which classes are available depends on the cluster.
2710
+
2711
+ 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.
2712
+ :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>.
2713
+
2714
+ Must be a DNS label.
2715
+ :param builtins.str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:
2716
+
2717
+ - ExactCount: This request is for a specific number of devices.
2718
+ This is the default. The exact number is provided in the
2719
+ count field.
2720
+
2721
+ - All: This subrequest is for all of the matching devices in a pool.
2722
+ Allocation will fail if some devices are already allocated,
2723
+ unless adminAccess is requested.
2724
+
2725
+ 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 subrequests must specify this field.
2726
+
2727
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2728
+ :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.
2729
+ :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 subrequest. All selectors must be satisfied for a device to be considered.
2730
+ :param Sequence['DeviceTolerationArgs'] tolerations: If specified, the request's tolerations.
2731
+
2732
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2733
+
2734
+ 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.
2735
+
2736
+ The maximum number of tolerations is 16.
2737
+
2738
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2739
+ """
2740
+ pulumi.set(__self__, "device_class_name", device_class_name)
2741
+ pulumi.set(__self__, "name", name)
2742
+ if allocation_mode is not None:
2743
+ pulumi.set(__self__, "allocation_mode", allocation_mode)
2744
+ if count is not None:
2745
+ pulumi.set(__self__, "count", count)
2746
+ if selectors is not None:
2747
+ pulumi.set(__self__, "selectors", selectors)
2748
+ if tolerations is not None:
2749
+ pulumi.set(__self__, "tolerations", tolerations)
2750
+
2751
+ @property
2752
+ @pulumi.getter(name="deviceClassName")
2753
+ def device_class_name(self) -> builtins.str:
2754
+ """
2755
+ DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.
2756
+
2757
+ A class is required. Which classes are available depends on the cluster.
2758
+
2759
+ 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.
2760
+ """
2761
+ return pulumi.get(self, "device_class_name")
2762
+
2763
+ @property
2764
+ @pulumi.getter
2765
+ def name(self) -> builtins.str:
2766
+ """
2767
+ 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>.
2768
+
2769
+ Must be a DNS label.
2770
+ """
2771
+ return pulumi.get(self, "name")
2772
+
2773
+ @property
2774
+ @pulumi.getter(name="allocationMode")
2775
+ def allocation_mode(self) -> Optional[builtins.str]:
2776
+ """
2777
+ AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:
2778
+
2779
+ - ExactCount: This request is for a specific number of devices.
2780
+ This is the default. The exact number is provided in the
2781
+ count field.
2782
+
2783
+ - All: This subrequest is for all of the matching devices in a pool.
2784
+ Allocation will fail if some devices are already allocated,
2785
+ unless adminAccess is requested.
2786
+
2787
+ 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 subrequests must specify this field.
2788
+
2789
+ More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
2790
+ """
2791
+ return pulumi.get(self, "allocation_mode")
1763
2792
 
1764
2793
  @property
1765
2794
  @pulumi.getter
1766
- def device(self) -> Optional[str]:
2795
+ def count(self) -> Optional[builtins.int]:
1767
2796
  """
1768
- Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
2797
+ 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.
1769
2798
  """
1770
- return pulumi.get(self, "device")
2799
+ return pulumi.get(self, "count")
1771
2800
 
1772
2801
  @property
1773
2802
  @pulumi.getter
1774
- def driver(self) -> Optional[str]:
2803
+ def selectors(self) -> Optional[Sequence['outputs.DeviceSelector']]:
1775
2804
  """
1776
- 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.
1777
-
1778
- Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
2805
+ Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.
1779
2806
  """
1780
- return pulumi.get(self, "driver")
2807
+ return pulumi.get(self, "selectors")
1781
2808
 
1782
2809
  @property
1783
2810
  @pulumi.getter
1784
- def pool(self) -> Optional[str]:
2811
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceToleration']]:
1785
2812
  """
1786
- This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
2813
+ If specified, the request's tolerations.
1787
2814
 
1788
- Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
1789
- """
1790
- return pulumi.get(self, "pool")
2815
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
1791
2816
 
1792
- @property
1793
- @pulumi.getter
1794
- def request(self) -> Optional[str]:
1795
- """
1796
- 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.
2817
+ 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.
2818
+
2819
+ The maximum number of tolerations is 16.
2820
+
2821
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
1797
2822
  """
1798
- return pulumi.get(self, "request")
2823
+ return pulumi.get(self, "tolerations")
1799
2824
 
1800
2825
 
1801
2826
  @pulumi.output_type
1802
- class DeviceRequestPatch(dict):
2827
+ class DeviceSubRequestPatch(dict):
1803
2828
  """
1804
- 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.
2829
+ 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.
1805
2830
 
1806
- 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.
2831
+ 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.
1807
2832
  """
1808
2833
  @staticmethod
1809
2834
  def __key_warning(key: str):
1810
2835
  suggest = None
1811
- if key == "adminAccess":
1812
- suggest = "admin_access"
1813
- elif key == "allocationMode":
2836
+ if key == "allocationMode":
1814
2837
  suggest = "allocation_mode"
1815
2838
  elif key == "deviceClassName":
1816
2839
  suggest = "device_class_name"
1817
2840
 
1818
2841
  if suggest:
1819
- pulumi.log.warn(f"Key '{key}' not found in DeviceRequestPatch. Access the value via the '{suggest}' property getter instead.")
2842
+ pulumi.log.warn(f"Key '{key}' not found in DeviceSubRequestPatch. Access the value via the '{suggest}' property getter instead.")
1820
2843
 
1821
2844
  def __getitem__(self, key: str) -> Any:
1822
- DeviceRequestPatch.__key_warning(key)
2845
+ DeviceSubRequestPatch.__key_warning(key)
1823
2846
  return super().__getitem__(key)
1824
2847
 
1825
2848
  def get(self, key: str, default = None) -> Any:
1826
- DeviceRequestPatch.__key_warning(key)
2849
+ DeviceSubRequestPatch.__key_warning(key)
1827
2850
  return super().get(key, default)
1828
2851
 
1829
2852
  def __init__(__self__, *,
1830
- admin_access: Optional[bool] = None,
1831
- allocation_mode: Optional[str] = None,
1832
- count: Optional[int] = None,
1833
- device_class_name: Optional[str] = None,
1834
- name: Optional[str] = None,
1835
- selectors: Optional[Sequence['outputs.DeviceSelectorPatch']] = None):
2853
+ allocation_mode: Optional[builtins.str] = None,
2854
+ count: Optional[builtins.int] = None,
2855
+ device_class_name: Optional[builtins.str] = None,
2856
+ name: Optional[builtins.str] = None,
2857
+ selectors: Optional[Sequence['outputs.DeviceSelectorPatch']] = None,
2858
+ tolerations: Optional[Sequence['outputs.DeviceTolerationPatch']] = None):
1836
2859
  """
1837
- 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.
2860
+ 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.
1838
2861
 
1839
- 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.
1840
- :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.
1841
-
1842
- 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.
1843
- :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2862
+ 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.
2863
+ :param builtins.str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:
1844
2864
 
1845
2865
  - ExactCount: This request is for a specific number of devices.
1846
2866
  This is the default. The exact number is provided in the
1847
2867
  count field.
1848
2868
 
1849
- - All: This request is for all of the matching devices in a pool.
2869
+ - All: This subrequest is for all of the matching devices in a pool.
1850
2870
  Allocation will fail if some devices are already allocated,
1851
2871
  unless adminAccess is requested.
1852
2872
 
1853
- 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.
2873
+ 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 subrequests must specify this field.
1854
2874
 
1855
2875
  More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
1856
- :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.
1857
- :param str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2876
+ :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.
2877
+ :param builtins.str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.
1858
2878
 
1859
2879
  A class is required. Which classes are available depends on the cluster.
1860
2880
 
1861
2881
  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.
1862
- :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.
2882
+ :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>.
1863
2883
 
1864
2884
  Must be a DNS label.
1865
- :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.
2885
+ :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 subrequest. All selectors must be satisfied for a device to be considered.
2886
+ :param Sequence['DeviceTolerationPatchArgs'] tolerations: If specified, the request's tolerations.
2887
+
2888
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2889
+
2890
+ 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.
2891
+
2892
+ The maximum number of tolerations is 16.
2893
+
2894
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
1866
2895
  """
1867
- if admin_access is not None:
1868
- pulumi.set(__self__, "admin_access", admin_access)
1869
2896
  if allocation_mode is not None:
1870
2897
  pulumi.set(__self__, "allocation_mode", allocation_mode)
1871
2898
  if count is not None:
@@ -1876,32 +2903,24 @@ class DeviceRequestPatch(dict):
1876
2903
  pulumi.set(__self__, "name", name)
1877
2904
  if selectors is not None:
1878
2905
  pulumi.set(__self__, "selectors", selectors)
1879
-
1880
- @property
1881
- @pulumi.getter(name="adminAccess")
1882
- def admin_access(self) -> Optional[bool]:
1883
- """
1884
- 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.
1885
-
1886
- 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.
1887
- """
1888
- return pulumi.get(self, "admin_access")
2906
+ if tolerations is not None:
2907
+ pulumi.set(__self__, "tolerations", tolerations)
1889
2908
 
1890
2909
  @property
1891
2910
  @pulumi.getter(name="allocationMode")
1892
- def allocation_mode(self) -> Optional[str]:
2911
+ def allocation_mode(self) -> Optional[builtins.str]:
1893
2912
  """
1894
- AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
2913
+ AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are:
1895
2914
 
1896
2915
  - ExactCount: This request is for a specific number of devices.
1897
2916
  This is the default. The exact number is provided in the
1898
2917
  count field.
1899
2918
 
1900
- - All: This request is for all of the matching devices in a pool.
2919
+ - All: This subrequest is for all of the matching devices in a pool.
1901
2920
  Allocation will fail if some devices are already allocated,
1902
2921
  unless adminAccess is requested.
1903
2922
 
1904
- 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.
2923
+ 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 subrequests must specify this field.
1905
2924
 
1906
2925
  More modes may get added in the future. Clients must refuse to handle requests with unknown modes.
1907
2926
  """
@@ -1909,7 +2928,7 @@ class DeviceRequestPatch(dict):
1909
2928
 
1910
2929
  @property
1911
2930
  @pulumi.getter
1912
- def count(self) -> Optional[int]:
2931
+ def count(self) -> Optional[builtins.int]:
1913
2932
  """
1914
2933
  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.
1915
2934
  """
@@ -1917,9 +2936,9 @@ class DeviceRequestPatch(dict):
1917
2936
 
1918
2937
  @property
1919
2938
  @pulumi.getter(name="deviceClassName")
1920
- def device_class_name(self) -> Optional[str]:
2939
+ def device_class_name(self) -> Optional[builtins.str]:
1921
2940
  """
1922
- DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.
2941
+ DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest.
1923
2942
 
1924
2943
  A class is required. Which classes are available depends on the cluster.
1925
2944
 
@@ -1929,9 +2948,9 @@ class DeviceRequestPatch(dict):
1929
2948
 
1930
2949
  @property
1931
2950
  @pulumi.getter
1932
- def name(self) -> Optional[str]:
2951
+ def name(self) -> Optional[builtins.str]:
1933
2952
  """
1934
- Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.
2953
+ 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>.
1935
2954
 
1936
2955
  Must be a DNS label.
1937
2956
  """
@@ -1941,55 +2960,351 @@ class DeviceRequestPatch(dict):
1941
2960
  @pulumi.getter
1942
2961
  def selectors(self) -> Optional[Sequence['outputs.DeviceSelectorPatch']]:
1943
2962
  """
1944
- 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.
2963
+ Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.
1945
2964
  """
1946
2965
  return pulumi.get(self, "selectors")
1947
2966
 
2967
+ @property
2968
+ @pulumi.getter
2969
+ def tolerations(self) -> Optional[Sequence['outputs.DeviceTolerationPatch']]:
2970
+ """
2971
+ If specified, the request's tolerations.
2972
+
2973
+ Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute.
2974
+
2975
+ 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.
2976
+
2977
+ The maximum number of tolerations is 16.
2978
+
2979
+ This is an alpha field and requires enabling the DRADeviceTaints feature gate.
2980
+ """
2981
+ return pulumi.get(self, "tolerations")
2982
+
1948
2983
 
1949
2984
  @pulumi.output_type
1950
- class DeviceSelector(dict):
2985
+ class DeviceTaint(dict):
1951
2986
  """
1952
- DeviceSelector must have exactly one field set.
2987
+ 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.
1953
2988
  """
2989
+ @staticmethod
2990
+ def __key_warning(key: str):
2991
+ suggest = None
2992
+ if key == "timeAdded":
2993
+ suggest = "time_added"
2994
+
2995
+ if suggest:
2996
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaint. Access the value via the '{suggest}' property getter instead.")
2997
+
2998
+ def __getitem__(self, key: str) -> Any:
2999
+ DeviceTaint.__key_warning(key)
3000
+ return super().__getitem__(key)
3001
+
3002
+ def get(self, key: str, default = None) -> Any:
3003
+ DeviceTaint.__key_warning(key)
3004
+ return super().get(key, default)
3005
+
1954
3006
  def __init__(__self__, *,
1955
- cel: Optional['outputs.CELDeviceSelector'] = None):
3007
+ effect: builtins.str,
3008
+ key: builtins.str,
3009
+ time_added: Optional[builtins.str] = None,
3010
+ value: Optional[builtins.str] = None):
1956
3011
  """
1957
- DeviceSelector must have exactly one field set.
1958
- :param 'CELDeviceSelectorArgs' cel: CEL contains a CEL expression for selecting a device.
3012
+ 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.
3013
+ :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.
3014
+ :param builtins.str key: The taint key to be applied to a device. Must be a label name.
3015
+ :param builtins.str time_added: TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.
3016
+ :param builtins.str value: The taint value corresponding to the taint key. Must be a label value.
1959
3017
  """
1960
- if cel is not None:
1961
- pulumi.set(__self__, "cel", cel)
3018
+ pulumi.set(__self__, "effect", effect)
3019
+ pulumi.set(__self__, "key", key)
3020
+ if time_added is not None:
3021
+ pulumi.set(__self__, "time_added", time_added)
3022
+ if value is not None:
3023
+ pulumi.set(__self__, "value", value)
1962
3024
 
1963
3025
  @property
1964
3026
  @pulumi.getter
1965
- def cel(self) -> Optional['outputs.CELDeviceSelector']:
3027
+ def effect(self) -> builtins.str:
1966
3028
  """
1967
- CEL contains a CEL expression for selecting a device.
3029
+ 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.
1968
3030
  """
1969
- return pulumi.get(self, "cel")
3031
+ return pulumi.get(self, "effect")
3032
+
3033
+ @property
3034
+ @pulumi.getter
3035
+ def key(self) -> builtins.str:
3036
+ """
3037
+ The taint key to be applied to a device. Must be a label name.
3038
+ """
3039
+ return pulumi.get(self, "key")
3040
+
3041
+ @property
3042
+ @pulumi.getter(name="timeAdded")
3043
+ def time_added(self) -> Optional[builtins.str]:
3044
+ """
3045
+ TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.
3046
+ """
3047
+ return pulumi.get(self, "time_added")
3048
+
3049
+ @property
3050
+ @pulumi.getter
3051
+ def value(self) -> Optional[builtins.str]:
3052
+ """
3053
+ The taint value corresponding to the taint key. Must be a label value.
3054
+ """
3055
+ return pulumi.get(self, "value")
1970
3056
 
1971
3057
 
1972
3058
  @pulumi.output_type
1973
- class DeviceSelectorPatch(dict):
3059
+ class DeviceTaintPatch(dict):
1974
3060
  """
1975
- DeviceSelector must have exactly one field set.
3061
+ 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.
1976
3062
  """
3063
+ @staticmethod
3064
+ def __key_warning(key: str):
3065
+ suggest = None
3066
+ if key == "timeAdded":
3067
+ suggest = "time_added"
3068
+
3069
+ if suggest:
3070
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTaintPatch. Access the value via the '{suggest}' property getter instead.")
3071
+
3072
+ def __getitem__(self, key: str) -> Any:
3073
+ DeviceTaintPatch.__key_warning(key)
3074
+ return super().__getitem__(key)
3075
+
3076
+ def get(self, key: str, default = None) -> Any:
3077
+ DeviceTaintPatch.__key_warning(key)
3078
+ return super().get(key, default)
3079
+
1977
3080
  def __init__(__self__, *,
1978
- cel: Optional['outputs.CELDeviceSelectorPatch'] = None):
3081
+ effect: Optional[builtins.str] = None,
3082
+ key: Optional[builtins.str] = None,
3083
+ time_added: Optional[builtins.str] = None,
3084
+ value: Optional[builtins.str] = None):
3085
+ """
3086
+ 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.
3087
+ :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.
3088
+ :param builtins.str key: The taint key to be applied to a device. Must be a label name.
3089
+ :param builtins.str time_added: TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.
3090
+ :param builtins.str value: The taint value corresponding to the taint key. Must be a label value.
3091
+ """
3092
+ if effect is not None:
3093
+ pulumi.set(__self__, "effect", effect)
3094
+ if key is not None:
3095
+ pulumi.set(__self__, "key", key)
3096
+ if time_added is not None:
3097
+ pulumi.set(__self__, "time_added", time_added)
3098
+ if value is not None:
3099
+ pulumi.set(__self__, "value", value)
3100
+
3101
+ @property
3102
+ @pulumi.getter
3103
+ def effect(self) -> Optional[builtins.str]:
1979
3104
  """
1980
- DeviceSelector must have exactly one field set.
1981
- :param 'CELDeviceSelectorPatchArgs' cel: CEL contains a CEL expression for selecting a device.
3105
+ 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.
1982
3106
  """
1983
- if cel is not None:
1984
- pulumi.set(__self__, "cel", cel)
3107
+ return pulumi.get(self, "effect")
1985
3108
 
1986
3109
  @property
1987
3110
  @pulumi.getter
1988
- def cel(self) -> Optional['outputs.CELDeviceSelectorPatch']:
3111
+ def key(self) -> Optional[builtins.str]:
1989
3112
  """
1990
- CEL contains a CEL expression for selecting a device.
3113
+ The taint key to be applied to a device. Must be a label name.
1991
3114
  """
1992
- return pulumi.get(self, "cel")
3115
+ return pulumi.get(self, "key")
3116
+
3117
+ @property
3118
+ @pulumi.getter(name="timeAdded")
3119
+ def time_added(self) -> Optional[builtins.str]:
3120
+ """
3121
+ TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.
3122
+ """
3123
+ return pulumi.get(self, "time_added")
3124
+
3125
+ @property
3126
+ @pulumi.getter
3127
+ def value(self) -> Optional[builtins.str]:
3128
+ """
3129
+ The taint value corresponding to the taint key. Must be a label value.
3130
+ """
3131
+ return pulumi.get(self, "value")
3132
+
3133
+
3134
+ @pulumi.output_type
3135
+ class DeviceToleration(dict):
3136
+ """
3137
+ The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3138
+ """
3139
+ @staticmethod
3140
+ def __key_warning(key: str):
3141
+ suggest = None
3142
+ if key == "tolerationSeconds":
3143
+ suggest = "toleration_seconds"
3144
+
3145
+ if suggest:
3146
+ pulumi.log.warn(f"Key '{key}' not found in DeviceToleration. Access the value via the '{suggest}' property getter instead.")
3147
+
3148
+ def __getitem__(self, key: str) -> Any:
3149
+ DeviceToleration.__key_warning(key)
3150
+ return super().__getitem__(key)
3151
+
3152
+ def get(self, key: str, default = None) -> Any:
3153
+ DeviceToleration.__key_warning(key)
3154
+ return super().get(key, default)
3155
+
3156
+ def __init__(__self__, *,
3157
+ effect: Optional[builtins.str] = None,
3158
+ key: Optional[builtins.str] = None,
3159
+ operator: Optional[builtins.str] = None,
3160
+ toleration_seconds: Optional[builtins.int] = None,
3161
+ value: Optional[builtins.str] = None):
3162
+ """
3163
+ The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3164
+ :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.
3165
+ :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.
3166
+ :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.
3167
+ :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>.
3168
+ :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.
3169
+ """
3170
+ if effect is not None:
3171
+ pulumi.set(__self__, "effect", effect)
3172
+ if key is not None:
3173
+ pulumi.set(__self__, "key", key)
3174
+ if operator is not None:
3175
+ pulumi.set(__self__, "operator", operator)
3176
+ if toleration_seconds is not None:
3177
+ pulumi.set(__self__, "toleration_seconds", toleration_seconds)
3178
+ if value is not None:
3179
+ pulumi.set(__self__, "value", value)
3180
+
3181
+ @property
3182
+ @pulumi.getter
3183
+ def effect(self) -> Optional[builtins.str]:
3184
+ """
3185
+ Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.
3186
+ """
3187
+ return pulumi.get(self, "effect")
3188
+
3189
+ @property
3190
+ @pulumi.getter
3191
+ def key(self) -> Optional[builtins.str]:
3192
+ """
3193
+ 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.
3194
+ """
3195
+ return pulumi.get(self, "key")
3196
+
3197
+ @property
3198
+ @pulumi.getter
3199
+ def operator(self) -> Optional[builtins.str]:
3200
+ """
3201
+ 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.
3202
+ """
3203
+ return pulumi.get(self, "operator")
3204
+
3205
+ @property
3206
+ @pulumi.getter(name="tolerationSeconds")
3207
+ def toleration_seconds(self) -> Optional[builtins.int]:
3208
+ """
3209
+ 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>.
3210
+ """
3211
+ return pulumi.get(self, "toleration_seconds")
3212
+
3213
+ @property
3214
+ @pulumi.getter
3215
+ def value(self) -> Optional[builtins.str]:
3216
+ """
3217
+ 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.
3218
+ """
3219
+ return pulumi.get(self, "value")
3220
+
3221
+
3222
+ @pulumi.output_type
3223
+ class DeviceTolerationPatch(dict):
3224
+ """
3225
+ The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3226
+ """
3227
+ @staticmethod
3228
+ def __key_warning(key: str):
3229
+ suggest = None
3230
+ if key == "tolerationSeconds":
3231
+ suggest = "toleration_seconds"
3232
+
3233
+ if suggest:
3234
+ pulumi.log.warn(f"Key '{key}' not found in DeviceTolerationPatch. Access the value via the '{suggest}' property getter instead.")
3235
+
3236
+ def __getitem__(self, key: str) -> Any:
3237
+ DeviceTolerationPatch.__key_warning(key)
3238
+ return super().__getitem__(key)
3239
+
3240
+ def get(self, key: str, default = None) -> Any:
3241
+ DeviceTolerationPatch.__key_warning(key)
3242
+ return super().get(key, default)
3243
+
3244
+ def __init__(__self__, *,
3245
+ effect: Optional[builtins.str] = None,
3246
+ key: Optional[builtins.str] = None,
3247
+ operator: Optional[builtins.str] = None,
3248
+ toleration_seconds: Optional[builtins.int] = None,
3249
+ value: Optional[builtins.str] = None):
3250
+ """
3251
+ The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3252
+ :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.
3253
+ :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.
3254
+ :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.
3255
+ :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>.
3256
+ :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.
3257
+ """
3258
+ if effect is not None:
3259
+ pulumi.set(__self__, "effect", effect)
3260
+ if key is not None:
3261
+ pulumi.set(__self__, "key", key)
3262
+ if operator is not None:
3263
+ pulumi.set(__self__, "operator", operator)
3264
+ if toleration_seconds is not None:
3265
+ pulumi.set(__self__, "toleration_seconds", toleration_seconds)
3266
+ if value is not None:
3267
+ pulumi.set(__self__, "value", value)
3268
+
3269
+ @property
3270
+ @pulumi.getter
3271
+ def effect(self) -> Optional[builtins.str]:
3272
+ """
3273
+ Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.
3274
+ """
3275
+ return pulumi.get(self, "effect")
3276
+
3277
+ @property
3278
+ @pulumi.getter
3279
+ def key(self) -> Optional[builtins.str]:
3280
+ """
3281
+ 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.
3282
+ """
3283
+ return pulumi.get(self, "key")
3284
+
3285
+ @property
3286
+ @pulumi.getter
3287
+ def operator(self) -> Optional[builtins.str]:
3288
+ """
3289
+ 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.
3290
+ """
3291
+ return pulumi.get(self, "operator")
3292
+
3293
+ @property
3294
+ @pulumi.getter(name="tolerationSeconds")
3295
+ def toleration_seconds(self) -> Optional[builtins.int]:
3296
+ """
3297
+ 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>.
3298
+ """
3299
+ return pulumi.get(self, "toleration_seconds")
3300
+
3301
+ @property
3302
+ @pulumi.getter
3303
+ def value(self) -> Optional[builtins.str]:
3304
+ """
3305
+ 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.
3306
+ """
3307
+ return pulumi.get(self, "value")
1993
3308
 
1994
3309
 
1995
3310
  @pulumi.output_type
@@ -2017,18 +3332,20 @@ class NetworkDeviceData(dict):
2017
3332
  return super().get(key, default)
2018
3333
 
2019
3334
  def __init__(__self__, *,
2020
- hardware_address: Optional[str] = None,
2021
- interface_name: Optional[str] = None,
2022
- ips: Optional[Sequence[str]] = None):
3335
+ hardware_address: Optional[builtins.str] = None,
3336
+ interface_name: Optional[builtins.str] = None,
3337
+ ips: Optional[Sequence[builtins.str]] = None):
2023
3338
  """
2024
3339
  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.
2025
- :param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
3340
+ :param builtins.str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2026
3341
 
2027
3342
  Must not be longer than 128 characters.
2028
- :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.
3343
+ :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.
2029
3344
 
2030
3345
  Must not be longer than 256 characters.
2031
- :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.
3346
+ :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.
3347
+
3348
+ Must not contain more than 16 entries.
2032
3349
  """
2033
3350
  if hardware_address is not None:
2034
3351
  pulumi.set(__self__, "hardware_address", hardware_address)
@@ -2039,7 +3356,7 @@ class NetworkDeviceData(dict):
2039
3356
 
2040
3357
  @property
2041
3358
  @pulumi.getter(name="hardwareAddress")
2042
- def hardware_address(self) -> Optional[str]:
3359
+ def hardware_address(self) -> Optional[builtins.str]:
2043
3360
  """
2044
3361
  HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2045
3362
 
@@ -2049,7 +3366,7 @@ class NetworkDeviceData(dict):
2049
3366
 
2050
3367
  @property
2051
3368
  @pulumi.getter(name="interfaceName")
2052
- def interface_name(self) -> Optional[str]:
3369
+ def interface_name(self) -> Optional[builtins.str]:
2053
3370
  """
2054
3371
  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.
2055
3372
 
@@ -2059,9 +3376,11 @@ class NetworkDeviceData(dict):
2059
3376
 
2060
3377
  @property
2061
3378
  @pulumi.getter
2062
- def ips(self) -> Optional[Sequence[str]]:
3379
+ def ips(self) -> Optional[Sequence[builtins.str]]:
2063
3380
  """
2064
3381
  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.
3382
+
3383
+ Must not contain more than 16 entries.
2065
3384
  """
2066
3385
  return pulumi.get(self, "ips")
2067
3386
 
@@ -2091,18 +3410,20 @@ class NetworkDeviceDataPatch(dict):
2091
3410
  return super().get(key, default)
2092
3411
 
2093
3412
  def __init__(__self__, *,
2094
- hardware_address: Optional[str] = None,
2095
- interface_name: Optional[str] = None,
2096
- ips: Optional[Sequence[str]] = None):
3413
+ hardware_address: Optional[builtins.str] = None,
3414
+ interface_name: Optional[builtins.str] = None,
3415
+ ips: Optional[Sequence[builtins.str]] = None):
2097
3416
  """
2098
3417
  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.
2099
- :param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
3418
+ :param builtins.str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2100
3419
 
2101
3420
  Must not be longer than 128 characters.
2102
- :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.
3421
+ :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.
2103
3422
 
2104
3423
  Must not be longer than 256 characters.
2105
- :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.
3424
+ :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.
3425
+
3426
+ Must not contain more than 16 entries.
2106
3427
  """
2107
3428
  if hardware_address is not None:
2108
3429
  pulumi.set(__self__, "hardware_address", hardware_address)
@@ -2113,7 +3434,7 @@ class NetworkDeviceDataPatch(dict):
2113
3434
 
2114
3435
  @property
2115
3436
  @pulumi.getter(name="hardwareAddress")
2116
- def hardware_address(self) -> Optional[str]:
3437
+ def hardware_address(self) -> Optional[builtins.str]:
2117
3438
  """
2118
3439
  HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
2119
3440
 
@@ -2123,7 +3444,7 @@ class NetworkDeviceDataPatch(dict):
2123
3444
 
2124
3445
  @property
2125
3446
  @pulumi.getter(name="interfaceName")
2126
- def interface_name(self) -> Optional[str]:
3447
+ def interface_name(self) -> Optional[builtins.str]:
2127
3448
  """
2128
3449
  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.
2129
3450
 
@@ -2133,9 +3454,11 @@ class NetworkDeviceDataPatch(dict):
2133
3454
 
2134
3455
  @property
2135
3456
  @pulumi.getter
2136
- def ips(self) -> Optional[Sequence[str]]:
3457
+ def ips(self) -> Optional[Sequence[builtins.str]]:
2137
3458
  """
2138
3459
  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.
3460
+
3461
+ Must not contain more than 16 entries.
2139
3462
  """
2140
3463
  return pulumi.get(self, "ips")
2141
3464
 
@@ -2146,11 +3469,11 @@ class OpaqueDeviceConfiguration(dict):
2146
3469
  OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.
2147
3470
  """
2148
3471
  def __init__(__self__, *,
2149
- driver: str,
3472
+ driver: builtins.str,
2150
3473
  parameters: Any):
2151
3474
  """
2152
3475
  OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.
2153
- :param str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
3476
+ :param builtins.str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
2154
3477
 
2155
3478
  An admission policy provided by the driver developer could use this to decide whether it needs to validate them.
2156
3479
 
@@ -2164,7 +3487,7 @@ class OpaqueDeviceConfiguration(dict):
2164
3487
 
2165
3488
  @property
2166
3489
  @pulumi.getter
2167
- def driver(self) -> str:
3490
+ def driver(self) -> builtins.str:
2168
3491
  """
2169
3492
  Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
2170
3493
 
@@ -2191,11 +3514,11 @@ class OpaqueDeviceConfigurationPatch(dict):
2191
3514
  OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.
2192
3515
  """
2193
3516
  def __init__(__self__, *,
2194
- driver: Optional[str] = None,
3517
+ driver: Optional[builtins.str] = None,
2195
3518
  parameters: Optional[Any] = None):
2196
3519
  """
2197
3520
  OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.
2198
- :param str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
3521
+ :param builtins.str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
2199
3522
 
2200
3523
  An admission policy provided by the driver developer could use this to decide whether it needs to validate them.
2201
3524
 
@@ -2211,7 +3534,7 @@ class OpaqueDeviceConfigurationPatch(dict):
2211
3534
 
2212
3535
  @property
2213
3536
  @pulumi.getter
2214
- def driver(self) -> Optional[str]:
3537
+ def driver(self) -> Optional[builtins.str]:
2215
3538
  """
2216
3539
  Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.
2217
3540
 
@@ -2258,8 +3581,8 @@ class ResourceClaim(dict):
2258
3581
 
2259
3582
  def __init__(__self__, *,
2260
3583
  spec: 'outputs.ResourceClaimSpec',
2261
- api_version: Optional[str] = None,
2262
- kind: Optional[str] = None,
3584
+ api_version: Optional[builtins.str] = None,
3585
+ kind: Optional[builtins.str] = None,
2263
3586
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None,
2264
3587
  status: Optional['outputs.ResourceClaimStatus'] = None):
2265
3588
  """
@@ -2267,8 +3590,8 @@ class ResourceClaim(dict):
2267
3590
 
2268
3591
  This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
2269
3592
  :param 'ResourceClaimSpecArgs' spec: Spec describes what is being requested and how to configure it. The spec is immutable.
2270
- :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
2271
- :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
3593
+ :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
3594
+ :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
2272
3595
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
2273
3596
  :param 'ResourceClaimStatusArgs' status: Status describes whether the claim is ready to use and what has been allocated.
2274
3597
  """
@@ -2292,7 +3615,7 @@ class ResourceClaim(dict):
2292
3615
 
2293
3616
  @property
2294
3617
  @pulumi.getter(name="apiVersion")
2295
- def api_version(self) -> Optional[str]:
3618
+ def api_version(self) -> Optional[builtins.str]:
2296
3619
  """
2297
3620
  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
2298
3621
  """
@@ -2300,7 +3623,7 @@ class ResourceClaim(dict):
2300
3623
 
2301
3624
  @property
2302
3625
  @pulumi.getter
2303
- def kind(self) -> Optional[str]:
3626
+ def kind(self) -> Optional[builtins.str]:
2304
3627
  """
2305
3628
  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
2306
3629
  """
@@ -2346,16 +3669,16 @@ class ResourceClaimConsumerReference(dict):
2346
3669
  return super().get(key, default)
2347
3670
 
2348
3671
  def __init__(__self__, *,
2349
- name: str,
2350
- resource: str,
2351
- uid: str,
2352
- api_group: Optional[str] = None):
3672
+ name: builtins.str,
3673
+ resource: builtins.str,
3674
+ uid: builtins.str,
3675
+ api_group: Optional[builtins.str] = None):
2353
3676
  """
2354
3677
  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.
2355
- :param str name: Name is the name of resource being referenced.
2356
- :param str resource: Resource is the type of resource being referenced, for example "pods".
2357
- :param str uid: UID identifies exactly one incarnation of the resource.
2358
- :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.
3678
+ :param builtins.str name: Name is the name of resource being referenced.
3679
+ :param builtins.str resource: Resource is the type of resource being referenced, for example "pods".
3680
+ :param builtins.str uid: UID identifies exactly one incarnation of the resource.
3681
+ :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.
2359
3682
  """
2360
3683
  pulumi.set(__self__, "name", name)
2361
3684
  pulumi.set(__self__, "resource", resource)
@@ -2365,7 +3688,7 @@ class ResourceClaimConsumerReference(dict):
2365
3688
 
2366
3689
  @property
2367
3690
  @pulumi.getter
2368
- def name(self) -> str:
3691
+ def name(self) -> builtins.str:
2369
3692
  """
2370
3693
  Name is the name of resource being referenced.
2371
3694
  """
@@ -2373,7 +3696,7 @@ class ResourceClaimConsumerReference(dict):
2373
3696
 
2374
3697
  @property
2375
3698
  @pulumi.getter
2376
- def resource(self) -> str:
3699
+ def resource(self) -> builtins.str:
2377
3700
  """
2378
3701
  Resource is the type of resource being referenced, for example "pods".
2379
3702
  """
@@ -2381,7 +3704,7 @@ class ResourceClaimConsumerReference(dict):
2381
3704
 
2382
3705
  @property
2383
3706
  @pulumi.getter
2384
- def uid(self) -> str:
3707
+ def uid(self) -> builtins.str:
2385
3708
  """
2386
3709
  UID identifies exactly one incarnation of the resource.
2387
3710
  """
@@ -2389,7 +3712,7 @@ class ResourceClaimConsumerReference(dict):
2389
3712
 
2390
3713
  @property
2391
3714
  @pulumi.getter(name="apiGroup")
2392
- def api_group(self) -> Optional[str]:
3715
+ def api_group(self) -> Optional[builtins.str]:
2393
3716
  """
2394
3717
  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.
2395
3718
  """
@@ -2419,16 +3742,16 @@ class ResourceClaimConsumerReferencePatch(dict):
2419
3742
  return super().get(key, default)
2420
3743
 
2421
3744
  def __init__(__self__, *,
2422
- api_group: Optional[str] = None,
2423
- name: Optional[str] = None,
2424
- resource: Optional[str] = None,
2425
- uid: Optional[str] = None):
3745
+ api_group: Optional[builtins.str] = None,
3746
+ name: Optional[builtins.str] = None,
3747
+ resource: Optional[builtins.str] = None,
3748
+ uid: Optional[builtins.str] = None):
2426
3749
  """
2427
3750
  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.
2428
- :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.
2429
- :param str name: Name is the name of resource being referenced.
2430
- :param str resource: Resource is the type of resource being referenced, for example "pods".
2431
- :param str uid: UID identifies exactly one incarnation of the resource.
3751
+ :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.
3752
+ :param builtins.str name: Name is the name of resource being referenced.
3753
+ :param builtins.str resource: Resource is the type of resource being referenced, for example "pods".
3754
+ :param builtins.str uid: UID identifies exactly one incarnation of the resource.
2432
3755
  """
2433
3756
  if api_group is not None:
2434
3757
  pulumi.set(__self__, "api_group", api_group)
@@ -2441,7 +3764,7 @@ class ResourceClaimConsumerReferencePatch(dict):
2441
3764
 
2442
3765
  @property
2443
3766
  @pulumi.getter(name="apiGroup")
2444
- def api_group(self) -> Optional[str]:
3767
+ def api_group(self) -> Optional[builtins.str]:
2445
3768
  """
2446
3769
  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.
2447
3770
  """
@@ -2449,7 +3772,7 @@ class ResourceClaimConsumerReferencePatch(dict):
2449
3772
 
2450
3773
  @property
2451
3774
  @pulumi.getter
2452
- def name(self) -> Optional[str]:
3775
+ def name(self) -> Optional[builtins.str]:
2453
3776
  """
2454
3777
  Name is the name of resource being referenced.
2455
3778
  """
@@ -2457,7 +3780,7 @@ class ResourceClaimConsumerReferencePatch(dict):
2457
3780
 
2458
3781
  @property
2459
3782
  @pulumi.getter
2460
- def resource(self) -> Optional[str]:
3783
+ def resource(self) -> Optional[builtins.str]:
2461
3784
  """
2462
3785
  Resource is the type of resource being referenced, for example "pods".
2463
3786
  """
@@ -2465,7 +3788,7 @@ class ResourceClaimConsumerReferencePatch(dict):
2465
3788
 
2466
3789
  @property
2467
3790
  @pulumi.getter
2468
- def uid(self) -> Optional[str]:
3791
+ def uid(self) -> Optional[builtins.str]:
2469
3792
  """
2470
3793
  UID identifies exactly one incarnation of the resource.
2471
3794
  """
@@ -2554,7 +3877,7 @@ class ResourceClaimStatus(dict):
2554
3877
 
2555
3878
  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.
2556
3879
 
2557
- There can be at most 32 such reservations. This may get increased in the future, but not reduced.
3880
+ There can be at most 256 such reservations. This may get increased in the future, but not reduced.
2558
3881
  """
2559
3882
  if allocation is not None:
2560
3883
  pulumi.set(__self__, "allocation", allocation)
@@ -2589,7 +3912,7 @@ class ResourceClaimStatus(dict):
2589
3912
 
2590
3913
  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.
2591
3914
 
2592
- There can be at most 32 such reservations. This may get increased in the future, but not reduced.
3915
+ There can be at most 256 such reservations. This may get increased in the future, but not reduced.
2593
3916
  """
2594
3917
  return pulumi.get(self, "reserved_for")
2595
3918
 
@@ -2630,7 +3953,7 @@ class ResourceClaimStatusPatch(dict):
2630
3953
 
2631
3954
  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.
2632
3955
 
2633
- There can be at most 32 such reservations. This may get increased in the future, but not reduced.
3956
+ There can be at most 256 such reservations. This may get increased in the future, but not reduced.
2634
3957
  """
2635
3958
  if allocation is not None:
2636
3959
  pulumi.set(__self__, "allocation", allocation)
@@ -2665,7 +3988,7 @@ class ResourceClaimStatusPatch(dict):
2665
3988
 
2666
3989
  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.
2667
3990
 
2668
- There can be at most 32 such reservations. This may get increased in the future, but not reduced.
3991
+ There can be at most 256 such reservations. This may get increased in the future, but not reduced.
2669
3992
  """
2670
3993
  return pulumi.get(self, "reserved_for")
2671
3994
 
@@ -2696,8 +4019,8 @@ class ResourceClaimTemplate(dict):
2696
4019
 
2697
4020
  def __init__(__self__, *,
2698
4021
  spec: 'outputs.ResourceClaimTemplateSpec',
2699
- api_version: Optional[str] = None,
2700
- kind: Optional[str] = None,
4022
+ api_version: Optional[builtins.str] = None,
4023
+ kind: Optional[builtins.str] = None,
2701
4024
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
2702
4025
  """
2703
4026
  ResourceClaimTemplate is used to produce ResourceClaim objects.
@@ -2706,8 +4029,8 @@ class ResourceClaimTemplate(dict):
2706
4029
  :param 'ResourceClaimTemplateSpecArgs' spec: Describes the ResourceClaim that is to be generated.
2707
4030
 
2708
4031
  This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore.
2709
- :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
2710
- :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
4032
+ :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
4033
+ :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
2711
4034
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
2712
4035
  """
2713
4036
  pulumi.set(__self__, "spec", spec)
@@ -2730,7 +4053,7 @@ class ResourceClaimTemplate(dict):
2730
4053
 
2731
4054
  @property
2732
4055
  @pulumi.getter(name="apiVersion")
2733
- def api_version(self) -> Optional[str]:
4056
+ def api_version(self) -> Optional[builtins.str]:
2734
4057
  """
2735
4058
  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
2736
4059
  """
@@ -2738,7 +4061,7 @@ class ResourceClaimTemplate(dict):
2738
4061
 
2739
4062
  @property
2740
4063
  @pulumi.getter
2741
- def kind(self) -> Optional[str]:
4064
+ def kind(self) -> Optional[builtins.str]:
2742
4065
  """
2743
4066
  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
2744
4067
  """
@@ -2845,18 +4168,18 @@ class ResourcePool(dict):
2845
4168
  return super().get(key, default)
2846
4169
 
2847
4170
  def __init__(__self__, *,
2848
- generation: int,
2849
- name: str,
2850
- resource_slice_count: int):
4171
+ generation: builtins.int,
4172
+ name: builtins.str,
4173
+ resource_slice_count: builtins.int):
2851
4174
  """
2852
4175
  ResourcePool describes the pool that ResourceSlices belong to.
2853
- :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.
4176
+ :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.
2854
4177
 
2855
4178
  Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state.
2856
- :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.
4179
+ :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.
2857
4180
 
2858
4181
  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.
2859
- :param int resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
4182
+ :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.
2860
4183
 
2861
4184
  Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool.
2862
4185
  """
@@ -2866,7 +4189,7 @@ class ResourcePool(dict):
2866
4189
 
2867
4190
  @property
2868
4191
  @pulumi.getter
2869
- def generation(self) -> int:
4192
+ def generation(self) -> builtins.int:
2870
4193
  """
2871
4194
  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.
2872
4195
 
@@ -2876,7 +4199,7 @@ class ResourcePool(dict):
2876
4199
 
2877
4200
  @property
2878
4201
  @pulumi.getter
2879
- def name(self) -> str:
4202
+ def name(self) -> builtins.str:
2880
4203
  """
2881
4204
  Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.
2882
4205
 
@@ -2886,7 +4209,7 @@ class ResourcePool(dict):
2886
4209
 
2887
4210
  @property
2888
4211
  @pulumi.getter(name="resourceSliceCount")
2889
- def resource_slice_count(self) -> int:
4212
+ def resource_slice_count(self) -> builtins.int:
2890
4213
  """
2891
4214
  ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
2892
4215
 
@@ -2918,18 +4241,18 @@ class ResourcePoolPatch(dict):
2918
4241
  return super().get(key, default)
2919
4242
 
2920
4243
  def __init__(__self__, *,
2921
- generation: Optional[int] = None,
2922
- name: Optional[str] = None,
2923
- resource_slice_count: Optional[int] = None):
4244
+ generation: Optional[builtins.int] = None,
4245
+ name: Optional[builtins.str] = None,
4246
+ resource_slice_count: Optional[builtins.int] = None):
2924
4247
  """
2925
4248
  ResourcePool describes the pool that ResourceSlices belong to.
2926
- :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.
4249
+ :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.
2927
4250
 
2928
4251
  Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state.
2929
- :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.
4252
+ :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.
2930
4253
 
2931
4254
  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.
2932
- :param int resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
4255
+ :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.
2933
4256
 
2934
4257
  Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool.
2935
4258
  """
@@ -2942,7 +4265,7 @@ class ResourcePoolPatch(dict):
2942
4265
 
2943
4266
  @property
2944
4267
  @pulumi.getter
2945
- def generation(self) -> Optional[int]:
4268
+ def generation(self) -> Optional[builtins.int]:
2946
4269
  """
2947
4270
  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.
2948
4271
 
@@ -2952,7 +4275,7 @@ class ResourcePoolPatch(dict):
2952
4275
 
2953
4276
  @property
2954
4277
  @pulumi.getter
2955
- def name(self) -> Optional[str]:
4278
+ def name(self) -> Optional[builtins.str]:
2956
4279
  """
2957
4280
  Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.
2958
4281
 
@@ -2962,7 +4285,7 @@ class ResourcePoolPatch(dict):
2962
4285
 
2963
4286
  @property
2964
4287
  @pulumi.getter(name="resourceSliceCount")
2965
- def resource_slice_count(self) -> Optional[int]:
4288
+ def resource_slice_count(self) -> Optional[builtins.int]:
2966
4289
  """
2967
4290
  ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.
2968
4291
 
@@ -3005,8 +4328,8 @@ class ResourceSlice(dict):
3005
4328
 
3006
4329
  def __init__(__self__, *,
3007
4330
  spec: 'outputs.ResourceSliceSpec',
3008
- api_version: Optional[str] = None,
3009
- kind: Optional[str] = None,
4331
+ api_version: Optional[builtins.str] = None,
4332
+ kind: Optional[builtins.str] = None,
3010
4333
  metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
3011
4334
  """
3012
4335
  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.
@@ -3023,8 +4346,8 @@ class ResourceSlice(dict):
3023
4346
  :param 'ResourceSliceSpecArgs' spec: Contains the information published by the driver.
3024
4347
 
3025
4348
  Changing the spec automatically increments the metadata.generation number.
3026
- :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
3027
- :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
4349
+ :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
4350
+ :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
3028
4351
  :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
3029
4352
  """
3030
4353
  pulumi.set(__self__, "spec", spec)
@@ -3047,7 +4370,7 @@ class ResourceSlice(dict):
3047
4370
 
3048
4371
  @property
3049
4372
  @pulumi.getter(name="apiVersion")
3050
- def api_version(self) -> Optional[str]:
4373
+ def api_version(self) -> Optional[builtins.str]:
3051
4374
  """
3052
4375
  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
3053
4376
  """
@@ -3055,7 +4378,7 @@ class ResourceSlice(dict):
3055
4378
 
3056
4379
  @property
3057
4380
  @pulumi.getter
3058
- def kind(self) -> Optional[str]:
4381
+ def kind(self) -> Optional[builtins.str]:
3059
4382
  """
3060
4383
  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
3061
4384
  """
@@ -3084,6 +4407,10 @@ class ResourceSliceSpec(dict):
3084
4407
  suggest = "node_name"
3085
4408
  elif key == "nodeSelector":
3086
4409
  suggest = "node_selector"
4410
+ elif key == "perDeviceNodeSelection":
4411
+ suggest = "per_device_node_selection"
4412
+ elif key == "sharedCounters":
4413
+ suggest = "shared_counters"
3087
4414
 
3088
4415
  if suggest:
3089
4416
  pulumi.log.warn(f"Key '{key}' not found in ResourceSliceSpec. Access the value via the '{suggest}' property getter instead.")
@@ -3097,34 +4424,44 @@ class ResourceSliceSpec(dict):
3097
4424
  return super().get(key, default)
3098
4425
 
3099
4426
  def __init__(__self__, *,
3100
- driver: str,
4427
+ driver: builtins.str,
3101
4428
  pool: 'outputs.ResourcePool',
3102
- all_nodes: Optional[bool] = None,
4429
+ all_nodes: Optional[builtins.bool] = None,
3103
4430
  devices: Optional[Sequence['outputs.Device']] = None,
3104
- node_name: Optional[str] = None,
3105
- node_selector: Optional['_core.v1.outputs.NodeSelector'] = None):
4431
+ node_name: Optional[builtins.str] = None,
4432
+ node_selector: Optional['_core.v1.outputs.NodeSelector'] = None,
4433
+ per_device_node_selection: Optional[builtins.bool] = None,
4434
+ shared_counters: Optional[Sequence['outputs.CounterSet']] = None):
3106
4435
  """
3107
4436
  ResourceSliceSpec contains the information published by the driver in one ResourceSlice.
3108
- :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.
4437
+ :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.
3109
4438
 
3110
4439
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable.
3111
4440
  :param 'ResourcePoolArgs' pool: Pool describes the pool that this ResourceSlice belongs to.
3112
- :param bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool.
4441
+ :param builtins.bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool.
3113
4442
 
3114
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
4443
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3115
4444
  :param Sequence['DeviceArgs'] devices: Devices lists some or all of the devices in this pool.
3116
4445
 
3117
4446
  Must not have more than 128 entries.
3118
- :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.
4447
+ :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.
3119
4448
 
3120
4449
  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.
3121
4450
 
3122
- Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.
4451
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.
3123
4452
  :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.
3124
4453
 
3125
4454
  Must use exactly one term.
3126
4455
 
3127
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
4456
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
4457
+ :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.
4458
+
4459
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
4460
+ :param Sequence['CounterSetArgs'] shared_counters: SharedCounters defines a list of counter sets, each of which has a name and a list of counters available.
4461
+
4462
+ The names of the SharedCounters must be unique in the ResourceSlice.
4463
+
4464
+ The maximum number of SharedCounters is 32.
3128
4465
  """
3129
4466
  pulumi.set(__self__, "driver", driver)
3130
4467
  pulumi.set(__self__, "pool", pool)
@@ -3136,10 +4473,14 @@ class ResourceSliceSpec(dict):
3136
4473
  pulumi.set(__self__, "node_name", node_name)
3137
4474
  if node_selector is not None:
3138
4475
  pulumi.set(__self__, "node_selector", node_selector)
4476
+ if per_device_node_selection is not None:
4477
+ pulumi.set(__self__, "per_device_node_selection", per_device_node_selection)
4478
+ if shared_counters is not None:
4479
+ pulumi.set(__self__, "shared_counters", shared_counters)
3139
4480
 
3140
4481
  @property
3141
4482
  @pulumi.getter
3142
- def driver(self) -> str:
4483
+ def driver(self) -> builtins.str:
3143
4484
  """
3144
4485
  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.
3145
4486
 
@@ -3157,11 +4498,11 @@ class ResourceSliceSpec(dict):
3157
4498
 
3158
4499
  @property
3159
4500
  @pulumi.getter(name="allNodes")
3160
- def all_nodes(self) -> Optional[bool]:
4501
+ def all_nodes(self) -> Optional[builtins.bool]:
3161
4502
  """
3162
4503
  AllNodes indicates that all nodes have access to the resources in the pool.
3163
4504
 
3164
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
4505
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3165
4506
  """
3166
4507
  return pulumi.get(self, "all_nodes")
3167
4508
 
@@ -3177,13 +4518,13 @@ class ResourceSliceSpec(dict):
3177
4518
 
3178
4519
  @property
3179
4520
  @pulumi.getter(name="nodeName")
3180
- def node_name(self) -> Optional[str]:
4521
+ def node_name(self) -> Optional[builtins.str]:
3181
4522
  """
3182
4523
  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.
3183
4524
 
3184
4525
  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.
3185
4526
 
3186
- Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.
4527
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.
3187
4528
  """
3188
4529
  return pulumi.get(self, "node_name")
3189
4530
 
@@ -3195,10 +4536,32 @@ class ResourceSliceSpec(dict):
3195
4536
 
3196
4537
  Must use exactly one term.
3197
4538
 
3198
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
4539
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3199
4540
  """
3200
4541
  return pulumi.get(self, "node_selector")
3201
4542
 
4543
+ @property
4544
+ @pulumi.getter(name="perDeviceNodeSelection")
4545
+ def per_device_node_selection(self) -> Optional[builtins.bool]:
4546
+ """
4547
+ 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.
4548
+
4549
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
4550
+ """
4551
+ return pulumi.get(self, "per_device_node_selection")
4552
+
4553
+ @property
4554
+ @pulumi.getter(name="sharedCounters")
4555
+ def shared_counters(self) -> Optional[Sequence['outputs.CounterSet']]:
4556
+ """
4557
+ SharedCounters defines a list of counter sets, each of which has a name and a list of counters available.
4558
+
4559
+ The names of the SharedCounters must be unique in the ResourceSlice.
4560
+
4561
+ The maximum number of SharedCounters is 32.
4562
+ """
4563
+ return pulumi.get(self, "shared_counters")
4564
+
3202
4565
 
3203
4566
  @pulumi.output_type
3204
4567
  class ResourceSliceSpecPatch(dict):
@@ -3214,6 +4577,10 @@ class ResourceSliceSpecPatch(dict):
3214
4577
  suggest = "node_name"
3215
4578
  elif key == "nodeSelector":
3216
4579
  suggest = "node_selector"
4580
+ elif key == "perDeviceNodeSelection":
4581
+ suggest = "per_device_node_selection"
4582
+ elif key == "sharedCounters":
4583
+ suggest = "shared_counters"
3217
4584
 
3218
4585
  if suggest:
3219
4586
  pulumi.log.warn(f"Key '{key}' not found in ResourceSliceSpecPatch. Access the value via the '{suggest}' property getter instead.")
@@ -3227,34 +4594,44 @@ class ResourceSliceSpecPatch(dict):
3227
4594
  return super().get(key, default)
3228
4595
 
3229
4596
  def __init__(__self__, *,
3230
- all_nodes: Optional[bool] = None,
4597
+ all_nodes: Optional[builtins.bool] = None,
3231
4598
  devices: Optional[Sequence['outputs.DevicePatch']] = None,
3232
- driver: Optional[str] = None,
3233
- node_name: Optional[str] = None,
4599
+ driver: Optional[builtins.str] = None,
4600
+ node_name: Optional[builtins.str] = None,
3234
4601
  node_selector: Optional['_core.v1.outputs.NodeSelectorPatch'] = None,
3235
- pool: Optional['outputs.ResourcePoolPatch'] = None):
4602
+ per_device_node_selection: Optional[builtins.bool] = None,
4603
+ pool: Optional['outputs.ResourcePoolPatch'] = None,
4604
+ shared_counters: Optional[Sequence['outputs.CounterSetPatch']] = None):
3236
4605
  """
3237
4606
  ResourceSliceSpec contains the information published by the driver in one ResourceSlice.
3238
- :param bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool.
4607
+ :param builtins.bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool.
3239
4608
 
3240
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
4609
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3241
4610
  :param Sequence['DevicePatchArgs'] devices: Devices lists some or all of the devices in this pool.
3242
4611
 
3243
4612
  Must not have more than 128 entries.
3244
- :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.
4613
+ :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.
3245
4614
 
3246
4615
  Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable.
3247
- :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.
4616
+ :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.
3248
4617
 
3249
4618
  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.
3250
4619
 
3251
- Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.
4620
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.
3252
4621
  :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.
3253
4622
 
3254
4623
  Must use exactly one term.
3255
4624
 
3256
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
4625
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
4626
+ :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.
4627
+
4628
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3257
4629
  :param 'ResourcePoolPatchArgs' pool: Pool describes the pool that this ResourceSlice belongs to.
4630
+ :param Sequence['CounterSetPatchArgs'] shared_counters: SharedCounters defines a list of counter sets, each of which has a name and a list of counters available.
4631
+
4632
+ The names of the SharedCounters must be unique in the ResourceSlice.
4633
+
4634
+ The maximum number of SharedCounters is 32.
3258
4635
  """
3259
4636
  if all_nodes is not None:
3260
4637
  pulumi.set(__self__, "all_nodes", all_nodes)
@@ -3266,16 +4643,20 @@ class ResourceSliceSpecPatch(dict):
3266
4643
  pulumi.set(__self__, "node_name", node_name)
3267
4644
  if node_selector is not None:
3268
4645
  pulumi.set(__self__, "node_selector", node_selector)
4646
+ if per_device_node_selection is not None:
4647
+ pulumi.set(__self__, "per_device_node_selection", per_device_node_selection)
3269
4648
  if pool is not None:
3270
4649
  pulumi.set(__self__, "pool", pool)
4650
+ if shared_counters is not None:
4651
+ pulumi.set(__self__, "shared_counters", shared_counters)
3271
4652
 
3272
4653
  @property
3273
4654
  @pulumi.getter(name="allNodes")
3274
- def all_nodes(self) -> Optional[bool]:
4655
+ def all_nodes(self) -> Optional[builtins.bool]:
3275
4656
  """
3276
4657
  AllNodes indicates that all nodes have access to the resources in the pool.
3277
4658
 
3278
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
4659
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3279
4660
  """
3280
4661
  return pulumi.get(self, "all_nodes")
3281
4662
 
@@ -3291,7 +4672,7 @@ class ResourceSliceSpecPatch(dict):
3291
4672
 
3292
4673
  @property
3293
4674
  @pulumi.getter
3294
- def driver(self) -> Optional[str]:
4675
+ def driver(self) -> Optional[builtins.str]:
3295
4676
  """
3296
4677
  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.
3297
4678
 
@@ -3301,13 +4682,13 @@ class ResourceSliceSpecPatch(dict):
3301
4682
 
3302
4683
  @property
3303
4684
  @pulumi.getter(name="nodeName")
3304
- def node_name(self) -> Optional[str]:
4685
+ def node_name(self) -> Optional[builtins.str]:
3305
4686
  """
3306
4687
  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.
3307
4688
 
3308
4689
  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.
3309
4690
 
3310
- Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.
4691
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.
3311
4692
  """
3312
4693
  return pulumi.get(self, "node_name")
3313
4694
 
@@ -3319,10 +4700,20 @@ class ResourceSliceSpecPatch(dict):
3319
4700
 
3320
4701
  Must use exactly one term.
3321
4702
 
3322
- Exactly one of NodeName, NodeSelector and AllNodes must be set.
4703
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
3323
4704
  """
3324
4705
  return pulumi.get(self, "node_selector")
3325
4706
 
4707
+ @property
4708
+ @pulumi.getter(name="perDeviceNodeSelection")
4709
+ def per_device_node_selection(self) -> Optional[builtins.bool]:
4710
+ """
4711
+ 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.
4712
+
4713
+ Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.
4714
+ """
4715
+ return pulumi.get(self, "per_device_node_selection")
4716
+
3326
4717
  @property
3327
4718
  @pulumi.getter
3328
4719
  def pool(self) -> Optional['outputs.ResourcePoolPatch']:
@@ -3331,4 +4722,16 @@ class ResourceSliceSpecPatch(dict):
3331
4722
  """
3332
4723
  return pulumi.get(self, "pool")
3333
4724
 
4725
+ @property
4726
+ @pulumi.getter(name="sharedCounters")
4727
+ def shared_counters(self) -> Optional[Sequence['outputs.CounterSetPatch']]:
4728
+ """
4729
+ SharedCounters defines a list of counter sets, each of which has a name and a list of counters available.
4730
+
4731
+ The names of the SharedCounters must be unique in the ResourceSlice.
4732
+
4733
+ The maximum number of SharedCounters is 32.
4734
+ """
4735
+ return pulumi.get(self, "shared_counters")
4736
+
3334
4737