From be4c3459417a2635ceba5aa72eed0d96aab35799 Mon Sep 17 00:00:00 2001 From: Ramon Quitales Date: Tue, 3 Dec 2024 09:32:48 -0800 Subject: [PATCH] chore: run `make build` --- ...alidatingAdmissionPolicyBindingSpecArgs.cs | 2 +- ...tingAdmissionPolicyBindingSpecPatchArgs.cs | 2 +- .../ValidatingAdmissionPolicyBindingSpec.cs | 2 +- ...lidatingAdmissionPolicyBindingSpecPatch.cs | 2 +- .../V1Alpha1/Inputs/ApplyConfigurationArgs.cs | 56 + .../Inputs/ApplyConfigurationPatchArgs.cs | 56 + .../V1Alpha1/Inputs/JSONPatchArgs.cs | 82 + .../V1Alpha1/Inputs/JSONPatchPatchArgs.cs | 82 + .../Inputs/MutatingAdmissionPolicyArgs.cs | 12 + .../MutatingAdmissionPolicyBindingArgs.cs | 12 + .../MutatingAdmissionPolicyBindingSpecArgs.cs | 41 + ...tingAdmissionPolicyBindingSpecPatchArgs.cs | 41 + .../Inputs/MutatingAdmissionPolicySpecArgs.cs | 104 + .../MutatingAdmissionPolicySpecPatchArgs.cs | 104 + .../V1Alpha1/Inputs/MutationArgs.cs | 41 + .../V1Alpha1/Inputs/MutationPatchArgs.cs | 41 + ...alidatingAdmissionPolicyBindingSpecArgs.cs | 2 +- ...tingAdmissionPolicyBindingSpecPatchArgs.cs | 2 +- .../ValidatingAdmissionPolicySpecArgs.cs | 12 +- .../ValidatingAdmissionPolicySpecPatchArgs.cs | 12 +- .../V1Alpha1/Inputs/ValidationArgs.cs | 9 +- .../V1Alpha1/Inputs/ValidationPatchArgs.cs | 9 +- .../V1Alpha1/MutatingAdmissionPolicy.cs | 131 + .../MutatingAdmissionPolicyBinding.cs | 135 + .../MutatingAdmissionPolicyBindingList.cs | 137 + .../MutatingAdmissionPolicyBindingPatch.cs | 141 + .../V1Alpha1/MutatingAdmissionPolicyList.cs | 137 + .../V1Alpha1/MutatingAdmissionPolicyPatch.cs | 137 + .../V1Alpha1/Outputs/ApplyConfiguration.cs | 57 + .../Outputs/ApplyConfigurationPatch.cs | 57 + .../V1Alpha1/Outputs/JSONPatch.cs | 83 + .../V1Alpha1/Outputs/JSONPatchPatch.cs | 83 + .../Outputs/MutatingAdmissionPolicy.cs | 52 + .../Outputs/MutatingAdmissionPolicyBinding.cs | 56 + .../MutatingAdmissionPolicyBindingSpec.cs | 45 + ...MutatingAdmissionPolicyBindingSpecPatch.cs | 45 + .../Outputs/MutatingAdmissionPolicySpec.cs | 94 + .../MutatingAdmissionPolicySpecPatch.cs | 94 + .../V1Alpha1/Outputs/Mutation.cs | 45 + .../V1Alpha1/Outputs/MutationPatch.cs | 45 + .../ValidatingAdmissionPolicyBinding.cs | 4 - .../ValidatingAdmissionPolicyBindingSpec.cs | 2 +- ...lidatingAdmissionPolicyBindingSpecPatch.cs | 2 +- .../Outputs/ValidatingAdmissionPolicySpec.cs | 12 +- .../ValidatingAdmissionPolicySpecPatch.cs | 12 +- .../V1Alpha1/Outputs/Validation.cs | 9 +- .../V1Alpha1/Outputs/ValidationPatch.cs | 9 +- .../ValidatingAdmissionPolicyBinding.cs | 4 - .../ValidatingAdmissionPolicyBindingPatch.cs | 4 - ...alidatingAdmissionPolicyBindingSpecArgs.cs | 2 +- ...tingAdmissionPolicyBindingSpecPatchArgs.cs | 2 +- .../ValidatingAdmissionPolicyBindingSpec.cs | 2 +- ...lidatingAdmissionPolicyBindingSpecPatch.cs | 2 +- .../V1/Inputs/JSONSchemaPropsArgs.cs | 2 +- .../V1/Inputs/JSONSchemaPropsPatchArgs.cs | 2 +- .../V1/Outputs/JSONSchemaProps.cs | 2 +- .../V1/Outputs/JSONSchemaPropsPatch.cs | 2 +- .../Apps/V1/Inputs/StatefulSetSpecArgs.cs | 2 +- .../V1/Inputs/StatefulSetSpecPatchArgs.cs | 2 +- sdk/dotnet/Apps/V1/Outputs/StatefulSetSpec.cs | 2 +- .../Apps/V1/Outputs/StatefulSetSpecPatch.cs | 2 +- .../Autoscaling/V2/Inputs/MetricSpecArgs.cs | 4 +- .../V2/Inputs/MetricSpecPatchArgs.cs | 4 +- .../Autoscaling/V2/Inputs/MetricStatusArgs.cs | 2 +- .../Autoscaling/V2/Outputs/MetricSpec.cs | 4 +- .../Autoscaling/V2/Outputs/MetricSpecPatch.cs | 4 +- .../Autoscaling/V2/Outputs/MetricStatus.cs | 2 +- .../V2/Outputs/MetricStatusPatch.cs | 2 +- sdk/dotnet/Batch/V1/Inputs/JobSpecArgs.cs | 2 +- .../Batch/V1/Inputs/JobSpecPatchArgs.cs | 2 +- sdk/dotnet/Batch/V1/Outputs/JobSpec.cs | 2 +- sdk/dotnet/Batch/V1/Outputs/JobSpecPatch.cs | 2 +- .../Coordination/V1Alpha1/LeaseCandidate.cs | 4 + .../V1Alpha1/LeaseCandidatePatch.cs | 4 + .../V1Alpha2/Inputs/LeaseCandidateArgs.cs | 12 + .../V1Alpha2/Inputs/LeaseCandidateSpecArgs.cs | 59 + .../Inputs/LeaseCandidateSpecPatchArgs.cs | 59 + .../Coordination/V1Alpha2/LeaseCandidate.cs | 135 + .../V1Alpha2/LeaseCandidateList.cs | 137 + .../V1Alpha2/LeaseCandidatePatch.cs | 141 + .../V1Alpha2/Outputs/LeaseCandidate.cs | 52 + .../V1Alpha2/Outputs/LeaseCandidateSpec.cs | 66 + .../Outputs/LeaseCandidateSpecPatch.cs | 66 + sdk/dotnet/Core/V1/Binding.cs | 2 +- sdk/dotnet/Core/V1/BindingPatch.cs | 2 +- .../Inputs/CSIPersistentVolumeSourceArgs.cs | 2 +- .../CSIPersistentVolumeSourcePatchArgs.cs | 2 +- sdk/dotnet/Core/V1/Inputs/GRPCActionArgs.cs | 3 + .../Core/V1/Inputs/GRPCActionPatchArgs.cs | 3 + .../Core/V1/Inputs/LifecycleHandlerArgs.cs | 8 +- .../V1/Inputs/LifecycleHandlerPatchArgs.cs | 8 +- .../Core/V1/Inputs/LocalVolumeSourceArgs.cs | 2 +- .../V1/Inputs/LocalVolumeSourcePatchArgs.cs | 2 +- .../Core/V1/Inputs/NamespaceConditionArgs.cs | 9 + sdk/dotnet/Core/V1/Inputs/NodeStatusArgs.cs | 6 +- .../PersistentVolumeClaimConditionArgs.cs | 6 + ...PersistentVolumeClaimConditionPatchArgs.cs | 6 + .../V1/Inputs/PersistentVolumeSpecArgs.cs | 34 +- .../Inputs/PersistentVolumeSpecPatchArgs.cs | 34 +- .../Core/V1/Inputs/PodDNSConfigOptionArgs.cs | 5 +- .../V1/Inputs/PodDNSConfigOptionPatchArgs.cs | 5 +- .../Core/V1/Inputs/PodSecurityContextArgs.cs | 16 + .../V1/Inputs/PodSecurityContextPatchArgs.cs | 16 + sdk/dotnet/Core/V1/Inputs/PodSpecArgs.cs | 12 +- sdk/dotnet/Core/V1/Inputs/PodSpecPatchArgs.cs | 12 +- sdk/dotnet/Core/V1/Inputs/PodStatusArgs.cs | 6 +- sdk/dotnet/Core/V1/Inputs/PortStatusArgs.cs | 3 + sdk/dotnet/Core/V1/Inputs/ProbeArgs.cs | 8 +- sdk/dotnet/Core/V1/Inputs/ProbePatchArgs.cs | 8 +- .../Core/V1/Inputs/ResourceHealthArgs.cs | 2 +- .../Core/V1/Inputs/ResourceStatusArgs.cs | 7 +- sdk/dotnet/Core/V1/Inputs/ServiceSpecArgs.cs | 2 +- .../Core/V1/Inputs/ServiceSpecPatchArgs.cs | 2 +- .../V1/Inputs/TypedObjectReferenceArgs.cs | 3 + .../Inputs/TypedObjectReferencePatchArgs.cs | 3 + sdk/dotnet/Core/V1/Inputs/VolumeArgs.cs | 36 +- sdk/dotnet/Core/V1/Inputs/VolumePatchArgs.cs | 36 +- .../V1/Outputs/CSIPersistentVolumeSource.cs | 2 +- .../Outputs/CSIPersistentVolumeSourcePatch.cs | 2 +- sdk/dotnet/Core/V1/Outputs/GRPCAction.cs | 3 + sdk/dotnet/Core/V1/Outputs/GRPCActionPatch.cs | 3 + .../Core/V1/Outputs/LifecycleHandler.cs | 8 +- .../Core/V1/Outputs/LifecycleHandlerPatch.cs | 8 +- .../Core/V1/Outputs/LocalVolumeSource.cs | 2 +- .../Core/V1/Outputs/LocalVolumeSourcePatch.cs | 2 +- .../Core/V1/Outputs/NamespaceCondition.cs | 9 + .../V1/Outputs/NamespaceConditionPatch.cs | 9 + sdk/dotnet/Core/V1/Outputs/NodeStatus.cs | 6 +- sdk/dotnet/Core/V1/Outputs/NodeStatusPatch.cs | 6 +- .../Outputs/PersistentVolumeClaimCondition.cs | 6 + .../PersistentVolumeClaimConditionPatch.cs | 6 + .../Core/V1/Outputs/PersistentVolumeSpec.cs | 34 +- .../V1/Outputs/PersistentVolumeSpecPatch.cs | 34 +- .../Core/V1/Outputs/PodDNSConfigOption.cs | 5 +- .../V1/Outputs/PodDNSConfigOptionPatch.cs | 5 +- .../Core/V1/Outputs/PodSecurityContext.cs | 17 + .../V1/Outputs/PodSecurityContextPatch.cs | 17 + sdk/dotnet/Core/V1/Outputs/PodSpec.cs | 13 +- sdk/dotnet/Core/V1/Outputs/PodSpecPatch.cs | 13 +- sdk/dotnet/Core/V1/Outputs/PodStatus.cs | 6 +- sdk/dotnet/Core/V1/Outputs/PodStatusPatch.cs | 6 +- sdk/dotnet/Core/V1/Outputs/PortStatus.cs | 3 + sdk/dotnet/Core/V1/Outputs/PortStatusPatch.cs | 3 + sdk/dotnet/Core/V1/Outputs/Probe.cs | 8 +- sdk/dotnet/Core/V1/Outputs/ProbePatch.cs | 8 +- sdk/dotnet/Core/V1/Outputs/ResourceHealth.cs | 2 +- .../Core/V1/Outputs/ResourceHealthPatch.cs | 2 +- sdk/dotnet/Core/V1/Outputs/ResourceStatus.cs | 7 +- .../Core/V1/Outputs/ResourceStatusPatch.cs | 7 +- sdk/dotnet/Core/V1/Outputs/ServiceAccount.cs | 2 +- sdk/dotnet/Core/V1/Outputs/ServiceSpec.cs | 2 +- .../Core/V1/Outputs/ServiceSpecPatch.cs | 2 +- .../Core/V1/Outputs/TypedObjectReference.cs | 3 + .../V1/Outputs/TypedObjectReferencePatch.cs | 3 + sdk/dotnet/Core/V1/Outputs/Volume.cs | 36 +- sdk/dotnet/Core/V1/Outputs/VolumePatch.cs | 36 +- sdk/dotnet/Core/V1/ServiceAccount.cs | 4 +- sdk/dotnet/Core/V1/ServiceAccountPatch.cs | 4 +- .../LimitedPriorityLevelConfigurationArgs.cs | 4 +- ...itedPriorityLevelConfigurationPatchArgs.cs | 4 +- .../LimitedPriorityLevelConfiguration.cs | 4 +- .../LimitedPriorityLevelConfigurationPatch.cs | 4 +- sdk/dotnet/Resource/V1Alpha1/ResourceClaim.cs | 1 + .../Resource/V1Alpha1/ResourceClaimPatch.cs | 1 + .../V1Alpha1/ResourceClaimTemplate.cs | 1 + .../V1Alpha1/ResourceClaimTemplatePatch.cs | 1 + sdk/dotnet/Resource/V1Alpha2/ResourceClaim.cs | 1 + .../Resource/V1Alpha2/ResourceClaimPatch.cs | 1 + .../V1Alpha2/ResourceClaimTemplate.cs | 1 + .../V1Alpha2/ResourceClaimTemplatePatch.cs | 1 + sdk/dotnet/Resource/V1Alpha2/ResourceSlice.cs | 1 + .../Resource/V1Alpha2/ResourceSlicePatch.cs | 1 + sdk/dotnet/Resource/V1Alpha3/DeviceClass.cs | 4 + .../Resource/V1Alpha3/DeviceClassPatch.cs | 4 + .../Inputs/AllocatedDeviceStatusArgs.cs | 71 + .../V1Alpha3/Inputs/CELDeviceSelectorArgs.cs | 2 + .../Inputs/CELDeviceSelectorPatchArgs.cs | 2 + .../DeviceRequestAllocationResultArgs.cs | 8 + .../V1Alpha3/Inputs/DeviceRequestArgs.cs | 2 + .../V1Alpha3/Inputs/DeviceRequestPatchArgs.cs | 2 + .../V1Alpha3/Inputs/NetworkDeviceDataArgs.cs | 51 + .../Inputs/OpaqueDeviceConfigurationArgs.cs | 2 + .../OpaqueDeviceConfigurationPatchArgs.cs | 2 + .../Inputs/ResourceClaimStatusArgs.cs | 12 + .../Inputs/ResourceClaimTemplateSpecArgs.cs | 2 +- .../ResourceClaimTemplateSpecPatchArgs.cs | 2 +- .../V1Alpha3/Inputs/ResourceSliceArgs.cs | 12 + .../V1Alpha3/Outputs/AllocatedDeviceStatus.cs | 72 + .../Outputs/AllocatedDeviceStatusPatch.cs | 72 + .../V1Alpha3/Outputs/CELDeviceSelector.cs | 2 + .../Outputs/CELDeviceSelectorPatch.cs | 2 + .../V1Alpha3/Outputs/DeviceRequest.cs | 2 + .../Outputs/DeviceRequestAllocationResult.cs | 9 + .../DeviceRequestAllocationResultPatch.cs | 9 + .../V1Alpha3/Outputs/DeviceRequestPatch.cs | 2 + .../V1Alpha3/Outputs/NetworkDeviceData.cs | 49 + .../Outputs/NetworkDeviceDataPatch.cs | 49 + .../Outputs/OpaqueDeviceConfiguration.cs | 2 + .../Outputs/OpaqueDeviceConfigurationPatch.cs | 2 + .../V1Alpha3/Outputs/ResourceClaimStatus.cs | 7 + .../Outputs/ResourceClaimStatusPatch.cs | 7 + .../Outputs/ResourceClaimTemplateSpec.cs | 2 +- .../Outputs/ResourceClaimTemplateSpecPatch.cs | 2 +- .../V1Alpha3/Outputs/ResourceSlice.cs | 64 + sdk/dotnet/Resource/V1Alpha3/ResourceClaim.cs | 1 + .../Resource/V1Alpha3/ResourceClaimPatch.cs | 1 + .../V1Alpha3/ResourceClaimTemplate.cs | 1 + .../V1Alpha3/ResourceClaimTemplatePatch.cs | 1 + sdk/dotnet/Resource/V1Alpha3/ResourceSlice.cs | 1 + .../Resource/V1Alpha3/ResourceSliceList.cs | 149 + .../Resource/V1Alpha3/ResourceSlicePatch.cs | 1 + sdk/dotnet/Resource/V1Beta1/DeviceClass.cs | 145 + .../Resource/V1Beta1/DeviceClassList.cs | 137 + .../Resource/V1Beta1/DeviceClassPatch.cs | 151 + .../Inputs/AllocatedDeviceStatusArgs.cs | 71 + .../V1Beta1/Inputs/AllocationResultArgs.cs | 35 + .../V1Beta1/Inputs/BasicDeviceArgs.cs | 51 + .../V1Beta1/Inputs/BasicDevicePatchArgs.cs | 51 + .../V1Beta1/Inputs/CELDeviceSelectorArgs.cs | 57 + .../Inputs/CELDeviceSelectorPatchArgs.cs | 57 + .../DeviceAllocationConfigurationArgs.cs | 47 + .../Inputs/DeviceAllocationResultArgs.cs | 49 + .../Resource/V1Beta1/Inputs/DeviceArgs.cs | 35 + .../V1Beta1/Inputs/DeviceAttributeArgs.cs | 47 + .../V1Beta1/Inputs/DeviceCapacityArgs.cs | 29 + .../V1Beta1/Inputs/DeviceClaimArgs.cs | 59 + .../Inputs/DeviceClaimConfigurationArgs.cs | 41 + .../DeviceClaimConfigurationPatchArgs.cs | 41 + .../V1Beta1/Inputs/DeviceClaimPatchArgs.cs | 59 + .../V1Beta1/Inputs/DeviceClassArgs.cs | 12 + .../Inputs/DeviceClassConfigurationArgs.cs | 29 + .../DeviceClassConfigurationPatchArgs.cs | 29 + .../V1Beta1/Inputs/DeviceClassSpecArgs.cs | 49 + .../Inputs/DeviceClassSpecPatchArgs.cs | 49 + .../V1Beta1/Inputs/DeviceConstraintArgs.cs | 45 + .../Inputs/DeviceConstraintPatchArgs.cs | 45 + .../V1Beta1/Inputs/DevicePatchArgs.cs | 35 + .../DeviceRequestAllocationResultArgs.cs | 59 + .../V1Beta1/Inputs/DeviceRequestArgs.cs | 87 + .../V1Beta1/Inputs/DeviceRequestPatchArgs.cs | 87 + .../V1Beta1/Inputs/DeviceSelectorArgs.cs | 29 + .../V1Beta1/Inputs/DeviceSelectorPatchArgs.cs | 29 + .../V1Beta1/Inputs/NetworkDeviceDataArgs.cs | 51 + .../Inputs/OpaqueDeviceConfigurationArgs.cs | 41 + .../OpaqueDeviceConfigurationPatchArgs.cs | 41 + .../V1Beta1/Inputs/ResourceClaimArgs.cs | 12 + .../ResourceClaimConsumerReferenceArgs.cs | 47 + .../V1Beta1/Inputs/ResourceClaimSpecArgs.cs | 29 + .../Inputs/ResourceClaimSpecPatchArgs.cs | 29 + .../V1Beta1/Inputs/ResourceClaimStatusArgs.cs | 59 + .../Inputs/ResourceClaimTemplateArgs.cs | 12 + .../Inputs/ResourceClaimTemplateSpecArgs.cs | 35 + .../ResourceClaimTemplateSpecPatchArgs.cs | 35 + .../V1Beta1/Inputs/ResourcePoolArgs.cs | 47 + .../V1Beta1/Inputs/ResourcePoolPatchArgs.cs | 47 + .../V1Beta1/Inputs/ResourceSliceArgs.cs | 12 + .../V1Beta1/Inputs/ResourceSliceSpecArgs.cs | 79 + .../Inputs/ResourceSliceSpecPatchArgs.cs | 79 + .../V1Beta1/Outputs/AllocatedDeviceStatus.cs | 72 + .../Outputs/AllocatedDeviceStatusPatch.cs | 72 + .../V1Beta1/Outputs/AllocationResult.cs | 38 + .../V1Beta1/Outputs/AllocationResultPatch.cs | 38 + .../Resource/V1Beta1/Outputs/BasicDevice.cs | 42 + .../V1Beta1/Outputs/BasicDevicePatch.cs | 42 + .../V1Beta1/Outputs/CELDeviceSelector.cs | 58 + .../V1Beta1/Outputs/CELDeviceSelectorPatch.cs | 58 + sdk/dotnet/Resource/V1Beta1/Outputs/Device.cs | 38 + .../Outputs/DeviceAllocationConfiguration.cs | 45 + .../DeviceAllocationConfigurationPatch.cs | 45 + .../V1Beta1/Outputs/DeviceAllocationResult.cs | 40 + .../Outputs/DeviceAllocationResultPatch.cs | 40 + .../V1Beta1/Outputs/DeviceAttribute.cs | 52 + .../V1Beta1/Outputs/DeviceCapacity.cs | 30 + .../Resource/V1Beta1/Outputs/DeviceClaim.cs | 45 + .../Outputs/DeviceClaimConfiguration.cs | 38 + .../Outputs/DeviceClaimConfigurationPatch.cs | 38 + .../V1Beta1/Outputs/DeviceClaimPatch.cs | 45 + .../Resource/V1Beta1/Outputs/DeviceClass.cs | 58 + .../Outputs/DeviceClassConfiguration.cs | 30 + .../Outputs/DeviceClassConfigurationPatch.cs | 30 + .../V1Beta1/Outputs/DeviceClassSpec.cs | 40 + .../V1Beta1/Outputs/DeviceClassSpecPatch.cs | 40 + .../V1Beta1/Outputs/DeviceConstraint.cs | 42 + .../V1Beta1/Outputs/DeviceConstraintPatch.cs | 42 + .../Resource/V1Beta1/Outputs/DevicePatch.cs | 38 + .../Resource/V1Beta1/Outputs/DeviceRequest.cs | 88 + .../Outputs/DeviceRequestAllocationResult.cs | 65 + .../DeviceRequestAllocationResultPatch.cs | 65 + .../V1Beta1/Outputs/DeviceRequestPatch.cs | 88 + .../V1Beta1/Outputs/DeviceSelector.cs | 30 + .../V1Beta1/Outputs/DeviceSelectorPatch.cs | 30 + .../V1Beta1/Outputs/NetworkDeviceData.cs | 49 + .../V1Beta1/Outputs/NetworkDeviceDataPatch.cs | 49 + .../Outputs/OpaqueDeviceConfiguration.cs | 44 + .../Outputs/OpaqueDeviceConfigurationPatch.cs | 44 + .../Resource/V1Beta1/Outputs/ResourceClaim.cs | 61 + .../Outputs/ResourceClaimConsumerReference.cs | 52 + .../ResourceClaimConsumerReferencePatch.cs | 52 + .../V1Beta1/Outputs/ResourceClaimSpec.cs | 30 + .../V1Beta1/Outputs/ResourceClaimSpecPatch.cs | 30 + .../V1Beta1/Outputs/ResourceClaimStatus.cs | 51 + .../Outputs/ResourceClaimStatusPatch.cs | 51 + .../V1Beta1/Outputs/ResourceClaimTemplate.cs | 56 + .../Outputs/ResourceClaimTemplateSpec.cs | 38 + .../Outputs/ResourceClaimTemplateSpecPatch.cs | 38 + .../Resource/V1Beta1/Outputs/ResourcePool.cs | 51 + .../V1Beta1/Outputs/ResourcePoolPatch.cs | 51 + .../Resource/V1Beta1/Outputs/ResourceSlice.cs | 64 + .../V1Beta1/Outputs/ResourceSliceSpec.cs | 80 + .../V1Beta1/Outputs/ResourceSliceSpecPatch.cs | 80 + sdk/dotnet/Resource/V1Beta1/ResourceClaim.cs | 145 + .../Resource/V1Beta1/ResourceClaimList.cs | 137 + .../Resource/V1Beta1/ResourceClaimPatch.cs | 151 + .../Resource/V1Beta1/ResourceClaimTemplate.cs | 143 + .../V1Beta1/ResourceClaimTemplateList.cs | 137 + .../V1Beta1/ResourceClaimTemplatePatch.cs | 149 + sdk/dotnet/Resource/V1Beta1/ResourceSlice.cs | 150 + .../Resource/V1Beta1/ResourceSliceList.cs | 137 + .../Resource/V1Beta1/ResourceSlicePatch.cs | 156 + .../V1/Inputs/VolumeAttachmentSourceArgs.cs | 2 +- .../Inputs/VolumeAttachmentSourcePatchArgs.cs | 2 +- .../V1/Outputs/VolumeAttachmentSource.cs | 2 +- .../V1/Outputs/VolumeAttachmentSourcePatch.cs | 2 +- sdk/dotnet/Yaml/Yaml.cs | 95 + .../admissionregistration/v1/pulumiTypes.go | 16 +- .../admissionregistration/v1alpha1/init.go | 12 + .../v1alpha1/mutatingAdmissionPolicy.go | 247 + .../mutatingAdmissionPolicyBinding.go | 251 + .../mutatingAdmissionPolicyBindingList.go | 253 + .../mutatingAdmissionPolicyBindingPatch.go | 259 + .../v1alpha1/mutatingAdmissionPolicyList.go | 251 + .../v1alpha1/mutatingAdmissionPolicyPatch.go | 253 + .../v1alpha1/pulumiTypes.go | 5244 ++++++++-- .../validatingAdmissionPolicyBinding.go | 4 - .../validatingAdmissionPolicyBindingPatch.go | 4 - .../v1beta1/pulumiTypes.go | 16 +- .../apiextensions/v1/pulumiTypes.go | 16 +- sdk/go/kubernetes/apps/v1/pulumiTypes.go | 16 +- .../authentication/v1alpha1/pulumiTypes.go | 12 +- .../kubernetes/autoscaling/v2/pulumiTypes.go | 36 +- sdk/go/kubernetes/batch/v1/pulumiTypes.go | 16 +- .../coordination/v1alpha1/leaseCandidate.go | 6 + .../v1alpha1/leaseCandidatePatch.go | 6 + .../kubernetes/coordination/v1alpha2/init.go | 48 + .../coordination/v1alpha2/leaseCandidate.go | 253 + .../v1alpha2/leaseCandidateList.go | 251 + .../v1alpha2/leaseCandidatePatch.go | 259 + .../coordination/v1alpha2/pulumiTypes.go | 795 ++ sdk/go/kubernetes/core/v1/binding.go | 2 +- sdk/go/kubernetes/core/v1/bindingPatch.go | 2 +- sdk/go/kubernetes/core/v1/pulumiTypes.go | 1124 ++- sdk/go/kubernetes/core/v1/serviceAccount.go | 8 +- .../kubernetes/core/v1/serviceAccountPatch.go | 8 +- .../flowcontrol/v1beta3/pulumiTypes.go | 32 +- sdk/go/kubernetes/meta/v1/pulumiTypes.go | 38 + .../resource/v1alpha1/resourceClaim.go | 3 + .../resource/v1alpha1/resourceClaimPatch.go | 3 + .../v1alpha1/resourceClaimTemplate.go | 3 + .../v1alpha1/resourceClaimTemplatePatch.go | 3 + .../resource/v1alpha2/resourceClaim.go | 3 + .../resource/v1alpha2/resourceClaimPatch.go | 3 + .../v1alpha2/resourceClaimTemplate.go | 3 + .../v1alpha2/resourceClaimTemplatePatch.go | 3 + .../resource/v1alpha2/resourceSlice.go | 3 + .../resource/v1alpha2/resourceSlicePatch.go | 3 + .../resource/v1alpha3/deviceClass.go | 6 + .../resource/v1alpha3/deviceClassPatch.go | 6 + sdk/go/kubernetes/resource/v1alpha3/init.go | 2 + .../resource/v1alpha3/pulumiTypes.go | 923 +- .../resource/v1alpha3/resourceClaim.go | 3 + .../resource/v1alpha3/resourceClaimPatch.go | 3 + .../v1alpha3/resourceClaimTemplate.go | 3 + .../v1alpha3/resourceClaimTemplatePatch.go | 3 + .../resource/v1alpha3/resourceSlice.go | 3 + .../resource/v1alpha3/resourceSliceList.go | 262 + .../resource/v1alpha3/resourceSlicePatch.go | 3 + .../resource/v1beta1/deviceClass.go | 275 + .../resource/v1beta1/deviceClassList.go | 251 + .../resource/v1beta1/deviceClassPatch.go | 277 + sdk/go/kubernetes/resource/v1beta1/init.go | 66 + .../resource/v1beta1/pulumiTypes.go | 8952 +++++++++++++++++ .../resource/v1beta1/resourceClaim.go | 272 + .../resource/v1beta1/resourceClaimList.go | 251 + .../resource/v1beta1/resourceClaimPatch.go | 274 + .../resource/v1beta1/resourceClaimTemplate.go | 273 + .../v1beta1/resourceClaimTemplateList.go | 251 + .../v1beta1/resourceClaimTemplatePatch.go | 275 + .../resource/v1beta1/resourceSlice.go | 278 + .../resource/v1beta1/resourceSliceList.go | 251 + .../resource/v1beta1/resourceSlicePatch.go | 280 + sdk/go/kubernetes/storage/v1/pulumiTypes.go | 12 +- sdk/go/kubernetes/yaml/v2/kinds.go | 59 + sdk/go/kubernetes/yaml/yaml.go | 59 + ...idatingAdmissionPolicyBindingSpecArgs.java | 10 +- ...ngAdmissionPolicyBindingSpecPatchArgs.java | 10 +- .../ValidatingAdmissionPolicyBindingSpec.java | 4 +- ...datingAdmissionPolicyBindingSpecPatch.java | 4 +- .../v1alpha1/MutatingAdmissionPolicy.java | 138 + .../v1alpha1/MutatingAdmissionPolicyArgs.java | 199 + .../MutatingAdmissionPolicyBinding.java | 142 + .../MutatingAdmissionPolicyBindingArgs.java | 199 + .../MutatingAdmissionPolicyBindingList.java | 139 + ...utatingAdmissionPolicyBindingListArgs.java | 214 + .../MutatingAdmissionPolicyBindingPatch.java | 149 + ...tatingAdmissionPolicyBindingPatchArgs.java | 199 + .../v1alpha1/MutatingAdmissionPolicyList.java | 139 + .../MutatingAdmissionPolicyListArgs.java | 214 + .../MutatingAdmissionPolicyPatch.java | 145 + .../MutatingAdmissionPolicyPatchArgs.java | 199 + .../ValidatingAdmissionPolicyBinding.java | 4 - ...ValidatingAdmissionPolicyBindingPatch.java | 4 - .../inputs/ApplyConfigurationArgs.java | 195 + .../inputs/ApplyConfigurationPatchArgs.java | 195 + .../v1alpha1/inputs/JSONPatchArgs.java | 299 + .../v1alpha1/inputs/JSONPatchPatchArgs.java | 299 + .../inputs/MutatingAdmissionPolicyArgs.java | 203 + .../MutatingAdmissionPolicyBindingArgs.java | 207 + ...utatingAdmissionPolicyBindingSpecArgs.java | 163 + ...ngAdmissionPolicyBindingSpecPatchArgs.java | 163 + .../MutatingAdmissionPolicySpecArgs.java | 440 + .../MutatingAdmissionPolicySpecPatchArgs.java | 440 + .../v1alpha1/inputs/MutationArgs.java | 167 + .../v1alpha1/inputs/MutationPatchArgs.java | 163 + .../ValidatingAdmissionPolicyBindingArgs.java | 4 - ...idatingAdmissionPolicyBindingSpecArgs.java | 8 +- ...ngAdmissionPolicyBindingSpecPatchArgs.java | 8 +- .../ValidatingAdmissionPolicySpecArgs.java | 50 +- ...alidatingAdmissionPolicySpecPatchArgs.java | 50 +- .../v1alpha1/inputs/ValidationArgs.java | 36 +- .../v1alpha1/inputs/ValidationPatchArgs.java | 36 +- .../v1alpha1/outputs/ApplyConfiguration.java | 111 + .../outputs/ApplyConfigurationPatch.java | 111 + .../v1alpha1/outputs/JSONPatch.java | 163 + .../v1alpha1/outputs/JSONPatchPatch.java | 163 + .../outputs/MutatingAdmissionPolicy.java | 122 + .../MutatingAdmissionPolicyBinding.java | 122 + .../MutatingAdmissionPolicyBindingSpec.java | 101 + ...tatingAdmissionPolicyBindingSpecPatch.java | 101 + .../outputs/MutatingAdmissionPolicySpec.java | 240 + .../MutatingAdmissionPolicySpecPatch.java | 240 + .../v1alpha1/outputs/Mutation.java | 104 + .../v1alpha1/outputs/MutationPatch.java | 101 + .../ValidatingAdmissionPolicyBindingSpec.java | 4 +- ...datingAdmissionPolicyBindingSpecPatch.java | 4 +- .../ValidatingAdmissionPolicySpec.java | 24 +- .../ValidatingAdmissionPolicySpecPatch.java | 24 +- .../v1alpha1/outputs/Validation.java | 20 +- .../v1alpha1/outputs/ValidationPatch.java | 20 +- ...idatingAdmissionPolicyBindingSpecArgs.java | 10 +- ...ngAdmissionPolicyBindingSpecPatchArgs.java | 10 +- .../ValidatingAdmissionPolicyBindingSpec.java | 4 +- ...datingAdmissionPolicyBindingSpecPatch.java | 4 +- .../v1/inputs/JSONSchemaPropsArgs.java | 8 +- .../v1/inputs/JSONSchemaPropsPatchArgs.java | 8 +- .../v1/outputs/JSONSchemaProps.java | 4 +- .../v1/outputs/JSONSchemaPropsPatch.java | 4 +- .../apps/v1/inputs/StatefulSetSpecArgs.java | 8 +- .../v1/inputs/StatefulSetSpecPatchArgs.java | 8 +- .../apps/v1/outputs/StatefulSetSpec.java | 4 +- .../apps/v1/outputs/StatefulSetSpecPatch.java | 4 +- .../autoscaling/v2/inputs/MetricSpecArgs.java | 16 +- .../v2/inputs/MetricSpecPatchArgs.java | 16 +- .../v2/inputs/MetricStatusArgs.java | 8 +- .../autoscaling/v2/outputs/MetricSpec.java | 8 +- .../v2/outputs/MetricSpecPatch.java | 8 +- .../autoscaling/v2/outputs/MetricStatus.java | 4 +- .../v2/outputs/MetricStatusPatch.java | 4 +- .../batch/v1/inputs/JobSpecArgs.java | 8 +- .../batch/v1/inputs/JobSpecPatchArgs.java | 8 +- .../kubernetes/batch/v1/outputs/JobSpec.java | 4 +- .../batch/v1/outputs/JobSpecPatch.java | 4 +- .../coordination/v1alpha1/LeaseCandidate.java | 5 + .../v1alpha1/LeaseCandidatePatch.java | 5 + .../coordination/v1alpha2/LeaseCandidate.java | 143 + .../v1alpha2/LeaseCandidateArgs.java | 199 + .../v1alpha2/LeaseCandidateList.java | 139 + .../v1alpha2/LeaseCandidateListArgs.java | 214 + .../v1alpha2/LeaseCandidatePatch.java | 150 + .../v1alpha2/LeaseCandidatePatchArgs.java | 199 + .../v1alpha2/inputs/LeaseCandidateArgs.java | 203 + .../inputs/LeaseCandidateSpecArgs.java | 282 + .../inputs/LeaseCandidateSpecPatchArgs.java | 272 + .../v1alpha2/outputs/LeaseCandidate.java | 122 + .../v1alpha2/outputs/LeaseCandidateSpec.java | 169 + .../outputs/LeaseCandidateSpecPatch.java | 162 + .../pulumi/kubernetes/core/v1/Binding.java | 2 +- .../kubernetes/core/v1/BindingPatch.java | 2 +- .../kubernetes/core/v1/ServiceAccount.java | 4 +- .../core/v1/ServiceAccountArgs.java | 10 +- .../core/v1/ServiceAccountPatch.java | 4 +- .../core/v1/ServiceAccountPatchArgs.java | 10 +- .../inputs/CSIPersistentVolumeSourceArgs.java | 2 +- .../CSIPersistentVolumeSourcePatchArgs.java | 2 +- .../core/v1/inputs/GRPCActionArgs.java | 4 + .../core/v1/inputs/GRPCActionPatchArgs.java | 4 + .../core/v1/inputs/LifecycleHandlerArgs.java | 32 +- .../v1/inputs/LifecycleHandlerPatchArgs.java | 32 +- .../core/v1/inputs/LocalVolumeSourceArgs.java | 2 +- .../v1/inputs/LocalVolumeSourcePatchArgs.java | 2 +- .../v1/inputs/NamespaceConditionArgs.java | 60 + .../core/v1/inputs/NodeStatusArgs.java | 28 +- .../PersistentVolumeClaimConditionArgs.java | 40 + ...rsistentVolumeClaimConditionPatchArgs.java | 40 + .../v1/inputs/PersistentVolumeSpecArgs.java | 136 +- .../inputs/PersistentVolumeSpecPatchArgs.java | 136 +- .../v1/inputs/PodDNSConfigOptionArgs.java | 28 +- .../inputs/PodDNSConfigOptionPatchArgs.java | 28 +- .../v1/inputs/PodSecurityContextArgs.java | 77 + .../inputs/PodSecurityContextPatchArgs.java | 77 + .../core/v1/inputs/PodSpecArgs.java | 62 +- .../core/v1/inputs/PodSpecPatchArgs.java | 62 +- .../core/v1/inputs/PodStatusArgs.java | 30 +- .../core/v1/inputs/PortStatusArgs.java | 4 + .../kubernetes/core/v1/inputs/ProbeArgs.java | 32 +- .../core/v1/inputs/ProbePatchArgs.java | 32 +- .../core/v1/inputs/ResourceHealthArgs.java | 2 +- .../core/v1/inputs/ResourceStatusArgs.java | 22 +- .../core/v1/inputs/ServiceAccountArgs.java | 10 +- .../core/v1/inputs/ServiceSpecArgs.java | 8 +- .../core/v1/inputs/ServiceSpecPatchArgs.java | 8 +- .../v1/inputs/TypedObjectReferenceArgs.java | 4 + .../inputs/TypedObjectReferencePatchArgs.java | 4 + .../kubernetes/core/v1/inputs/VolumeArgs.java | 144 +- .../core/v1/inputs/VolumePatchArgs.java | 144 +- .../core/v1/outputs/LifecycleHandler.java | 16 +- .../v1/outputs/LifecycleHandlerPatch.java | 16 +- .../core/v1/outputs/NamespaceCondition.java | 24 + .../v1/outputs/NamespaceConditionPatch.java | 24 + .../core/v1/outputs/NodeStatus.java | 12 +- .../core/v1/outputs/NodeStatusPatch.java | 12 +- .../PersistentVolumeClaimCondition.java | 16 + .../PersistentVolumeClaimConditionPatch.java | 16 + .../core/v1/outputs/PersistentVolumeSpec.java | 68 +- .../v1/outputs/PersistentVolumeSpecPatch.java | 68 +- .../core/v1/outputs/PodDNSConfigOption.java | 12 +- .../v1/outputs/PodDNSConfigOptionPatch.java | 12 +- .../core/v1/outputs/PodSecurityContext.java | 41 + .../v1/outputs/PodSecurityContextPatch.java | 41 + .../kubernetes/core/v1/outputs/PodSpec.java | 34 +- .../core/v1/outputs/PodSpecPatch.java | 34 +- .../kubernetes/core/v1/outputs/PodStatus.java | 12 +- .../core/v1/outputs/PodStatusPatch.java | 12 +- .../kubernetes/core/v1/outputs/Probe.java | 16 +- .../core/v1/outputs/ProbePatch.java | 16 +- .../core/v1/outputs/ResourceStatus.java | 8 +- .../core/v1/outputs/ResourceStatusPatch.java | 8 +- .../core/v1/outputs/ServiceAccount.java | 4 +- .../core/v1/outputs/ServiceSpec.java | 4 +- .../core/v1/outputs/ServiceSpecPatch.java | 4 +- .../kubernetes/core/v1/outputs/Volume.java | 72 +- .../core/v1/outputs/VolumePatch.java | 72 +- ...LimitedPriorityLevelConfigurationArgs.java | 16 +- ...edPriorityLevelConfigurationPatchArgs.java | 16 +- .../LimitedPriorityLevelConfiguration.java | 8 +- ...imitedPriorityLevelConfigurationPatch.java | 8 +- .../resource/v1alpha1/ResourceClaim.java | 3 +- .../resource/v1alpha1/ResourceClaimPatch.java | 3 +- .../v1alpha1/ResourceClaimTemplate.java | 3 +- .../v1alpha1/ResourceClaimTemplatePatch.java | 3 +- .../resource/v1alpha2/ResourceClaim.java | 3 +- .../resource/v1alpha2/ResourceClaimPatch.java | 3 +- .../v1alpha2/ResourceClaimTemplate.java | 3 +- .../v1alpha2/ResourceClaimTemplatePatch.java | 3 +- .../resource/v1alpha2/ResourceSlice.java | 3 +- .../resource/v1alpha2/ResourceSlicePatch.java | 3 +- .../resource/v1alpha3/DeviceClass.java | 5 + .../resource/v1alpha3/DeviceClassPatch.java | 5 + .../resource/v1alpha3/ResourceClaim.java | 3 +- .../resource/v1alpha3/ResourceClaimPatch.java | 3 +- .../v1alpha3/ResourceClaimTemplate.java | 3 +- .../v1alpha3/ResourceClaimTemplatePatch.java | 3 +- .../resource/v1alpha3/ResourceSlice.java | 3 +- .../resource/v1alpha3/ResourceSliceList.java | 153 + .../v1alpha3/ResourceSliceListArgs.java | 251 + .../resource/v1alpha3/ResourceSlicePatch.java | 3 +- .../inputs/AllocatedDeviceStatusArgs.java | 320 + .../inputs/CELDeviceSelectorArgs.java | 8 + .../inputs/CELDeviceSelectorPatchArgs.java | 8 + .../DeviceRequestAllocationResultArgs.java | 48 + .../v1alpha3/inputs/DeviceRequestArgs.java | 8 + .../inputs/DeviceRequestPatchArgs.java | 8 + .../inputs/NetworkDeviceDataArgs.java | 188 + .../inputs/OpaqueDeviceConfigurationArgs.java | 8 + .../OpaqueDeviceConfigurationPatchArgs.java | 8 + .../inputs/ResourceClaimStatusArgs.java | 48 + .../inputs/ResourceClaimTemplateSpecArgs.java | 8 +- .../ResourceClaimTemplateSpecPatchArgs.java | 8 +- .../v1alpha3/inputs/ResourceSliceArgs.java | 225 + .../outputs/AllocatedDeviceStatus.java | 188 + .../outputs/AllocatedDeviceStatusPatch.java | 181 + .../v1alpha3/outputs/CELDeviceSelector.java | 4 + .../outputs/CELDeviceSelectorPatch.java | 4 + .../v1alpha3/outputs/DeviceRequest.java | 4 + .../DeviceRequestAllocationResult.java | 28 + .../DeviceRequestAllocationResultPatch.java | 26 + .../v1alpha3/outputs/DeviceRequestPatch.java | 4 + .../v1alpha3/outputs/NetworkDeviceData.java | 111 + .../outputs/NetworkDeviceDataPatch.java | 111 + .../outputs/OpaqueDeviceConfiguration.java | 4 + .../OpaqueDeviceConfigurationPatch.java | 4 + .../v1alpha3/outputs/ResourceClaimStatus.java | 25 + .../outputs/ResourceClaimStatusPatch.java | 25 + .../outputs/ResourceClaimTemplateSpec.java | 4 +- .../ResourceClaimTemplateSpecPatch.java | 4 +- .../v1alpha3/outputs/ResourceSlice.java | 129 + .../resource/v1beta1/DeviceClass.java | 153 + .../resource/v1beta1/DeviceClassArgs.java | 219 + .../resource/v1beta1/DeviceClassList.java | 139 + .../resource/v1beta1/DeviceClassListArgs.java | 214 + .../resource/v1beta1/DeviceClassPatch.java | 160 + .../v1beta1/DeviceClassPatchArgs.java | 215 + .../resource/v1beta1/ResourceClaim.java | 163 + .../resource/v1beta1/ResourceClaimArgs.java | 203 + .../resource/v1beta1/ResourceClaimList.java | 139 + .../v1beta1/ResourceClaimListArgs.java | 214 + .../resource/v1beta1/ResourceClaimPatch.java | 169 + .../v1beta1/ResourceClaimPatchArgs.java | 199 + .../v1beta1/ResourceClaimTemplate.java | 151 + .../v1beta1/ResourceClaimTemplateArgs.java | 211 + .../v1beta1/ResourceClaimTemplateList.java | 139 + .../ResourceClaimTemplateListArgs.java | 214 + .../v1beta1/ResourceClaimTemplatePatch.java | 158 + .../ResourceClaimTemplatePatchArgs.java | 207 + .../resource/v1beta1/ResourceSlice.java | 158 + .../resource/v1beta1/ResourceSliceArgs.java | 211 + .../resource/v1beta1/ResourceSliceList.java | 139 + .../v1beta1/ResourceSliceListArgs.java | 214 + .../resource/v1beta1/ResourceSlicePatch.java | 165 + .../v1beta1/ResourceSlicePatchArgs.java | 207 + .../inputs/AllocatedDeviceStatusArgs.java | 320 + .../v1beta1/inputs/AllocationResultArgs.java | 125 + .../v1beta1/inputs/BasicDeviceArgs.java | 143 + .../v1beta1/inputs/BasicDevicePatchArgs.java | 143 + .../v1beta1/inputs/CELDeviceSelectorArgs.java | 201 + .../inputs/CELDeviceSelectorPatchArgs.java | 199 + .../DeviceAllocationConfigurationArgs.java | 177 + .../inputs/DeviceAllocationResultArgs.java | 156 + .../resource/v1beta1/inputs/DeviceArgs.java | 129 + .../v1beta1/inputs/DeviceAttributeArgs.java | 200 + .../v1beta1/inputs/DeviceCapacityArgs.java | 89 + .../v1beta1/inputs/DeviceClaimArgs.java | 194 + .../inputs/DeviceClaimConfigurationArgs.java | 136 + .../DeviceClaimConfigurationPatchArgs.java | 136 + .../v1beta1/inputs/DeviceClaimPatchArgs.java | 194 + .../v1beta1/inputs/DeviceClassArgs.java | 225 + .../inputs/DeviceClassConfigurationArgs.java | 87 + .../DeviceClassConfigurationPatchArgs.java | 87 + .../v1beta1/inputs/DeviceClassSpecArgs.java | 156 + .../inputs/DeviceClassSpecPatchArgs.java | 156 + .../v1beta1/inputs/DeviceConstraintArgs.java | 151 + .../inputs/DeviceConstraintPatchArgs.java | 151 + .../v1beta1/inputs/DevicePatchArgs.java | 125 + .../DeviceRequestAllocationResultArgs.java | 273 + .../v1beta1/inputs/DeviceRequestArgs.java | 375 + .../inputs/DeviceRequestPatchArgs.java | 368 + .../v1beta1/inputs/DeviceSelectorArgs.java | 87 + .../inputs/DeviceSelectorPatchArgs.java | 87 + .../v1beta1/inputs/NetworkDeviceDataArgs.java | 188 + .../inputs/OpaqueDeviceConfigurationArgs.java | 154 + .../OpaqueDeviceConfigurationPatchArgs.java | 149 + .../v1beta1/inputs/ResourceClaimArgs.java | 247 + .../ResourceClaimConsumerReferenceArgs.java | 208 + .../v1beta1/inputs/ResourceClaimSpecArgs.java | 87 + .../inputs/ResourceClaimSpecPatchArgs.java | 87 + .../inputs/ResourceClaimStatusArgs.java | 214 + .../inputs/ResourceClaimTemplateArgs.java | 217 + .../inputs/ResourceClaimTemplateSpecArgs.java | 129 + .../ResourceClaimTemplateSpecPatchArgs.java | 125 + .../v1beta1/inputs/ResourcePoolArgs.java | 194 + .../v1beta1/inputs/ResourcePoolPatchArgs.java | 186 + .../v1beta1/inputs/ResourceSliceArgs.java | 225 + .../v1beta1/inputs/ResourceSliceSpecArgs.java | 352 + .../inputs/ResourceSliceSpecPatchArgs.java | 345 + .../outputs/AllocatedDeviceStatus.java | 188 + .../outputs/AllocatedDeviceStatusPatch.java | 181 + .../v1beta1/outputs/AllocationResult.java | 79 + .../outputs/AllocationResultPatch.java | 79 + .../resource/v1beta1/outputs/BasicDevice.java | 88 + .../v1beta1/outputs/BasicDevicePatch.java | 88 + .../v1beta1/outputs/CELDeviceSelector.java | 114 + .../outputs/CELDeviceSelectorPatch.java | 113 + .../resource/v1beta1/outputs/Device.java | 82 + .../DeviceAllocationConfiguration.java | 107 + .../DeviceAllocationConfigurationPatch.java | 104 + .../outputs/DeviceAllocationResult.java | 89 + .../outputs/DeviceAllocationResultPatch.java | 89 + .../v1beta1/outputs/DeviceAttribute.java | 122 + .../v1beta1/outputs/DeviceCapacity.java | 58 + .../resource/v1beta1/outputs/DeviceClaim.java | 110 + .../outputs/DeviceClaimConfiguration.java | 83 + .../DeviceClaimConfigurationPatch.java | 83 + .../v1beta1/outputs/DeviceClaimPatch.java | 110 + .../resource/v1beta1/outputs/DeviceClass.java | 133 + .../outputs/DeviceClassConfiguration.java | 57 + .../DeviceClassConfigurationPatch.java | 57 + .../v1beta1/outputs/DeviceClassSpec.java | 89 + .../v1beta1/outputs/DeviceClassSpecPatch.java | 89 + .../v1beta1/outputs/DeviceConstraint.java | 90 + .../outputs/DeviceConstraintPatch.java | 90 + .../resource/v1beta1/outputs/DevicePatch.java | 79 + .../v1beta1/outputs/DeviceRequest.java | 214 + .../DeviceRequestAllocationResult.java | 163 + .../DeviceRequestAllocationResultPatch.java | 154 + .../v1beta1/outputs/DeviceRequestPatch.java | 209 + .../v1beta1/outputs/DeviceSelector.java | 57 + .../v1beta1/outputs/DeviceSelectorPatch.java | 57 + .../v1beta1/outputs/NetworkDeviceData.java | 111 + .../outputs/NetworkDeviceDataPatch.java | 111 + .../outputs/OpaqueDeviceConfiguration.java | 94 + .../OpaqueDeviceConfigurationPatch.java | 91 + .../v1beta1/outputs/ResourceClaim.java | 147 + .../ResourceClaimConsumerReference.java | 127 + .../ResourceClaimConsumerReferencePatch.java | 120 + .../v1beta1/outputs/ResourceClaimSpec.java | 57 + .../outputs/ResourceClaimSpecPatch.java | 57 + .../v1beta1/outputs/ResourceClaimStatus.java | 120 + .../outputs/ResourceClaimStatusPatch.java | 120 + .../outputs/ResourceClaimTemplate.java | 129 + .../outputs/ResourceClaimTemplateSpec.java | 82 + .../ResourceClaimTemplateSpecPatch.java | 79 + .../v1beta1/outputs/ResourcePool.java | 117 + .../v1beta1/outputs/ResourcePoolPatch.java | 112 + .../v1beta1/outputs/ResourceSlice.java | 129 + .../v1beta1/outputs/ResourceSliceSpec.java | 203 + .../outputs/ResourceSliceSpecPatch.java | 198 + .../v1/inputs/VolumeAttachmentSourceArgs.java | 2 +- .../VolumeAttachmentSourcePatchArgs.java | 2 +- .../admissionregistration/v1alpha1/index.ts | 42 + .../v1alpha1/mutatingAdmissionPolicy.ts | 103 + .../mutatingAdmissionPolicyBinding.ts | 107 + .../mutatingAdmissionPolicyBindingList.ts | 106 + .../mutatingAdmissionPolicyBindingPatch.ts | 113 + .../v1alpha1/mutatingAdmissionPolicyList.ts | 106 + .../v1alpha1/mutatingAdmissionPolicyPatch.ts | 109 + .../validatingAdmissionPolicyBinding.ts | 4 - .../validatingAdmissionPolicyBindingPatch.ts | 4 - sdk/nodejs/coordination/index.ts | 2 + .../coordination/v1alpha1/leaseCandidate.ts | 2 + .../v1alpha1/leaseCandidatePatch.ts | 2 + sdk/nodejs/coordination/v1alpha2/index.ts | 39 + .../coordination/v1alpha2/leaseCandidate.ts | 105 + .../v1alpha2/leaseCandidateList.ts | 106 + .../v1alpha2/leaseCandidatePatch.ts | 111 + sdk/nodejs/core/v1/binding.ts | 2 +- sdk/nodejs/core/v1/bindingPatch.ts | 2 +- sdk/nodejs/core/v1/serviceAccount.ts | 4 +- sdk/nodejs/core/v1/serviceAccountPatch.ts | 4 +- sdk/nodejs/resource/index.ts | 2 + sdk/nodejs/resource/v1alpha1/resourceClaim.ts | 2 +- .../resource/v1alpha1/resourceClaimPatch.ts | 2 +- .../v1alpha1/resourceClaimTemplate.ts | 2 +- .../v1alpha1/resourceClaimTemplatePatch.ts | 2 +- sdk/nodejs/resource/v1alpha2/resourceClaim.ts | 2 +- .../resource/v1alpha2/resourceClaimPatch.ts | 2 +- .../v1alpha2/resourceClaimTemplate.ts | 2 +- .../v1alpha2/resourceClaimTemplatePatch.ts | 2 +- sdk/nodejs/resource/v1alpha2/resourceSlice.ts | 2 +- .../resource/v1alpha2/resourceSlicePatch.ts | 2 +- sdk/nodejs/resource/v1alpha3/deviceClass.ts | 2 + .../resource/v1alpha3/deviceClassPatch.ts | 2 + sdk/nodejs/resource/v1alpha3/index.ts | 7 + sdk/nodejs/resource/v1alpha3/resourceClaim.ts | 2 +- .../resource/v1alpha3/resourceClaimPatch.ts | 2 +- .../v1alpha3/resourceClaimTemplate.ts | 2 +- .../v1alpha3/resourceClaimTemplatePatch.ts | 2 +- sdk/nodejs/resource/v1alpha3/resourceSlice.ts | 2 +- .../resource/v1alpha3/resourceSliceList.ts | 116 + .../resource/v1alpha3/resourceSlicePatch.ts | 2 +- sdk/nodejs/resource/v1beta1/deviceClass.ts | 118 + .../resource/v1beta1/deviceClassList.ts | 106 + .../resource/v1beta1/deviceClassPatch.ts | 121 + sdk/nodejs/resource/v1beta1/index.ts | 102 + sdk/nodejs/resource/v1beta1/resourceClaim.ts | 116 + .../resource/v1beta1/resourceClaimList.ts | 106 + .../resource/v1beta1/resourceClaimPatch.ts | 119 + .../resource/v1beta1/resourceClaimTemplate.ts | 114 + .../v1beta1/resourceClaimTemplateList.ts | 106 + .../v1beta1/resourceClaimTemplatePatch.ts | 117 + sdk/nodejs/resource/v1beta1/resourceSlice.ts | 122 + .../resource/v1beta1/resourceSliceList.ts | 106 + .../resource/v1beta1/resourceSlicePatch.ts | 125 + sdk/nodejs/tsconfig.json | 24 + sdk/nodejs/types/input.ts | 2581 ++++- sdk/nodejs/types/output.ts | 3006 +++++- sdk/nodejs/yaml/yaml.ts | 197 + sdk/python/pulumi_kubernetes/__init__.py | 36 + .../admissionregistration/v1/_inputs.py | 12 +- .../admissionregistration/v1/outputs.py | 8 +- .../v1alpha1/MutatingAdmissionPolicy.py | 214 + .../MutatingAdmissionPolicyBinding.py | 222 + .../MutatingAdmissionPolicyBindingList.py | 215 + .../MutatingAdmissionPolicyBindingPatch.py | 234 + .../v1alpha1/MutatingAdmissionPolicyList.py | 215 + .../v1alpha1/MutatingAdmissionPolicyPatch.py | 226 + .../ValidatingAdmissionPolicyBinding.py | 8 - .../ValidatingAdmissionPolicyBindingPatch.py | 8 - .../v1alpha1/__init__.py | 6 + .../admissionregistration/v1alpha1/_inputs.py | 2133 +++- .../admissionregistration/v1alpha1/outputs.py | 1611 ++- .../admissionregistration/v1beta1/_inputs.py | 12 +- .../admissionregistration/v1beta1/outputs.py | 8 +- .../apiextensions/v1/_inputs.py | 12 +- .../apiextensions/v1/outputs.py | 8 +- .../pulumi_kubernetes/apps/v1/_inputs.py | 12 +- .../pulumi_kubernetes/apps/v1/outputs.py | 8 +- .../autoscaling/v2/_inputs.py | 30 +- .../autoscaling/v2/outputs.py | 24 +- .../pulumi_kubernetes/batch/v1/_inputs.py | 12 +- .../pulumi_kubernetes/batch/v1/outputs.py | 8 +- .../coordination/__init__.py | 3 + .../coordination/v1alpha1/LeaseCandidate.py | 2 + .../v1alpha1/LeaseCandidatePatch.py | 2 + .../coordination/v1alpha2/LeaseCandidate.py | 216 + .../v1alpha2/LeaseCandidateList.py | 215 + .../v1alpha2/LeaseCandidatePatch.py | 228 + .../coordination/v1alpha2/__init__.py | 12 + .../coordination/v1alpha2/_inputs.py | 393 + .../coordination/v1alpha2/outputs.py | 313 + .../pulumi_kubernetes/core/v1/Binding.py | 4 +- .../pulumi_kubernetes/core/v1/BindingPatch.py | 4 +- .../core/v1/ServiceAccount.py | 8 +- .../core/v1/ServiceAccountPatch.py | 8 +- .../pulumi_kubernetes/core/v1/_inputs.py | 877 +- .../pulumi_kubernetes/core/v1/outputs.py | 648 +- .../flowcontrol/v1beta3/_inputs.py | 24 +- .../flowcontrol/v1beta3/outputs.py | 16 +- .../pulumi_kubernetes/resource/__init__.py | 3 + .../resource/v1alpha1/ResourceClaim.py | 2 +- .../resource/v1alpha1/ResourceClaimPatch.py | 2 +- .../v1alpha1/ResourceClaimTemplate.py | 2 +- .../v1alpha1/ResourceClaimTemplatePatch.py | 2 +- .../resource/v1alpha2/ResourceClaim.py | 2 +- .../resource/v1alpha2/ResourceClaimPatch.py | 2 +- .../v1alpha2/ResourceClaimTemplate.py | 2 +- .../v1alpha2/ResourceClaimTemplatePatch.py | 2 +- .../resource/v1alpha2/ResourceSlice.py | 2 +- .../resource/v1alpha2/ResourceSlicePatch.py | 2 +- .../resource/v1alpha3/DeviceClass.py | 2 + .../resource/v1alpha3/DeviceClassPatch.py | 2 + .../resource/v1alpha3/ResourceClaim.py | 2 +- .../resource/v1alpha3/ResourceClaimPatch.py | 2 +- .../v1alpha3/ResourceClaimTemplate.py | 2 +- .../v1alpha3/ResourceClaimTemplatePatch.py | 2 +- .../resource/v1alpha3/ResourceSlice.py | 16 +- .../resource/v1alpha3/ResourceSliceList.py | 245 + .../resource/v1alpha3/ResourceSlicePatch.py | 2 +- .../resource/v1alpha3/__init__.py | 1 + .../resource/v1alpha3/_inputs.py | 462 +- .../resource/v1alpha3/outputs.py | 597 +- .../resource/v1beta1/DeviceClass.py | 237 + .../resource/v1beta1/DeviceClassList.py | 215 + .../resource/v1beta1/DeviceClassPatch.py | 248 + .../resource/v1beta1/ResourceClaim.py | 232 + .../resource/v1beta1/ResourceClaimList.py | 216 + .../resource/v1beta1/ResourceClaimPatch.py | 243 + .../resource/v1beta1/ResourceClaimTemplate.py | 229 + .../v1beta1/ResourceClaimTemplateList.py | 215 + .../v1beta1/ResourceClaimTemplatePatch.py | 240 + .../resource/v1beta1/ResourceSlice.py | 246 + .../resource/v1beta1/ResourceSliceList.py | 216 + .../resource/v1beta1/ResourceSlicePatch.py | 257 + .../resource/v1beta1/__init__.py | 21 + .../resource/v1beta1/_inputs.py | 3867 +++++++ .../resource/v1beta1/outputs.py | 3334 ++++++ .../pulumi_kubernetes/storage/v1/_inputs.py | 8 +- .../pulumi_kubernetes/storage/v1/outputs.py | 8 +- sdk/python/pulumi_kubernetes/yaml/yaml.py | 90 + 867 files changed, 88836 insertions(+), 5382 deletions(-) create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ApplyConfigurationArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ApplyConfigurationPatchArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/JSONPatchArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/JSONPatchPatchArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingSpecArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingSpecPatchArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicySpecArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicySpecPatchArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutationArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutationPatchArgs.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicy.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBinding.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBindingList.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBindingPatch.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyList.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyPatch.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ApplyConfiguration.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ApplyConfigurationPatch.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/JSONPatch.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/JSONPatchPatch.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicy.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBinding.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBindingSpec.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBindingSpecPatch.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicySpec.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicySpecPatch.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/Mutation.cs create mode 100644 sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutationPatch.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateArgs.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateSpecArgs.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateSpecPatchArgs.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/LeaseCandidate.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/LeaseCandidateList.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/LeaseCandidatePatch.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidate.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidateSpec.cs create mode 100644 sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidateSpecPatch.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/Inputs/AllocatedDeviceStatusArgs.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/Inputs/NetworkDeviceDataArgs.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceSliceArgs.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/Outputs/AllocatedDeviceStatus.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/Outputs/AllocatedDeviceStatusPatch.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/Outputs/NetworkDeviceData.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/Outputs/NetworkDeviceDataPatch.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceSlice.cs create mode 100644 sdk/dotnet/Resource/V1Alpha3/ResourceSliceList.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/DeviceClass.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/DeviceClassList.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/DeviceClassPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/AllocatedDeviceStatusArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/AllocationResultArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/BasicDeviceArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/BasicDevicePatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/CELDeviceSelectorArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/CELDeviceSelectorPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAllocationConfigurationArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAllocationResultArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAttributeArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceCapacityArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimConfigurationArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimConfigurationPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassConfigurationArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassConfigurationPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassSpecArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassSpecPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceConstraintArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceConstraintPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DevicePatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestAllocationResultArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceSelectorArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/DeviceSelectorPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/NetworkDeviceDataArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/OpaqueDeviceConfigurationArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/OpaqueDeviceConfigurationPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimConsumerReferenceArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimSpecArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimSpecPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimStatusArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateSpecArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateSpecPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourcePoolArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourcePoolPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceSpecArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceSpecPatchArgs.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/AllocatedDeviceStatus.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/AllocatedDeviceStatusPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/AllocationResult.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/AllocationResultPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/BasicDevice.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/BasicDevicePatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/CELDeviceSelector.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/CELDeviceSelectorPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/Device.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationConfiguration.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationConfigurationPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationResult.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationResultPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAttribute.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceCapacity.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaim.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimConfiguration.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimConfigurationPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClass.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassConfiguration.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassConfigurationPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassSpec.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassSpecPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceConstraint.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceConstraintPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DevicePatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequest.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestAllocationResult.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestAllocationResultPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceSelector.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/DeviceSelectorPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/NetworkDeviceData.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/NetworkDeviceDataPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/OpaqueDeviceConfiguration.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/OpaqueDeviceConfigurationPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaim.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimConsumerReference.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimConsumerReferencePatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimSpec.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimSpecPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimStatus.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimStatusPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplate.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplateSpec.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplateSpecPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourcePool.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourcePoolPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSlice.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSliceSpec.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSliceSpecPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceClaim.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceClaimList.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceClaimPatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplate.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplateList.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplatePatch.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceSlice.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceSliceList.cs create mode 100644 sdk/dotnet/Resource/V1Beta1/ResourceSlicePatch.cs create mode 100644 sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicy.go create mode 100644 sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.go create mode 100644 sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.go create mode 100644 sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.go create mode 100644 sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyList.go create mode 100644 sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.go create mode 100644 sdk/go/kubernetes/coordination/v1alpha2/init.go create mode 100644 sdk/go/kubernetes/coordination/v1alpha2/leaseCandidate.go create mode 100644 sdk/go/kubernetes/coordination/v1alpha2/leaseCandidateList.go create mode 100644 sdk/go/kubernetes/coordination/v1alpha2/leaseCandidatePatch.go create mode 100644 sdk/go/kubernetes/coordination/v1alpha2/pulumiTypes.go create mode 100644 sdk/go/kubernetes/resource/v1alpha3/resourceSliceList.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/deviceClass.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/deviceClassList.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/deviceClassPatch.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/init.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/pulumiTypes.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceClaim.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceClaimList.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceClaimPatch.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplate.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplateList.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplatePatch.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceSlice.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceSliceList.go create mode 100644 sdk/go/kubernetes/resource/v1beta1/resourceSlicePatch.go create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingListArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyListArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ApplyConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ApplyConfigurationPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/JSONPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/JSONPatchPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingSpecArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingSpecPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicySpecArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicySpecPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutationPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ApplyConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ApplyConfigurationPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/JSONPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/JSONPatchPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBinding.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBindingSpec.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBindingSpecPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicySpec.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicySpecPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/Mutation.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutationPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidate.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateList.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateListArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidatePatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidatePatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateSpecArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateSpecPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidate.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidateSpec.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidateSpecPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSliceList.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSliceListArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/AllocatedDeviceStatusArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/NetworkDeviceDataArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceSliceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/AllocatedDeviceStatus.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/AllocatedDeviceStatusPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/NetworkDeviceData.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/NetworkDeviceDataPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceSlice.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClass.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassList.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassListArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaim.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimList.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimListArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplate.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateList.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateListArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplatePatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlice.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceList.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceListArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlicePatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlicePatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/AllocatedDeviceStatusArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/AllocationResultArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/BasicDeviceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/BasicDevicePatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/CELDeviceSelectorArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/CELDeviceSelectorPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAllocationConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAllocationResultArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAttributeArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceCapacityArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimConfigurationPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassConfigurationPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassSpecArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassSpecPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceConstraintArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceConstraintPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DevicePatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestAllocationResultArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceSelectorArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceSelectorPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/NetworkDeviceDataArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/OpaqueDeviceConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/OpaqueDeviceConfigurationPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimConsumerReferenceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimSpecArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimSpecPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimStatusArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateSpecArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateSpecPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourcePoolArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourcePoolPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceSpecArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceSpecPatchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocatedDeviceStatus.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocatedDeviceStatusPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocationResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocationResultPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/BasicDevice.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/BasicDevicePatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/CELDeviceSelector.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/CELDeviceSelectorPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/Device.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationConfigurationPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationResultPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAttribute.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceCapacity.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaim.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimConfigurationPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClass.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassConfigurationPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassSpec.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassSpecPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceConstraint.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceConstraintPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DevicePatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequest.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestAllocationResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestAllocationResultPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceSelector.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceSelectorPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/NetworkDeviceData.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/NetworkDeviceDataPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/OpaqueDeviceConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/OpaqueDeviceConfigurationPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaim.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimConsumerReference.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimConsumerReferencePatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimSpec.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimSpecPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimStatus.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimStatusPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplate.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplateSpec.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplateSpecPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourcePool.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourcePoolPatch.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSlice.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSliceSpec.java create mode 100644 sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSliceSpecPatch.java create mode 100644 sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicy.ts create mode 100644 sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.ts create mode 100644 sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.ts create mode 100644 sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.ts create mode 100644 sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyList.ts create mode 100644 sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.ts create mode 100644 sdk/nodejs/coordination/v1alpha2/index.ts create mode 100644 sdk/nodejs/coordination/v1alpha2/leaseCandidate.ts create mode 100644 sdk/nodejs/coordination/v1alpha2/leaseCandidateList.ts create mode 100644 sdk/nodejs/coordination/v1alpha2/leaseCandidatePatch.ts create mode 100644 sdk/nodejs/resource/v1alpha3/resourceSliceList.ts create mode 100644 sdk/nodejs/resource/v1beta1/deviceClass.ts create mode 100644 sdk/nodejs/resource/v1beta1/deviceClassList.ts create mode 100644 sdk/nodejs/resource/v1beta1/deviceClassPatch.ts create mode 100644 sdk/nodejs/resource/v1beta1/index.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceClaim.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceClaimList.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceClaimPatch.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceClaimTemplate.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceClaimTemplateList.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceClaimTemplatePatch.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceSlice.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceSliceList.ts create mode 100644 sdk/nodejs/resource/v1beta1/resourceSlicePatch.ts create mode 100644 sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.py create mode 100644 sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.py create mode 100644 sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.py create mode 100644 sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.py create mode 100644 sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.py create mode 100644 sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.py create mode 100644 sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidate.py create mode 100644 sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidateList.py create mode 100644 sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidatePatch.py create mode 100644 sdk/python/pulumi_kubernetes/coordination/v1alpha2/__init__.py create mode 100644 sdk/python/pulumi_kubernetes/coordination/v1alpha2/_inputs.py create mode 100644 sdk/python/pulumi_kubernetes/coordination/v1alpha2/outputs.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSliceList.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClass.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClassList.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClassPatch.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaim.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimList.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimPatch.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplate.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplateList.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSlice.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSliceList.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSlicePatch.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/__init__.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/_inputs.py create mode 100644 sdk/python/pulumi_kubernetes/resource/v1beta1/outputs.py diff --git a/sdk/dotnet/AdmissionRegistration/V1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs b/sdk/dotnet/AdmissionRegistration/V1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs index 82168e06d9..c644deb7ed 100644 --- a/sdk/dotnet/AdmissionRegistration/V1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs @@ -49,7 +49,7 @@ public class ValidatingAdmissionPolicyBindingSpecArgs : global::Pulumi.ResourceA /// /// "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. /// - /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` /// /// Clients should expect to handle additional values by ignoring any values not recognized. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs index 26fa36ce9b..068129c632 100644 --- a/sdk/dotnet/AdmissionRegistration/V1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs @@ -49,7 +49,7 @@ public class ValidatingAdmissionPolicyBindingSpecPatchArgs : global::Pulumi.Reso /// /// "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. /// - /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` /// /// Clients should expect to handle additional values by ignoring any values not recognized. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs b/sdk/dotnet/AdmissionRegistration/V1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs index baf14e071d..7e148df6ca 100644 --- a/sdk/dotnet/AdmissionRegistration/V1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs +++ b/sdk/dotnet/AdmissionRegistration/V1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs @@ -41,7 +41,7 @@ public sealed class ValidatingAdmissionPolicyBindingSpec /// /// "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. /// - /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` /// /// Clients should expect to handle additional values by ignoring any values not recognized. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs b/sdk/dotnet/AdmissionRegistration/V1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs index 75d8130ce7..7fafb9d7bc 100644 --- a/sdk/dotnet/AdmissionRegistration/V1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs +++ b/sdk/dotnet/AdmissionRegistration/V1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs @@ -41,7 +41,7 @@ public sealed class ValidatingAdmissionPolicyBindingSpecPatch /// /// "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. /// - /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` /// /// Clients should expect to handle additional values by ignoring any values not recognized. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ApplyConfigurationArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ApplyConfigurationArgs.cs new file mode 100644 index 0000000000..43fe9859ab --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ApplyConfigurationArgs.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// ApplyConfiguration defines the desired configuration values of an object. + /// + public class ApplyConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + /// + /// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + /// + /// Object{ + /// spec: Object.spec{ + /// serviceAccountName: "example" + /// } + /// } + /// + /// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + /// + /// CEL expressions have access to the object types needed to create apply configurations: + /// + /// - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + /// + /// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + /// + /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + /// For example, a variable named 'foo' can be accessed as 'variables.foo'. + /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + /// request resource. + /// + /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + /// + /// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + /// + [Input("expression")] + public Input? Expression { get; set; } + + public ApplyConfigurationArgs() + { + } + public static new ApplyConfigurationArgs Empty => new ApplyConfigurationArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ApplyConfigurationPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ApplyConfigurationPatchArgs.cs new file mode 100644 index 0000000000..e0f1b7c01e --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ApplyConfigurationPatchArgs.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// ApplyConfiguration defines the desired configuration values of an object. + /// + public class ApplyConfigurationPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + /// + /// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + /// + /// Object{ + /// spec: Object.spec{ + /// serviceAccountName: "example" + /// } + /// } + /// + /// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + /// + /// CEL expressions have access to the object types needed to create apply configurations: + /// + /// - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + /// + /// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + /// + /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + /// For example, a variable named 'foo' can be accessed as 'variables.foo'. + /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + /// request resource. + /// + /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + /// + /// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + /// + [Input("expression")] + public Input? Expression { get; set; } + + public ApplyConfigurationPatchArgs() + { + } + public static new ApplyConfigurationPatchArgs Empty => new ApplyConfigurationPatchArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/JSONPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/JSONPatchArgs.cs new file mode 100644 index 0000000000..455b6007fb --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/JSONPatchArgs.cs @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// JSONPatch defines a JSON Patch. + /// + public class JSONPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + /// + /// expression must return an array of JSONPatch values. + /// + /// For example, this CEL expression returns a JSON patch to conditionally modify a value: + /// + /// [ + /// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + /// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + /// ] + /// + /// To define an object for the patch value, use Object types. For example: + /// + /// [ + /// JSONPatch{ + /// op: "add", + /// path: "/spec/selector", + /// value: Object.spec.selector{matchLabels: {"environment": "test"}} + /// } + /// ] + /// + /// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + /// + /// [ + /// JSONPatch{ + /// op: "add", + /// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + /// value: "test" + /// }, + /// ] + /// + /// CEL expressions have access to the types needed to create JSON patches and objects: + /// + /// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + /// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + /// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + /// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + /// function may be used to escape path keys containing '/' and '~'. + /// - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + /// + /// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + /// + /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + /// For example, a variable named 'foo' can be accessed as 'variables.foo'. + /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + /// request resource. + /// + /// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + /// + /// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + /// + /// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + /// + [Input("expression")] + public Input? Expression { get; set; } + + public JSONPatchArgs() + { + } + public static new JSONPatchArgs Empty => new JSONPatchArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/JSONPatchPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/JSONPatchPatchArgs.cs new file mode 100644 index 0000000000..196a772d90 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/JSONPatchPatchArgs.cs @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// JSONPatch defines a JSON Patch. + /// + public class JSONPatchPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + /// + /// expression must return an array of JSONPatch values. + /// + /// For example, this CEL expression returns a JSON patch to conditionally modify a value: + /// + /// [ + /// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + /// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + /// ] + /// + /// To define an object for the patch value, use Object types. For example: + /// + /// [ + /// JSONPatch{ + /// op: "add", + /// path: "/spec/selector", + /// value: Object.spec.selector{matchLabels: {"environment": "test"}} + /// } + /// ] + /// + /// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + /// + /// [ + /// JSONPatch{ + /// op: "add", + /// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + /// value: "test" + /// }, + /// ] + /// + /// CEL expressions have access to the types needed to create JSON patches and objects: + /// + /// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + /// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + /// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + /// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + /// function may be used to escape path keys containing '/' and '~'. + /// - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + /// + /// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + /// + /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + /// For example, a variable named 'foo' can be accessed as 'variables.foo'. + /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + /// request resource. + /// + /// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + /// + /// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + /// + /// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + /// + [Input("expression")] + public Input? Expression { get; set; } + + public JSONPatchPatchArgs() + { + } + public static new JSONPatchPatchArgs Empty => new JSONPatchPatchArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyArgs.cs new file mode 100644 index 0000000000..3d063ceaec --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyArgs.cs @@ -0,0 +1,12 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingArgs.cs new file mode 100644 index 0000000000..3d063ceaec --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingArgs.cs @@ -0,0 +1,12 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingSpecArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingSpecArgs.cs new file mode 100644 index 0000000000..786b4db4be --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingSpecArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + /// + public class MutatingAdmissionPolicyBindingSpecArgs : global::Pulumi.ResourceArgs + { + /// + /// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + /// + [Input("matchResources")] + public Input? MatchResources { get; set; } + + /// + /// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + /// + [Input("paramRef")] + public Input? ParamRef { get; set; } + + /// + /// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + /// + [Input("policyName")] + public Input? PolicyName { get; set; } + + public MutatingAdmissionPolicyBindingSpecArgs() + { + } + public static new MutatingAdmissionPolicyBindingSpecArgs Empty => new MutatingAdmissionPolicyBindingSpecArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingSpecPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingSpecPatchArgs.cs new file mode 100644 index 0000000000..29fd0d85d5 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicyBindingSpecPatchArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + /// + public class MutatingAdmissionPolicyBindingSpecPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + /// + [Input("matchResources")] + public Input? MatchResources { get; set; } + + /// + /// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + /// + [Input("paramRef")] + public Input? ParamRef { get; set; } + + /// + /// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + /// + [Input("policyName")] + public Input? PolicyName { get; set; } + + public MutatingAdmissionPolicyBindingSpecPatchArgs() + { + } + public static new MutatingAdmissionPolicyBindingSpecPatchArgs Empty => new MutatingAdmissionPolicyBindingSpecPatchArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicySpecArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicySpecArgs.cs new file mode 100644 index 0000000000..f9ef152523 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicySpecArgs.cs @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + /// + public class MutatingAdmissionPolicySpecArgs : global::Pulumi.ResourceArgs + { + /// + /// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + /// + /// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + /// + /// failurePolicy does not define how validations that evaluate to false are handled. + /// + /// Allowed values are Ignore or Fail. Defaults to Fail. + /// + [Input("failurePolicy")] + public Input? FailurePolicy { get; set; } + + [Input("matchConditions")] + private InputList? _matchConditions; + + /// + /// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + /// + /// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + /// + /// The exact matching logic is (in order): + /// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + /// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + /// 3. If any matchCondition evaluates to an error (but none are FALSE): + /// - If failurePolicy=Fail, reject the request + /// - If failurePolicy=Ignore, the policy is skipped + /// + public InputList MatchConditions + { + get => _matchConditions ?? (_matchConditions = new InputList()); + set => _matchConditions = value; + } + + /// + /// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + /// + [Input("matchConstraints")] + public Input? MatchConstraints { get; set; } + + [Input("mutations")] + private InputList? _mutations; + + /// + /// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + /// + public InputList Mutations + { + get => _mutations ?? (_mutations = new InputList()); + set => _mutations = value; + } + + /// + /// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + /// + [Input("paramKind")] + public Input? ParamKind { get; set; } + + /// + /// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + /// + /// Never: These mutations will not be called more than once per binding in a single admission evaluation. + /// + /// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + /// + [Input("reinvocationPolicy")] + public Input? ReinvocationPolicy { get; set; } + + [Input("variables")] + private InputList? _variables; + + /// + /// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + /// + /// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + /// + public InputList Variables + { + get => _variables ?? (_variables = new InputList()); + set => _variables = value; + } + + public MutatingAdmissionPolicySpecArgs() + { + } + public static new MutatingAdmissionPolicySpecArgs Empty => new MutatingAdmissionPolicySpecArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicySpecPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicySpecPatchArgs.cs new file mode 100644 index 0000000000..c43aa97cdd --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutatingAdmissionPolicySpecPatchArgs.cs @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + /// + public class MutatingAdmissionPolicySpecPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + /// + /// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + /// + /// failurePolicy does not define how validations that evaluate to false are handled. + /// + /// Allowed values are Ignore or Fail. Defaults to Fail. + /// + [Input("failurePolicy")] + public Input? FailurePolicy { get; set; } + + [Input("matchConditions")] + private InputList? _matchConditions; + + /// + /// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + /// + /// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + /// + /// The exact matching logic is (in order): + /// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + /// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + /// 3. If any matchCondition evaluates to an error (but none are FALSE): + /// - If failurePolicy=Fail, reject the request + /// - If failurePolicy=Ignore, the policy is skipped + /// + public InputList MatchConditions + { + get => _matchConditions ?? (_matchConditions = new InputList()); + set => _matchConditions = value; + } + + /// + /// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + /// + [Input("matchConstraints")] + public Input? MatchConstraints { get; set; } + + [Input("mutations")] + private InputList? _mutations; + + /// + /// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + /// + public InputList Mutations + { + get => _mutations ?? (_mutations = new InputList()); + set => _mutations = value; + } + + /// + /// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + /// + [Input("paramKind")] + public Input? ParamKind { get; set; } + + /// + /// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + /// + /// Never: These mutations will not be called more than once per binding in a single admission evaluation. + /// + /// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + /// + [Input("reinvocationPolicy")] + public Input? ReinvocationPolicy { get; set; } + + [Input("variables")] + private InputList? _variables; + + /// + /// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + /// + /// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + /// + public InputList Variables + { + get => _variables ?? (_variables = new InputList()); + set => _variables = value; + } + + public MutatingAdmissionPolicySpecPatchArgs() + { + } + public static new MutatingAdmissionPolicySpecPatchArgs Empty => new MutatingAdmissionPolicySpecPatchArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutationArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutationArgs.cs new file mode 100644 index 0000000000..7a172e97d5 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutationArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// Mutation specifies the CEL expression which is used to apply the Mutation. + /// + public class MutationArgs : global::Pulumi.ResourceArgs + { + /// + /// applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + /// + [Input("applyConfiguration")] + public Input? ApplyConfiguration { get; set; } + + /// + /// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + /// + [Input("jsonPatch")] + public Input? JsonPatch { get; set; } + + /// + /// patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + /// + [Input("patchType", required: true)] + public Input PatchType { get; set; } = null!; + + public MutationArgs() + { + } + public static new MutationArgs Empty => new MutationArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutationPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutationPatchArgs.cs new file mode 100644 index 0000000000..7b65b972b3 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/MutationPatchArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// Mutation specifies the CEL expression which is used to apply the Mutation. + /// + public class MutationPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + /// + [Input("applyConfiguration")] + public Input? ApplyConfiguration { get; set; } + + /// + /// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + /// + [Input("jsonPatch")] + public Input? JsonPatch { get; set; } + + /// + /// patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + /// + [Input("patchType")] + public Input? PatchType { get; set; } + + public MutationPatchArgs() + { + } + public static new MutationPatchArgs Empty => new MutationPatchArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs index d129b05533..8ffa3010fb 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs @@ -22,7 +22,7 @@ public class ValidatingAdmissionPolicyBindingSpecArgs : global::Pulumi.ResourceA public Input? MatchResources { get; set; } /// - /// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + /// ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. /// [Input("paramRef")] public Input? ParamRef { get; set; } diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs index 1584f17fd7..bdcc9fcd35 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs @@ -22,7 +22,7 @@ public class ValidatingAdmissionPolicyBindingSpecPatchArgs : global::Pulumi.Reso public Input? MatchResources { get; set; } /// - /// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + /// ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. /// [Input("paramRef")] public Input? ParamRef { get; set; } diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicySpecArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicySpecArgs.cs index 33ba931c83..dd5988aa56 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicySpecArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicySpecArgs.cs @@ -28,15 +28,7 @@ public InputList - /// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - /// - /// A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - /// - /// failurePolicy does not define how validations that evaluate to false are handled. - /// - /// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - /// - /// Allowed values are Ignore or Fail. Defaults to Fail. + /// FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. /// [Input("failurePolicy")] public Input? FailurePolicy { get; set; } @@ -78,7 +70,7 @@ public InputList? _validations; /// - /// Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + /// Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. /// public InputList Validations { diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicySpecPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicySpecPatchArgs.cs index c501dbc532..bd65d58aac 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicySpecPatchArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidatingAdmissionPolicySpecPatchArgs.cs @@ -28,15 +28,7 @@ public InputList - /// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - /// - /// A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - /// - /// failurePolicy does not define how validations that evaluate to false are handled. - /// - /// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - /// - /// Allowed values are Ignore or Fail. Defaults to Fail. + /// FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. /// [Input("failurePolicy")] public Input? FailurePolicy { get; set; } @@ -78,7 +70,7 @@ public InputList? _validations; /// - /// Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + /// Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. /// public InputList Validations { diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidationArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidationArgs.cs index 33718c501e..8ce6093157 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidationArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidationArgs.cs @@ -16,14 +16,9 @@ namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 public class ValidationArgs : global::Pulumi.ResourceArgs { /// - /// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + /// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: /// - /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - /// For example, a variable named 'foo' can be accessed as 'variables.foo'. - /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - /// request resource. + /// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. /// /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidationPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidationPatchArgs.cs index 8aa724f559..628aebe967 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidationPatchArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Inputs/ValidationPatchArgs.cs @@ -16,14 +16,9 @@ namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 public class ValidationPatchArgs : global::Pulumi.ResourceArgs { /// - /// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + /// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: /// - /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - /// For example, a variable named 'foo' can be accessed as 'variables.foo'. - /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - /// request resource. + /// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. /// /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicy.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicy.cs new file mode 100644 index 0000000000..7c8e7109cc --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicy.cs @@ -0,0 +1,131 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.AdmissionRegistration.V1Alpha1 +{ + /// + /// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + /// + [KubernetesResourceType("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy")] + public partial class MutatingAdmissionPolicy : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicy. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a MutatingAdmissionPolicy resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public MutatingAdmissionPolicy(string name, Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal MutatingAdmissionPolicy(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private MutatingAdmissionPolicy(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyArgs(); + args.ApiVersion = "admissionregistration.k8s.io/v1alpha1"; + args.Kind = "MutatingAdmissionPolicy"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing MutatingAdmissionPolicy resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static MutatingAdmissionPolicy Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MutatingAdmissionPolicy(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + public class MutatingAdmissionPolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicy. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public MutatingAdmissionPolicyArgs() + { + } + public static new MutatingAdmissionPolicyArgs Empty => new MutatingAdmissionPolicyArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBinding.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBinding.cs new file mode 100644 index 0000000000..549f8fa242 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBinding.cs @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.AdmissionRegistration.V1Alpha1 +{ + /// + /// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + /// + /// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + /// + /// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + /// + [KubernetesResourceType("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding")] + public partial class MutatingAdmissionPolicyBinding : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a MutatingAdmissionPolicyBinding resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public MutatingAdmissionPolicyBinding(string name, Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal MutatingAdmissionPolicyBinding(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private MutatingAdmissionPolicyBinding(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingArgs(); + args.ApiVersion = "admissionregistration.k8s.io/v1alpha1"; + args.Kind = "MutatingAdmissionPolicyBinding"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing MutatingAdmissionPolicyBinding resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static MutatingAdmissionPolicyBinding Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MutatingAdmissionPolicyBinding(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + public class MutatingAdmissionPolicyBindingArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public MutatingAdmissionPolicyBindingArgs() + { + } + public static new MutatingAdmissionPolicyBindingArgs Empty => new MutatingAdmissionPolicyBindingArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBindingList.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBindingList.cs new file mode 100644 index 0000000000..0ff5b39f01 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBindingList.cs @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.AdmissionRegistration.V1Alpha1 +{ + /// + /// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. + /// + [KubernetesResourceType("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList")] + public partial class MutatingAdmissionPolicyBindingList : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// List of PolicyBinding. + /// + [Output("items")] + public Output> Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a MutatingAdmissionPolicyBindingList resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public MutatingAdmissionPolicyBindingList(string name, Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal MutatingAdmissionPolicyBindingList(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private MutatingAdmissionPolicyBindingList(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingListArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingListArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingListArgs(); + args.ApiVersion = "admissionregistration.k8s.io/v1alpha1"; + args.Kind = "MutatingAdmissionPolicyBindingList"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing MutatingAdmissionPolicyBindingList resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static MutatingAdmissionPolicyBindingList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MutatingAdmissionPolicyBindingList(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + public class MutatingAdmissionPolicyBindingListArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + [Input("items", required: true)] + private InputList? _items; + + /// + /// List of PolicyBinding. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + public MutatingAdmissionPolicyBindingListArgs() + { + } + public static new MutatingAdmissionPolicyBindingListArgs Empty => new MutatingAdmissionPolicyBindingListArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBindingPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBindingPatch.cs new file mode 100644 index 0000000000..9620f51601 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyBindingPatch.cs @@ -0,0 +1,141 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.AdmissionRegistration.V1Alpha1 +{ + /// + /// Patch resources are used to modify existing Kubernetes resources by using + /// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + /// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + /// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + /// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + /// + /// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + /// + /// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + /// + [KubernetesResourceType("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch")] + public partial class MutatingAdmissionPolicyBindingPatch : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a MutatingAdmissionPolicyBindingPatch resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public MutatingAdmissionPolicyBindingPatch(string name, Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingPatchArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal MutatingAdmissionPolicyBindingPatch(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private MutatingAdmissionPolicyBindingPatch(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingPatchArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingPatchArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingPatchArgs(); + args.ApiVersion = "admissionregistration.k8s.io/v1alpha1"; + args.Kind = "MutatingAdmissionPolicyBinding"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing MutatingAdmissionPolicyBindingPatch resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static MutatingAdmissionPolicyBindingPatch Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MutatingAdmissionPolicyBindingPatch(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + public class MutatingAdmissionPolicyBindingPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public MutatingAdmissionPolicyBindingPatchArgs() + { + } + public static new MutatingAdmissionPolicyBindingPatchArgs Empty => new MutatingAdmissionPolicyBindingPatchArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyList.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyList.cs new file mode 100644 index 0000000000..36e17d32c2 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyList.cs @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.AdmissionRegistration.V1Alpha1 +{ + /// + /// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. + /// + [KubernetesResourceType("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList")] + public partial class MutatingAdmissionPolicyList : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// List of ValidatingAdmissionPolicy. + /// + [Output("items")] + public Output> Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a MutatingAdmissionPolicyList resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public MutatingAdmissionPolicyList(string name, Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal MutatingAdmissionPolicyList(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private MutatingAdmissionPolicyList(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyListArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyListArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyListArgs(); + args.ApiVersion = "admissionregistration.k8s.io/v1alpha1"; + args.Kind = "MutatingAdmissionPolicyList"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing MutatingAdmissionPolicyList resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static MutatingAdmissionPolicyList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MutatingAdmissionPolicyList(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + public class MutatingAdmissionPolicyListArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + [Input("items", required: true)] + private InputList? _items; + + /// + /// List of ValidatingAdmissionPolicy. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + public MutatingAdmissionPolicyListArgs() + { + } + public static new MutatingAdmissionPolicyListArgs Empty => new MutatingAdmissionPolicyListArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyPatch.cs new file mode 100644 index 0000000000..68ffc23db4 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/MutatingAdmissionPolicyPatch.cs @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.AdmissionRegistration.V1Alpha1 +{ + /// + /// Patch resources are used to modify existing Kubernetes resources by using + /// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + /// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + /// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + /// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + /// + [KubernetesResourceType("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch")] + public partial class MutatingAdmissionPolicyPatch : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicy. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a MutatingAdmissionPolicyPatch resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public MutatingAdmissionPolicyPatch(string name, Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyPatchArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal MutatingAdmissionPolicyPatch(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private MutatingAdmissionPolicyPatch(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyPatchArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyPatchArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyPatchArgs(); + args.ApiVersion = "admissionregistration.k8s.io/v1alpha1"; + args.Kind = "MutatingAdmissionPolicy"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing MutatingAdmissionPolicyPatch resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static MutatingAdmissionPolicyPatch Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MutatingAdmissionPolicyPatch(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.AdmissionRegistration.V1Alpha1 +{ + + public class MutatingAdmissionPolicyPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicy. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public MutatingAdmissionPolicyPatchArgs() + { + } + public static new MutatingAdmissionPolicyPatchArgs Empty => new MutatingAdmissionPolicyPatchArgs(); + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ApplyConfiguration.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ApplyConfiguration.cs new file mode 100644 index 0000000000..e943d11cf3 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ApplyConfiguration.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// ApplyConfiguration defines the desired configuration values of an object. + /// + [OutputType] + public sealed class ApplyConfiguration + { + /// + /// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + /// + /// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + /// + /// Object{ + /// spec: Object.spec{ + /// serviceAccountName: "example" + /// } + /// } + /// + /// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + /// + /// CEL expressions have access to the object types needed to create apply configurations: + /// + /// - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + /// + /// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + /// + /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + /// For example, a variable named 'foo' can be accessed as 'variables.foo'. + /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + /// request resource. + /// + /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + /// + /// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + /// + public readonly string Expression; + + [OutputConstructor] + private ApplyConfiguration(string expression) + { + Expression = expression; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ApplyConfigurationPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ApplyConfigurationPatch.cs new file mode 100644 index 0000000000..445286c93b --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ApplyConfigurationPatch.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// ApplyConfiguration defines the desired configuration values of an object. + /// + [OutputType] + public sealed class ApplyConfigurationPatch + { + /// + /// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + /// + /// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + /// + /// Object{ + /// spec: Object.spec{ + /// serviceAccountName: "example" + /// } + /// } + /// + /// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + /// + /// CEL expressions have access to the object types needed to create apply configurations: + /// + /// - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + /// + /// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + /// + /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + /// For example, a variable named 'foo' can be accessed as 'variables.foo'. + /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + /// request resource. + /// + /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + /// + /// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + /// + public readonly string Expression; + + [OutputConstructor] + private ApplyConfigurationPatch(string expression) + { + Expression = expression; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/JSONPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/JSONPatch.cs new file mode 100644 index 0000000000..944408acd8 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/JSONPatch.cs @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// JSONPatch defines a JSON Patch. + /// + [OutputType] + public sealed class JSONPatch + { + /// + /// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + /// + /// expression must return an array of JSONPatch values. + /// + /// For example, this CEL expression returns a JSON patch to conditionally modify a value: + /// + /// [ + /// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + /// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + /// ] + /// + /// To define an object for the patch value, use Object types. For example: + /// + /// [ + /// JSONPatch{ + /// op: "add", + /// path: "/spec/selector", + /// value: Object.spec.selector{matchLabels: {"environment": "test"}} + /// } + /// ] + /// + /// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + /// + /// [ + /// JSONPatch{ + /// op: "add", + /// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + /// value: "test" + /// }, + /// ] + /// + /// CEL expressions have access to the types needed to create JSON patches and objects: + /// + /// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + /// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + /// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + /// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + /// function may be used to escape path keys containing '/' and '~'. + /// - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + /// + /// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + /// + /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + /// For example, a variable named 'foo' can be accessed as 'variables.foo'. + /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + /// request resource. + /// + /// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + /// + /// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + /// + /// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + /// + public readonly string Expression; + + [OutputConstructor] + private JSONPatch(string expression) + { + Expression = expression; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/JSONPatchPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/JSONPatchPatch.cs new file mode 100644 index 0000000000..20e5aba679 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/JSONPatchPatch.cs @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// JSONPatch defines a JSON Patch. + /// + [OutputType] + public sealed class JSONPatchPatch + { + /// + /// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + /// + /// expression must return an array of JSONPatch values. + /// + /// For example, this CEL expression returns a JSON patch to conditionally modify a value: + /// + /// [ + /// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + /// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + /// ] + /// + /// To define an object for the patch value, use Object types. For example: + /// + /// [ + /// JSONPatch{ + /// op: "add", + /// path: "/spec/selector", + /// value: Object.spec.selector{matchLabels: {"environment": "test"}} + /// } + /// ] + /// + /// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + /// + /// [ + /// JSONPatch{ + /// op: "add", + /// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + /// value: "test" + /// }, + /// ] + /// + /// CEL expressions have access to the types needed to create JSON patches and objects: + /// + /// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + /// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + /// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + /// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + /// function may be used to escape path keys containing '/' and '~'. + /// - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + /// + /// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + /// + /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + /// For example, a variable named 'foo' can be accessed as 'variables.foo'. + /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + /// request resource. + /// + /// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + /// + /// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + /// + /// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + /// + public readonly string Expression; + + [OutputConstructor] + private JSONPatchPatch(string expression) + { + Expression = expression; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicy.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicy.cs new file mode 100644 index 0000000000..350301ee02 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicy.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + /// + [OutputType] + public sealed class MutatingAdmissionPolicy + { + /// + /// 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 + /// + public readonly string ApiVersion; + /// + /// 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 + /// + public readonly string Kind; + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicy. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicySpec Spec; + + [OutputConstructor] + private MutatingAdmissionPolicy( + string apiVersion, + + string kind, + + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicySpec spec) + { + ApiVersion = apiVersion; + Kind = kind; + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBinding.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBinding.cs new file mode 100644 index 0000000000..7d29bd9818 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBinding.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + /// + /// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + /// + /// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + /// + [OutputType] + public sealed class MutatingAdmissionPolicyBinding + { + /// + /// 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 + /// + public readonly string ApiVersion; + /// + /// 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 + /// + public readonly string Kind; + /// + /// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingSpec Spec; + + [OutputConstructor] + private MutatingAdmissionPolicyBinding( + string apiVersion, + + string kind, + + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingSpec spec) + { + ApiVersion = apiVersion; + Kind = kind; + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBindingSpec.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBindingSpec.cs new file mode 100644 index 0000000000..b04c63cd87 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBindingSpec.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + /// + [OutputType] + public sealed class MutatingAdmissionPolicyBindingSpec + { + /// + /// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResources MatchResources; + /// + /// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamRef ParamRef; + /// + /// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + /// + public readonly string PolicyName; + + [OutputConstructor] + private MutatingAdmissionPolicyBindingSpec( + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResources matchResources, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamRef paramRef, + + string policyName) + { + MatchResources = matchResources; + ParamRef = paramRef; + PolicyName = policyName; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBindingSpecPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBindingSpecPatch.cs new file mode 100644 index 0000000000..796e1dbb2f --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicyBindingSpecPatch.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + /// + [OutputType] + public sealed class MutatingAdmissionPolicyBindingSpecPatch + { + /// + /// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResourcesPatch MatchResources; + /// + /// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamRefPatch ParamRef; + /// + /// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + /// + public readonly string PolicyName; + + [OutputConstructor] + private MutatingAdmissionPolicyBindingSpecPatch( + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResourcesPatch matchResources, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamRefPatch paramRef, + + string policyName) + { + MatchResources = matchResources; + ParamRef = paramRef; + PolicyName = policyName; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicySpec.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicySpec.cs new file mode 100644 index 0000000000..b060500565 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicySpec.cs @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + /// + [OutputType] + public sealed class MutatingAdmissionPolicySpec + { + /// + /// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + /// + /// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + /// + /// failurePolicy does not define how validations that evaluate to false are handled. + /// + /// Allowed values are Ignore or Fail. Defaults to Fail. + /// + public readonly string FailurePolicy; + /// + /// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + /// + /// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + /// + /// The exact matching logic is (in order): + /// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + /// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + /// 3. If any matchCondition evaluates to an error (but none are FALSE): + /// - If failurePolicy=Fail, reject the request + /// - If failurePolicy=Ignore, the policy is skipped + /// + public readonly ImmutableArray MatchConditions; + /// + /// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResources MatchConstraints; + /// + /// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + /// + public readonly ImmutableArray Mutations; + /// + /// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamKind ParamKind; + /// + /// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + /// + /// Never: These mutations will not be called more than once per binding in a single admission evaluation. + /// + /// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + /// + public readonly string ReinvocationPolicy; + /// + /// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + /// + /// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + /// + public readonly ImmutableArray Variables; + + [OutputConstructor] + private MutatingAdmissionPolicySpec( + string failurePolicy, + + ImmutableArray matchConditions, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResources matchConstraints, + + ImmutableArray mutations, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamKind paramKind, + + string reinvocationPolicy, + + ImmutableArray variables) + { + FailurePolicy = failurePolicy; + MatchConditions = matchConditions; + MatchConstraints = matchConstraints; + Mutations = mutations; + ParamKind = paramKind; + ReinvocationPolicy = reinvocationPolicy; + Variables = variables; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicySpecPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicySpecPatch.cs new file mode 100644 index 0000000000..3057bc0115 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutatingAdmissionPolicySpecPatch.cs @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + /// + [OutputType] + public sealed class MutatingAdmissionPolicySpecPatch + { + /// + /// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + /// + /// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + /// + /// failurePolicy does not define how validations that evaluate to false are handled. + /// + /// Allowed values are Ignore or Fail. Defaults to Fail. + /// + public readonly string FailurePolicy; + /// + /// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + /// + /// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + /// + /// The exact matching logic is (in order): + /// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + /// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + /// 3. If any matchCondition evaluates to an error (but none are FALSE): + /// - If failurePolicy=Fail, reject the request + /// - If failurePolicy=Ignore, the policy is skipped + /// + public readonly ImmutableArray MatchConditions; + /// + /// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResourcesPatch MatchConstraints; + /// + /// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + /// + public readonly ImmutableArray Mutations; + /// + /// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamKindPatch ParamKind; + /// + /// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + /// + /// Never: These mutations will not be called more than once per binding in a single admission evaluation. + /// + /// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + /// + public readonly string ReinvocationPolicy; + /// + /// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + /// + /// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + /// + public readonly ImmutableArray Variables; + + [OutputConstructor] + private MutatingAdmissionPolicySpecPatch( + string failurePolicy, + + ImmutableArray matchConditions, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResourcesPatch matchConstraints, + + ImmutableArray mutations, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamKindPatch paramKind, + + string reinvocationPolicy, + + ImmutableArray variables) + { + FailurePolicy = failurePolicy; + MatchConditions = matchConditions; + MatchConstraints = matchConstraints; + Mutations = mutations; + ParamKind = paramKind; + ReinvocationPolicy = reinvocationPolicy; + Variables = variables; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/Mutation.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/Mutation.cs new file mode 100644 index 0000000000..3ce6f13a27 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/Mutation.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// Mutation specifies the CEL expression which is used to apply the Mutation. + /// + [OutputType] + public sealed class Mutation + { + /// + /// applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ApplyConfiguration ApplyConfiguration; + /// + /// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.JSONPatch JsonPatch; + /// + /// patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + /// + public readonly string PatchType; + + [OutputConstructor] + private Mutation( + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ApplyConfiguration applyConfiguration, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.JSONPatch jsonPatch, + + string patchType) + { + ApplyConfiguration = applyConfiguration; + JsonPatch = jsonPatch; + PatchType = patchType; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutationPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutationPatch.cs new file mode 100644 index 0000000000..67f3aa8ce5 --- /dev/null +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/MutationPatch.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 +{ + + /// + /// Mutation specifies the CEL expression which is used to apply the Mutation. + /// + [OutputType] + public sealed class MutationPatch + { + /// + /// applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ApplyConfigurationPatch ApplyConfiguration; + /// + /// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.JSONPatchPatch JsonPatch; + /// + /// patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + /// + public readonly string PatchType; + + [OutputConstructor] + private MutationPatch( + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ApplyConfigurationPatch applyConfiguration, + + Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.JSONPatchPatch jsonPatch, + + string patchType) + { + ApplyConfiguration = applyConfiguration; + JsonPatch = jsonPatch; + PatchType = patchType; + } + } +} diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBinding.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBinding.cs index e06253eb14..3863478899 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBinding.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBinding.cs @@ -12,10 +12,6 @@ namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 /// /// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - /// - /// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - /// - /// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. /// [OutputType] public sealed class ValidatingAdmissionPolicyBinding diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs index 62faeec85a..255122af89 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs @@ -21,7 +21,7 @@ public sealed class ValidatingAdmissionPolicyBindingSpec /// public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResources MatchResources; /// - /// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + /// ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. /// public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamRef ParamRef; /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs index dfdba86d9f..1defc65a0e 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs @@ -21,7 +21,7 @@ public sealed class ValidatingAdmissionPolicyBindingSpecPatch /// public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.MatchResourcesPatch MatchResources; /// - /// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + /// ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. /// public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamRefPatch ParamRef; /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicySpec.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicySpec.cs index 62cc16908a..ed7a389dbd 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicySpec.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicySpec.cs @@ -21,15 +21,7 @@ public sealed class ValidatingAdmissionPolicySpec /// public readonly ImmutableArray AuditAnnotations; /// - /// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - /// - /// A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - /// - /// failurePolicy does not define how validations that evaluate to false are handled. - /// - /// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - /// - /// Allowed values are Ignore or Fail. Defaults to Fail. + /// FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. /// public readonly string FailurePolicy; /// @@ -54,7 +46,7 @@ public sealed class ValidatingAdmissionPolicySpec /// public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamKind ParamKind; /// - /// Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + /// Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. /// public readonly ImmutableArray Validations; /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicySpecPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicySpecPatch.cs index c2f2a51581..587b714e8e 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicySpecPatch.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidatingAdmissionPolicySpecPatch.cs @@ -21,15 +21,7 @@ public sealed class ValidatingAdmissionPolicySpecPatch /// public readonly ImmutableArray AuditAnnotations; /// - /// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - /// - /// A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - /// - /// failurePolicy does not define how validations that evaluate to false are handled. - /// - /// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - /// - /// Allowed values are Ignore or Fail. Defaults to Fail. + /// FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. /// public readonly string FailurePolicy; /// @@ -54,7 +46,7 @@ public sealed class ValidatingAdmissionPolicySpecPatch /// public readonly Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1.ParamKindPatch ParamKind; /// - /// Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + /// Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. /// public readonly ImmutableArray Validations; /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/Validation.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/Validation.cs index 00bc704244..6fd63de91a 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/Validation.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/Validation.cs @@ -17,14 +17,9 @@ namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 public sealed class Validation { /// - /// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + /// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: /// - /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - /// For example, a variable named 'foo' can be accessed as 'variables.foo'. - /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - /// request resource. + /// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. /// /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidationPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidationPatch.cs index 72a0436de9..70b1774c26 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidationPatch.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/Outputs/ValidationPatch.cs @@ -17,14 +17,9 @@ namespace Pulumi.Kubernetes.Types.Outputs.AdmissionRegistration.V1Alpha1 public sealed class ValidationPatch { /// - /// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + /// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: /// - /// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - /// For example, a variable named 'foo' can be accessed as 'variables.foo'. - /// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - /// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - /// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - /// request resource. + /// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. /// /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/ValidatingAdmissionPolicyBinding.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/ValidatingAdmissionPolicyBinding.cs index d94c0bd8f9..b2b4d0f37f 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/ValidatingAdmissionPolicyBinding.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/ValidatingAdmissionPolicyBinding.cs @@ -11,10 +11,6 @@ namespace Pulumi.Kubernetes.AdmissionRegistration.V1Alpha1 { /// /// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - /// - /// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - /// - /// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. /// [KubernetesResourceType("kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBinding")] public partial class ValidatingAdmissionPolicyBinding : KubernetesResource diff --git a/sdk/dotnet/AdmissionRegistration/V1Alpha1/ValidatingAdmissionPolicyBindingPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Alpha1/ValidatingAdmissionPolicyBindingPatch.cs index 03eb849ff5..a88f798c24 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Alpha1/ValidatingAdmissionPolicyBindingPatch.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Alpha1/ValidatingAdmissionPolicyBindingPatch.cs @@ -17,10 +17,6 @@ namespace Pulumi.Kubernetes.AdmissionRegistration.V1Alpha1 /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. /// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - /// - /// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - /// - /// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. /// [KubernetesResourceType("kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBindingPatch")] public partial class ValidatingAdmissionPolicyBindingPatch : KubernetesResource diff --git a/sdk/dotnet/AdmissionRegistration/V1Beta1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Beta1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs index 9b9e0d1e11..c65e3a7ed3 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Beta1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Beta1/Inputs/ValidatingAdmissionPolicyBindingSpecArgs.cs @@ -49,7 +49,7 @@ public class ValidatingAdmissionPolicyBindingSpecArgs : global::Pulumi.ResourceA /// /// "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. /// - /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` /// /// Clients should expect to handle additional values by ignoring any values not recognized. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Beta1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs b/sdk/dotnet/AdmissionRegistration/V1Beta1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs index 96f0dc3fc3..7f3862eae0 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Beta1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Beta1/Inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.cs @@ -49,7 +49,7 @@ public class ValidatingAdmissionPolicyBindingSpecPatchArgs : global::Pulumi.Reso /// /// "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. /// - /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` /// /// Clients should expect to handle additional values by ignoring any values not recognized. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Beta1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs b/sdk/dotnet/AdmissionRegistration/V1Beta1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs index 25bd825641..d8291ffe6e 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Beta1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Beta1/Outputs/ValidatingAdmissionPolicyBindingSpec.cs @@ -41,7 +41,7 @@ public sealed class ValidatingAdmissionPolicyBindingSpec /// /// "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. /// - /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` /// /// Clients should expect to handle additional values by ignoring any values not recognized. /// diff --git a/sdk/dotnet/AdmissionRegistration/V1Beta1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs b/sdk/dotnet/AdmissionRegistration/V1Beta1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs index 6d87ab0faf..20397988d9 100644 --- a/sdk/dotnet/AdmissionRegistration/V1Beta1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs +++ b/sdk/dotnet/AdmissionRegistration/V1Beta1/Outputs/ValidatingAdmissionPolicyBindingSpecPatch.cs @@ -41,7 +41,7 @@ public sealed class ValidatingAdmissionPolicyBindingSpecPatch /// /// "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. /// - /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + /// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` /// /// Clients should expect to handle additional values by ignoring any values not recognized. /// diff --git a/sdk/dotnet/ApiExtensions/V1/Inputs/JSONSchemaPropsArgs.cs b/sdk/dotnet/ApiExtensions/V1/Inputs/JSONSchemaPropsArgs.cs index 49ce48c040..d7279323fa 100644 --- a/sdk/dotnet/ApiExtensions/V1/Inputs/JSONSchemaPropsArgs.cs +++ b/sdk/dotnet/ApiExtensions/V1/Inputs/JSONSchemaPropsArgs.cs @@ -91,7 +91,7 @@ public InputList Enum /// /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: /// - /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. /// [Input("format")] public Input? Format { get; set; } diff --git a/sdk/dotnet/ApiExtensions/V1/Inputs/JSONSchemaPropsPatchArgs.cs b/sdk/dotnet/ApiExtensions/V1/Inputs/JSONSchemaPropsPatchArgs.cs index b24ff07de5..231fcba165 100644 --- a/sdk/dotnet/ApiExtensions/V1/Inputs/JSONSchemaPropsPatchArgs.cs +++ b/sdk/dotnet/ApiExtensions/V1/Inputs/JSONSchemaPropsPatchArgs.cs @@ -91,7 +91,7 @@ public InputList Enum /// /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: /// - /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. /// [Input("format")] public Input? Format { get; set; } diff --git a/sdk/dotnet/ApiExtensions/V1/Outputs/JSONSchemaProps.cs b/sdk/dotnet/ApiExtensions/V1/Outputs/JSONSchemaProps.cs index 63bb19bc16..7a4ad5268f 100644 --- a/sdk/dotnet/ApiExtensions/V1/Outputs/JSONSchemaProps.cs +++ b/sdk/dotnet/ApiExtensions/V1/Outputs/JSONSchemaProps.cs @@ -37,7 +37,7 @@ public sealed class JSONSchemaProps /// /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: /// - /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. /// public readonly string Format; public readonly string Id; diff --git a/sdk/dotnet/ApiExtensions/V1/Outputs/JSONSchemaPropsPatch.cs b/sdk/dotnet/ApiExtensions/V1/Outputs/JSONSchemaPropsPatch.cs index 6112735399..cb7e0e8f4b 100644 --- a/sdk/dotnet/ApiExtensions/V1/Outputs/JSONSchemaPropsPatch.cs +++ b/sdk/dotnet/ApiExtensions/V1/Outputs/JSONSchemaPropsPatch.cs @@ -37,7 +37,7 @@ public sealed class JSONSchemaPropsPatch /// /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: /// - /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. /// public readonly string Format; public readonly string Id; diff --git a/sdk/dotnet/Apps/V1/Inputs/StatefulSetSpecArgs.cs b/sdk/dotnet/Apps/V1/Inputs/StatefulSetSpecArgs.cs index 815285c8b0..6871b35dac 100644 --- a/sdk/dotnet/Apps/V1/Inputs/StatefulSetSpecArgs.cs +++ b/sdk/dotnet/Apps/V1/Inputs/StatefulSetSpecArgs.cs @@ -28,7 +28,7 @@ public class StatefulSetSpecArgs : global::Pulumi.ResourceArgs public Input? Ordinals { get; set; } /// - /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. /// [Input("persistentVolumeClaimRetentionPolicy")] public Input? PersistentVolumeClaimRetentionPolicy { get; set; } diff --git a/sdk/dotnet/Apps/V1/Inputs/StatefulSetSpecPatchArgs.cs b/sdk/dotnet/Apps/V1/Inputs/StatefulSetSpecPatchArgs.cs index a98576832a..6f8e1a0d52 100644 --- a/sdk/dotnet/Apps/V1/Inputs/StatefulSetSpecPatchArgs.cs +++ b/sdk/dotnet/Apps/V1/Inputs/StatefulSetSpecPatchArgs.cs @@ -28,7 +28,7 @@ public class StatefulSetSpecPatchArgs : global::Pulumi.ResourceArgs public Input? Ordinals { get; set; } /// - /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. /// [Input("persistentVolumeClaimRetentionPolicy")] public Input? PersistentVolumeClaimRetentionPolicy { get; set; } diff --git a/sdk/dotnet/Apps/V1/Outputs/StatefulSetSpec.cs b/sdk/dotnet/Apps/V1/Outputs/StatefulSetSpec.cs index a910b26a1e..da9dbfc3b8 100644 --- a/sdk/dotnet/Apps/V1/Outputs/StatefulSetSpec.cs +++ b/sdk/dotnet/Apps/V1/Outputs/StatefulSetSpec.cs @@ -25,7 +25,7 @@ public sealed class StatefulSetSpec /// public readonly Pulumi.Kubernetes.Types.Outputs.Apps.V1.StatefulSetOrdinals Ordinals; /// - /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. /// public readonly Pulumi.Kubernetes.Types.Outputs.Apps.V1.StatefulSetPersistentVolumeClaimRetentionPolicy PersistentVolumeClaimRetentionPolicy; /// diff --git a/sdk/dotnet/Apps/V1/Outputs/StatefulSetSpecPatch.cs b/sdk/dotnet/Apps/V1/Outputs/StatefulSetSpecPatch.cs index 3d4674d416..46d404bb13 100644 --- a/sdk/dotnet/Apps/V1/Outputs/StatefulSetSpecPatch.cs +++ b/sdk/dotnet/Apps/V1/Outputs/StatefulSetSpecPatch.cs @@ -25,7 +25,7 @@ public sealed class StatefulSetSpecPatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Apps.V1.StatefulSetOrdinalsPatch Ordinals; /// - /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. /// public readonly Pulumi.Kubernetes.Types.Outputs.Apps.V1.StatefulSetPersistentVolumeClaimRetentionPolicyPatch PersistentVolumeClaimRetentionPolicy; /// diff --git a/sdk/dotnet/Autoscaling/V2/Inputs/MetricSpecArgs.cs b/sdk/dotnet/Autoscaling/V2/Inputs/MetricSpecArgs.cs index 4239e2d2da..fb4b003ed3 100644 --- a/sdk/dotnet/Autoscaling/V2/Inputs/MetricSpecArgs.cs +++ b/sdk/dotnet/Autoscaling/V2/Inputs/MetricSpecArgs.cs @@ -16,7 +16,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Autoscaling.V2 public class MetricSpecArgs : global::Pulumi.ResourceArgs { /// - /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// [Input("containerResource")] public Input? ContainerResource { get; set; } @@ -46,7 +46,7 @@ public class MetricSpecArgs : global::Pulumi.ResourceArgs public Input? Resource { get; set; } /// - /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Autoscaling/V2/Inputs/MetricSpecPatchArgs.cs b/sdk/dotnet/Autoscaling/V2/Inputs/MetricSpecPatchArgs.cs index 46a4d7b53e..ed249648ac 100644 --- a/sdk/dotnet/Autoscaling/V2/Inputs/MetricSpecPatchArgs.cs +++ b/sdk/dotnet/Autoscaling/V2/Inputs/MetricSpecPatchArgs.cs @@ -16,7 +16,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Autoscaling.V2 public class MetricSpecPatchArgs : global::Pulumi.ResourceArgs { /// - /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// [Input("containerResource")] public Input? ContainerResource { get; set; } @@ -46,7 +46,7 @@ public class MetricSpecPatchArgs : global::Pulumi.ResourceArgs public Input? Resource { get; set; } /// - /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Autoscaling/V2/Inputs/MetricStatusArgs.cs b/sdk/dotnet/Autoscaling/V2/Inputs/MetricStatusArgs.cs index 29061058b1..79b3682bc8 100644 --- a/sdk/dotnet/Autoscaling/V2/Inputs/MetricStatusArgs.cs +++ b/sdk/dotnet/Autoscaling/V2/Inputs/MetricStatusArgs.cs @@ -46,7 +46,7 @@ public class MetricStatusArgs : global::Pulumi.ResourceArgs public Input? Resource { get; set; } /// - /// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + /// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Autoscaling/V2/Outputs/MetricSpec.cs b/sdk/dotnet/Autoscaling/V2/Outputs/MetricSpec.cs index e5b19a9733..41b3e55a20 100644 --- a/sdk/dotnet/Autoscaling/V2/Outputs/MetricSpec.cs +++ b/sdk/dotnet/Autoscaling/V2/Outputs/MetricSpec.cs @@ -17,7 +17,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Autoscaling.V2 public sealed class MetricSpec { /// - /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// public readonly Pulumi.Kubernetes.Types.Outputs.Autoscaling.V2.ContainerResourceMetricSource ContainerResource; /// @@ -37,7 +37,7 @@ public sealed class MetricSpec /// public readonly Pulumi.Kubernetes.Types.Outputs.Autoscaling.V2.ResourceMetricSource Resource; /// - /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. /// public readonly string Type; diff --git a/sdk/dotnet/Autoscaling/V2/Outputs/MetricSpecPatch.cs b/sdk/dotnet/Autoscaling/V2/Outputs/MetricSpecPatch.cs index da5ed09adc..c9b364bae9 100644 --- a/sdk/dotnet/Autoscaling/V2/Outputs/MetricSpecPatch.cs +++ b/sdk/dotnet/Autoscaling/V2/Outputs/MetricSpecPatch.cs @@ -17,7 +17,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Autoscaling.V2 public sealed class MetricSpecPatch { /// - /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// public readonly Pulumi.Kubernetes.Types.Outputs.Autoscaling.V2.ContainerResourceMetricSourcePatch ContainerResource; /// @@ -37,7 +37,7 @@ public sealed class MetricSpecPatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Autoscaling.V2.ResourceMetricSourcePatch Resource; /// - /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. /// public readonly string Type; diff --git a/sdk/dotnet/Autoscaling/V2/Outputs/MetricStatus.cs b/sdk/dotnet/Autoscaling/V2/Outputs/MetricStatus.cs index 97ecbb2f68..dc3610c893 100644 --- a/sdk/dotnet/Autoscaling/V2/Outputs/MetricStatus.cs +++ b/sdk/dotnet/Autoscaling/V2/Outputs/MetricStatus.cs @@ -37,7 +37,7 @@ public sealed class MetricStatus /// public readonly Pulumi.Kubernetes.Types.Outputs.Autoscaling.V2.ResourceMetricStatus Resource; /// - /// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + /// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. /// public readonly string Type; diff --git a/sdk/dotnet/Autoscaling/V2/Outputs/MetricStatusPatch.cs b/sdk/dotnet/Autoscaling/V2/Outputs/MetricStatusPatch.cs index d3e1dfc312..75b30b9d47 100644 --- a/sdk/dotnet/Autoscaling/V2/Outputs/MetricStatusPatch.cs +++ b/sdk/dotnet/Autoscaling/V2/Outputs/MetricStatusPatch.cs @@ -37,7 +37,7 @@ public sealed class MetricStatusPatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Autoscaling.V2.ResourceMetricStatusPatch Resource; /// - /// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + /// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. /// public readonly string Type; diff --git a/sdk/dotnet/Batch/V1/Inputs/JobSpecArgs.cs b/sdk/dotnet/Batch/V1/Inputs/JobSpecArgs.cs index 1243a015fb..2c1fab419c 100644 --- a/sdk/dotnet/Batch/V1/Inputs/JobSpecArgs.cs +++ b/sdk/dotnet/Batch/V1/Inputs/JobSpecArgs.cs @@ -54,7 +54,7 @@ public class JobSpecArgs : global::Pulumi.ResourceArgs /// /// ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. /// - /// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + /// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). /// [Input("managedBy")] public Input? ManagedBy { get; set; } diff --git a/sdk/dotnet/Batch/V1/Inputs/JobSpecPatchArgs.cs b/sdk/dotnet/Batch/V1/Inputs/JobSpecPatchArgs.cs index 31aee8e497..23dc492c2b 100644 --- a/sdk/dotnet/Batch/V1/Inputs/JobSpecPatchArgs.cs +++ b/sdk/dotnet/Batch/V1/Inputs/JobSpecPatchArgs.cs @@ -54,7 +54,7 @@ public class JobSpecPatchArgs : global::Pulumi.ResourceArgs /// /// ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. /// - /// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + /// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). /// [Input("managedBy")] public Input? ManagedBy { get; set; } diff --git a/sdk/dotnet/Batch/V1/Outputs/JobSpec.cs b/sdk/dotnet/Batch/V1/Outputs/JobSpec.cs index c543f0a9da..8a7d67c8fe 100644 --- a/sdk/dotnet/Batch/V1/Outputs/JobSpec.cs +++ b/sdk/dotnet/Batch/V1/Outputs/JobSpec.cs @@ -45,7 +45,7 @@ public sealed class JobSpec /// /// ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. /// - /// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + /// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). /// public readonly string ManagedBy; /// diff --git a/sdk/dotnet/Batch/V1/Outputs/JobSpecPatch.cs b/sdk/dotnet/Batch/V1/Outputs/JobSpecPatch.cs index 34fe428805..d8f18b1e4e 100644 --- a/sdk/dotnet/Batch/V1/Outputs/JobSpecPatch.cs +++ b/sdk/dotnet/Batch/V1/Outputs/JobSpecPatch.cs @@ -45,7 +45,7 @@ public sealed class JobSpecPatch /// /// ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. /// - /// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + /// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). /// public readonly string ManagedBy; /// diff --git a/sdk/dotnet/Coordination/V1Alpha1/LeaseCandidate.cs b/sdk/dotnet/Coordination/V1Alpha1/LeaseCandidate.cs index d8fbac95b5..72179fffc2 100644 --- a/sdk/dotnet/Coordination/V1Alpha1/LeaseCandidate.cs +++ b/sdk/dotnet/Coordination/V1Alpha1/LeaseCandidate.cs @@ -74,6 +74,10 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate" }, + }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/Coordination/V1Alpha1/LeaseCandidatePatch.cs b/sdk/dotnet/Coordination/V1Alpha1/LeaseCandidatePatch.cs index 87f5b9ce18..c882fbed11 100644 --- a/sdk/dotnet/Coordination/V1Alpha1/LeaseCandidatePatch.cs +++ b/sdk/dotnet/Coordination/V1Alpha1/LeaseCandidatePatch.cs @@ -80,6 +80,10 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch" }, + }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateArgs.cs b/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateArgs.cs new file mode 100644 index 0000000000..1061cd9916 --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateArgs.cs @@ -0,0 +1,12 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2 +{ +} diff --git a/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateSpecArgs.cs b/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateSpecArgs.cs new file mode 100644 index 0000000000..71076c7f17 --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateSpecArgs.cs @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2 +{ + + /// + /// LeaseCandidateSpec is a specification of a Lease. + /// + public class LeaseCandidateSpecArgs : global::Pulumi.ResourceArgs + { + /// + /// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + /// + [Input("binaryVersion", required: true)] + public Input BinaryVersion { get; set; } = null!; + + /// + /// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + /// + [Input("emulationVersion")] + public Input? EmulationVersion { get; set; } + + /// + /// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + /// + [Input("leaseName", required: true)] + public Input LeaseName { get; set; } = null!; + + /// + /// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + /// + [Input("pingTime")] + public Input? PingTime { get; set; } + + /// + /// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + /// + [Input("renewTime")] + public Input? RenewTime { get; set; } + + /// + /// Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + /// + [Input("strategy", required: true)] + public Input Strategy { get; set; } = null!; + + public LeaseCandidateSpecArgs() + { + } + public static new LeaseCandidateSpecArgs Empty => new LeaseCandidateSpecArgs(); + } +} diff --git a/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateSpecPatchArgs.cs b/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateSpecPatchArgs.cs new file mode 100644 index 0000000000..e6ceae008e --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/Inputs/LeaseCandidateSpecPatchArgs.cs @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2 +{ + + /// + /// LeaseCandidateSpec is a specification of a Lease. + /// + public class LeaseCandidateSpecPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + /// + [Input("binaryVersion")] + public Input? BinaryVersion { get; set; } + + /// + /// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + /// + [Input("emulationVersion")] + public Input? EmulationVersion { get; set; } + + /// + /// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + /// + [Input("leaseName")] + public Input? LeaseName { get; set; } + + /// + /// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + /// + [Input("pingTime")] + public Input? PingTime { get; set; } + + /// + /// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + /// + [Input("renewTime")] + public Input? RenewTime { get; set; } + + /// + /// Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + /// + [Input("strategy")] + public Input? Strategy { get; set; } + + public LeaseCandidateSpecPatchArgs() + { + } + public static new LeaseCandidateSpecPatchArgs Empty => new LeaseCandidateSpecPatchArgs(); + } +} diff --git a/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidate.cs b/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidate.cs new file mode 100644 index 0000000000..3dd9eab5ac --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidate.cs @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Coordination.V1Alpha2 +{ + /// + /// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + /// + [KubernetesResourceType("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate")] + public partial class LeaseCandidate : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a LeaseCandidate resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public LeaseCandidate(string name, Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidateArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal LeaseCandidate(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private LeaseCandidate(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidateArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidateArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidateArgs(); + args.ApiVersion = "coordination.k8s.io/v1alpha2"; + args.Kind = "LeaseCandidate"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidate" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing LeaseCandidate resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static LeaseCandidate Get(string name, Input id, CustomResourceOptions? options = null) + { + return new LeaseCandidate(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2 +{ + + public class LeaseCandidateArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Input("spec")] + public Input? Spec { get; set; } + + public LeaseCandidateArgs() + { + } + public static new LeaseCandidateArgs Empty => new LeaseCandidateArgs(); + } +} diff --git a/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidateList.cs b/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidateList.cs new file mode 100644 index 0000000000..0f316e545c --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidateList.cs @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Coordination.V1Alpha2 +{ + /// + /// LeaseCandidateList is a list of Lease objects. + /// + [KubernetesResourceType("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList")] + public partial class LeaseCandidateList : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// items is a list of schema objects. + /// + [Output("items")] + public Output> Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a LeaseCandidateList resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public LeaseCandidateList(string name, Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidateListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal LeaseCandidateList(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private LeaseCandidateList(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidateListArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidateListArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidateListArgs(); + args.ApiVersion = "coordination.k8s.io/v1alpha2"; + args.Kind = "LeaseCandidateList"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing LeaseCandidateList resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static LeaseCandidateList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new LeaseCandidateList(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2 +{ + + public class LeaseCandidateListArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + [Input("items", required: true)] + private InputList? _items; + + /// + /// items is a list of schema objects. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + public LeaseCandidateListArgs() + { + } + public static new LeaseCandidateListArgs Empty => new LeaseCandidateListArgs(); + } +} diff --git a/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidatePatch.cs b/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidatePatch.cs new file mode 100644 index 0000000000..23ba1fb4ce --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/LeaseCandidatePatch.cs @@ -0,0 +1,141 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Coordination.V1Alpha2 +{ + /// + /// Patch resources are used to modify existing Kubernetes resources by using + /// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + /// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + /// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + /// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + /// + [KubernetesResourceType("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch")] + public partial class LeaseCandidatePatch : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a LeaseCandidatePatch resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public LeaseCandidatePatch(string name, Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidatePatchArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal LeaseCandidatePatch(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private LeaseCandidatePatch(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidatePatchArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidatePatchArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2.LeaseCandidatePatchArgs(); + args.ApiVersion = "coordination.k8s.io/v1alpha2"; + args.Kind = "LeaseCandidate"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidatePatch" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing LeaseCandidatePatch resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static LeaseCandidatePatch Get(string name, Input id, CustomResourceOptions? options = null) + { + return new LeaseCandidatePatch(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Coordination.V1Alpha2 +{ + + public class LeaseCandidatePatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Input("spec")] + public Input? Spec { get; set; } + + public LeaseCandidatePatchArgs() + { + } + public static new LeaseCandidatePatchArgs Empty => new LeaseCandidatePatchArgs(); + } +} diff --git a/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidate.cs b/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidate.cs new file mode 100644 index 0000000000..3ad92eb2e7 --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidate.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Coordination.V1Alpha2 +{ + + /// + /// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + /// + [OutputType] + public sealed class LeaseCandidate + { + /// + /// 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 + /// + public readonly string ApiVersion; + /// + /// 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 + /// + public readonly string Kind; + /// + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Coordination.V1Alpha2.LeaseCandidateSpec Spec; + + [OutputConstructor] + private LeaseCandidate( + string apiVersion, + + string kind, + + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.Coordination.V1Alpha2.LeaseCandidateSpec spec) + { + ApiVersion = apiVersion; + Kind = kind; + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidateSpec.cs b/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidateSpec.cs new file mode 100644 index 0000000000..8651d6d53f --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidateSpec.cs @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Coordination.V1Alpha2 +{ + + /// + /// LeaseCandidateSpec is a specification of a Lease. + /// + [OutputType] + public sealed class LeaseCandidateSpec + { + /// + /// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + /// + public readonly string BinaryVersion; + /// + /// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + /// + public readonly string EmulationVersion; + /// + /// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + /// + public readonly string LeaseName; + /// + /// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + /// + public readonly string PingTime; + /// + /// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + /// + public readonly string RenewTime; + /// + /// Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + /// + public readonly string Strategy; + + [OutputConstructor] + private LeaseCandidateSpec( + string binaryVersion, + + string emulationVersion, + + string leaseName, + + string pingTime, + + string renewTime, + + string strategy) + { + BinaryVersion = binaryVersion; + EmulationVersion = emulationVersion; + LeaseName = leaseName; + PingTime = pingTime; + RenewTime = renewTime; + Strategy = strategy; + } + } +} diff --git a/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidateSpecPatch.cs b/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidateSpecPatch.cs new file mode 100644 index 0000000000..01247f16ed --- /dev/null +++ b/sdk/dotnet/Coordination/V1Alpha2/Outputs/LeaseCandidateSpecPatch.cs @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Coordination.V1Alpha2 +{ + + /// + /// LeaseCandidateSpec is a specification of a Lease. + /// + [OutputType] + public sealed class LeaseCandidateSpecPatch + { + /// + /// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + /// + public readonly string BinaryVersion; + /// + /// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + /// + public readonly string EmulationVersion; + /// + /// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + /// + public readonly string LeaseName; + /// + /// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + /// + public readonly string PingTime; + /// + /// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + /// + public readonly string RenewTime; + /// + /// Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + /// + public readonly string Strategy; + + [OutputConstructor] + private LeaseCandidateSpecPatch( + string binaryVersion, + + string emulationVersion, + + string leaseName, + + string pingTime, + + string renewTime, + + string strategy) + { + BinaryVersion = binaryVersion; + EmulationVersion = emulationVersion; + LeaseName = leaseName; + PingTime = pingTime; + RenewTime = renewTime; + Strategy = strategy; + } + } +} diff --git a/sdk/dotnet/Core/V1/Binding.cs b/sdk/dotnet/Core/V1/Binding.cs index dee17cb885..4698563e5d 100755 --- a/sdk/dotnet/Core/V1/Binding.cs +++ b/sdk/dotnet/Core/V1/Binding.cs @@ -10,7 +10,7 @@ namespace Pulumi.Kubernetes.Core.V1 { /// - /// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + /// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. /// [KubernetesResourceType("kubernetes:core/v1:Binding")] public partial class Binding : KubernetesResource diff --git a/sdk/dotnet/Core/V1/BindingPatch.cs b/sdk/dotnet/Core/V1/BindingPatch.cs index b0483897e9..9c4256540f 100644 --- a/sdk/dotnet/Core/V1/BindingPatch.cs +++ b/sdk/dotnet/Core/V1/BindingPatch.cs @@ -16,7 +16,7 @@ namespace Pulumi.Kubernetes.Core.V1 /// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. - /// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + /// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. /// [KubernetesResourceType("kubernetes:core/v1:BindingPatch")] public partial class BindingPatch : KubernetesResource diff --git a/sdk/dotnet/Core/V1/Inputs/CSIPersistentVolumeSourceArgs.cs b/sdk/dotnet/Core/V1/Inputs/CSIPersistentVolumeSourceArgs.cs index 8529323b91..2d0c75415d 100644 --- a/sdk/dotnet/Core/V1/Inputs/CSIPersistentVolumeSourceArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/CSIPersistentVolumeSourceArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { /// - /// Represents storage that is managed by an external CSI volume driver (Beta feature) + /// Represents storage that is managed by an external CSI volume driver /// public class CSIPersistentVolumeSourceArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Core/V1/Inputs/CSIPersistentVolumeSourcePatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/CSIPersistentVolumeSourcePatchArgs.cs index 78d836bdf7..fe4f33f784 100644 --- a/sdk/dotnet/Core/V1/Inputs/CSIPersistentVolumeSourcePatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/CSIPersistentVolumeSourcePatchArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { /// - /// Represents storage that is managed by an external CSI volume driver (Beta feature) + /// Represents storage that is managed by an external CSI volume driver /// public class CSIPersistentVolumeSourcePatchArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Core/V1/Inputs/GRPCActionArgs.cs b/sdk/dotnet/Core/V1/Inputs/GRPCActionArgs.cs index f7d900c0f6..17edb81389 100644 --- a/sdk/dotnet/Core/V1/Inputs/GRPCActionArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/GRPCActionArgs.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { + /// + /// GRPCAction specifies an action involving a GRPC service. + /// public class GRPCActionArgs : global::Pulumi.ResourceArgs { /// diff --git a/sdk/dotnet/Core/V1/Inputs/GRPCActionPatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/GRPCActionPatchArgs.cs index 2c4c08b6ab..3a32d1ba86 100644 --- a/sdk/dotnet/Core/V1/Inputs/GRPCActionPatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/GRPCActionPatchArgs.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { + /// + /// GRPCAction specifies an action involving a GRPC service. + /// public class GRPCActionPatchArgs : global::Pulumi.ResourceArgs { /// diff --git a/sdk/dotnet/Core/V1/Inputs/LifecycleHandlerArgs.cs b/sdk/dotnet/Core/V1/Inputs/LifecycleHandlerArgs.cs index 43e53b4b4e..f0c800bf12 100644 --- a/sdk/dotnet/Core/V1/Inputs/LifecycleHandlerArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/LifecycleHandlerArgs.cs @@ -16,25 +16,25 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 public class LifecycleHandlerArgs : global::Pulumi.ResourceArgs { /// - /// Exec specifies the action to take. + /// Exec specifies a command to execute in the container. /// [Input("exec")] public Input? Exec { get; set; } /// - /// HTTPGet specifies the http request to perform. + /// HTTPGet specifies an HTTP GET request to perform. /// [Input("httpGet")] public Input? HttpGet { get; set; } /// - /// Sleep represents the duration that the container should sleep before being terminated. + /// Sleep represents a duration that the container should sleep. /// [Input("sleep")] public Input? Sleep { get; set; } /// - /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. /// [Input("tcpSocket")] public Input? TcpSocket { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/LifecycleHandlerPatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/LifecycleHandlerPatchArgs.cs index c310853cb4..d8883781b3 100644 --- a/sdk/dotnet/Core/V1/Inputs/LifecycleHandlerPatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/LifecycleHandlerPatchArgs.cs @@ -16,25 +16,25 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 public class LifecycleHandlerPatchArgs : global::Pulumi.ResourceArgs { /// - /// Exec specifies the action to take. + /// Exec specifies a command to execute in the container. /// [Input("exec")] public Input? Exec { get; set; } /// - /// HTTPGet specifies the http request to perform. + /// HTTPGet specifies an HTTP GET request to perform. /// [Input("httpGet")] public Input? HttpGet { get; set; } /// - /// Sleep represents the duration that the container should sleep before being terminated. + /// Sleep represents a duration that the container should sleep. /// [Input("sleep")] public Input? Sleep { get; set; } /// - /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. /// [Input("tcpSocket")] public Input? TcpSocket { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/LocalVolumeSourceArgs.cs b/sdk/dotnet/Core/V1/Inputs/LocalVolumeSourceArgs.cs index c455317d89..229211dc09 100644 --- a/sdk/dotnet/Core/V1/Inputs/LocalVolumeSourceArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/LocalVolumeSourceArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { /// - /// Local represents directly-attached storage with node affinity (Beta feature) + /// Local represents directly-attached storage with node affinity /// public class LocalVolumeSourceArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Core/V1/Inputs/LocalVolumeSourcePatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/LocalVolumeSourcePatchArgs.cs index 077ef157e2..05cb32b159 100644 --- a/sdk/dotnet/Core/V1/Inputs/LocalVolumeSourcePatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/LocalVolumeSourcePatchArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { /// - /// Local represents directly-attached storage with node affinity (Beta feature) + /// Local represents directly-attached storage with node affinity /// public class LocalVolumeSourcePatchArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Core/V1/Inputs/NamespaceConditionArgs.cs b/sdk/dotnet/Core/V1/Inputs/NamespaceConditionArgs.cs index cc87712eb4..130a7f434c 100644 --- a/sdk/dotnet/Core/V1/Inputs/NamespaceConditionArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/NamespaceConditionArgs.cs @@ -15,12 +15,21 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 /// public class NamespaceConditionArgs : global::Pulumi.ResourceArgs { + /// + /// Last time the condition transitioned from one status to another. + /// [Input("lastTransitionTime")] public Input? LastTransitionTime { get; set; } + /// + /// Human-readable message indicating details about last transition. + /// [Input("message")] public Input? Message { get; set; } + /// + /// Unique, one-word, CamelCase reason for the condition's last transition. + /// [Input("reason")] public Input? Reason { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/NodeStatusArgs.cs b/sdk/dotnet/Core/V1/Inputs/NodeStatusArgs.cs index cdf4d1b54b..3659df9ba3 100644 --- a/sdk/dotnet/Core/V1/Inputs/NodeStatusArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/NodeStatusArgs.cs @@ -19,7 +19,7 @@ public class NodeStatusArgs : global::Pulumi.ResourceArgs private InputList? _addresses; /// - /// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + /// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). /// public InputList Addresses { @@ -55,7 +55,7 @@ public InputMap Capacity private InputList? _conditions; /// - /// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + /// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition /// public InputList Conditions { @@ -94,7 +94,7 @@ public InputList Imag } /// - /// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + /// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info /// [Input("nodeInfo")] public Input? NodeInfo { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/PersistentVolumeClaimConditionArgs.cs b/sdk/dotnet/Core/V1/Inputs/PersistentVolumeClaimConditionArgs.cs index a70ec83a07..12dd698d8f 100644 --- a/sdk/dotnet/Core/V1/Inputs/PersistentVolumeClaimConditionArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PersistentVolumeClaimConditionArgs.cs @@ -39,9 +39,15 @@ public class PersistentVolumeClaimConditionArgs : global::Pulumi.ResourceArgs [Input("reason")] public Input? Reason { get; set; } + /// + /// Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + /// [Input("status", required: true)] public Input Status { get; set; } = null!; + /// + /// Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Core/V1/Inputs/PersistentVolumeClaimConditionPatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/PersistentVolumeClaimConditionPatchArgs.cs index fb8e425a6d..94a94eb12c 100644 --- a/sdk/dotnet/Core/V1/Inputs/PersistentVolumeClaimConditionPatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PersistentVolumeClaimConditionPatchArgs.cs @@ -39,9 +39,15 @@ public class PersistentVolumeClaimConditionPatchArgs : global::Pulumi.ResourceAr [Input("reason")] public Input? Reason { get; set; } + /// + /// Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + /// [Input("status")] public Input? Status { get; set; } + /// + /// Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/PersistentVolumeSpecArgs.cs b/sdk/dotnet/Core/V1/Inputs/PersistentVolumeSpecArgs.cs index dc128871f4..5934a59c8d 100644 --- a/sdk/dotnet/Core/V1/Inputs/PersistentVolumeSpecArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PersistentVolumeSpecArgs.cs @@ -28,19 +28,19 @@ public InputList AccessModes } /// - /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [Input("awsElasticBlockStore")] public Input? AwsElasticBlockStore { get; set; } /// - /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. /// [Input("azureDisk")] public Input? AzureDisk { get; set; } /// - /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. /// [Input("azureFile")] public Input? AzureFile { get; set; } @@ -58,13 +58,13 @@ public InputMap Capacity } /// - /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. /// [Input("cephfs")] public Input? Cephfs { get; set; } /// - /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [Input("cinder")] public Input? Cinder { get; set; } @@ -76,7 +76,7 @@ public InputMap Capacity public Input? ClaimRef { get; set; } /// - /// csi represents storage that is handled by an external CSI driver (Beta feature). + /// csi represents storage that is handled by an external CSI driver. /// [Input("csi")] public Input? Csi { get; set; } @@ -88,25 +88,25 @@ public InputMap Capacity public Input? Fc { get; set; } /// - /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. /// [Input("flexVolume")] public Input? FlexVolume { get; set; } /// - /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. /// [Input("flocker")] public Input? Flocker { get; set; } /// - /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [Input("gcePersistentDisk")] public Input? GcePersistentDisk { get; set; } /// - /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// [Input("glusterfs")] public Input? Glusterfs { get; set; } @@ -160,31 +160,31 @@ public InputList MountOptions public Input? PersistentVolumeReclaimPolicy { get; set; } /// - /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. /// [Input("photonPersistentDisk")] public Input? PhotonPersistentDisk { get; set; } /// - /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. /// [Input("portworxVolume")] public Input? PortworxVolume { get; set; } /// - /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. /// [Input("quobyte")] public Input? Quobyte { get; set; } /// - /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md /// [Input("rbd")] public Input? Rbd { get; set; } /// - /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. /// [Input("scaleIO")] public Input? ScaleIO { get; set; } @@ -196,7 +196,7 @@ public InputList MountOptions public Input? StorageClassName { get; set; } /// - /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md /// [Input("storageos")] public Input? Storageos { get; set; } @@ -214,7 +214,7 @@ public InputList MountOptions public Input? VolumeMode { get; set; } /// - /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. /// [Input("vsphereVolume")] public Input? VsphereVolume { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/PersistentVolumeSpecPatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/PersistentVolumeSpecPatchArgs.cs index 728447eeb6..4e857ab2d0 100644 --- a/sdk/dotnet/Core/V1/Inputs/PersistentVolumeSpecPatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PersistentVolumeSpecPatchArgs.cs @@ -28,19 +28,19 @@ public InputList AccessModes } /// - /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [Input("awsElasticBlockStore")] public Input? AwsElasticBlockStore { get; set; } /// - /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. /// [Input("azureDisk")] public Input? AzureDisk { get; set; } /// - /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. /// [Input("azureFile")] public Input? AzureFile { get; set; } @@ -58,13 +58,13 @@ public InputMap Capacity } /// - /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. /// [Input("cephfs")] public Input? Cephfs { get; set; } /// - /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [Input("cinder")] public Input? Cinder { get; set; } @@ -76,7 +76,7 @@ public InputMap Capacity public Input? ClaimRef { get; set; } /// - /// csi represents storage that is handled by an external CSI driver (Beta feature). + /// csi represents storage that is handled by an external CSI driver. /// [Input("csi")] public Input? Csi { get; set; } @@ -88,25 +88,25 @@ public InputMap Capacity public Input? Fc { get; set; } /// - /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. /// [Input("flexVolume")] public Input? FlexVolume { get; set; } /// - /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. /// [Input("flocker")] public Input? Flocker { get; set; } /// - /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [Input("gcePersistentDisk")] public Input? GcePersistentDisk { get; set; } /// - /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// [Input("glusterfs")] public Input? Glusterfs { get; set; } @@ -160,31 +160,31 @@ public InputList MountOptions public Input? PersistentVolumeReclaimPolicy { get; set; } /// - /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. /// [Input("photonPersistentDisk")] public Input? PhotonPersistentDisk { get; set; } /// - /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. /// [Input("portworxVolume")] public Input? PortworxVolume { get; set; } /// - /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. /// [Input("quobyte")] public Input? Quobyte { get; set; } /// - /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md /// [Input("rbd")] public Input? Rbd { get; set; } /// - /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. /// [Input("scaleIO")] public Input? ScaleIO { get; set; } @@ -196,7 +196,7 @@ public InputList MountOptions public Input? StorageClassName { get; set; } /// - /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md /// [Input("storageos")] public Input? Storageos { get; set; } @@ -214,7 +214,7 @@ public InputList MountOptions public Input? VolumeMode { get; set; } /// - /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. /// [Input("vsphereVolume")] public Input? VsphereVolume { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/PodDNSConfigOptionArgs.cs b/sdk/dotnet/Core/V1/Inputs/PodDNSConfigOptionArgs.cs index 354d30c799..0a55fe2984 100644 --- a/sdk/dotnet/Core/V1/Inputs/PodDNSConfigOptionArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PodDNSConfigOptionArgs.cs @@ -16,11 +16,14 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 public class PodDNSConfigOptionArgs : global::Pulumi.ResourceArgs { /// - /// Required. + /// Name is this DNS resolver option's name. Required. /// [Input("name")] public Input? Name { get; set; } + /// + /// Value is this DNS resolver option's value. + /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/PodDNSConfigOptionPatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/PodDNSConfigOptionPatchArgs.cs index e21f991898..d3f191163c 100644 --- a/sdk/dotnet/Core/V1/Inputs/PodDNSConfigOptionPatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PodDNSConfigOptionPatchArgs.cs @@ -16,11 +16,14 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 public class PodDNSConfigOptionPatchArgs : global::Pulumi.ResourceArgs { /// - /// Required. + /// Name is this DNS resolver option's name. Required. /// [Input("name")] public Input? Name { get; set; } + /// + /// Value is this DNS resolver option's value. + /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/PodSecurityContextArgs.cs b/sdk/dotnet/Core/V1/Inputs/PodSecurityContextArgs.cs index e091858479..db29c9af03 100644 --- a/sdk/dotnet/Core/V1/Inputs/PodSecurityContextArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PodSecurityContextArgs.cs @@ -55,6 +55,22 @@ public class PodSecurityContextArgs : global::Pulumi.ResourceArgs [Input("runAsUser")] public Input? RunAsUser { get; set; } + /// + /// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + /// + /// "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + /// + /// "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + /// + /// If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + /// + /// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + /// + /// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + /// + [Input("seLinuxChangePolicy")] + public Input? SeLinuxChangePolicy { get; set; } + /// /// The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. /// diff --git a/sdk/dotnet/Core/V1/Inputs/PodSecurityContextPatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/PodSecurityContextPatchArgs.cs index 590e7acf7e..f5874e9a67 100644 --- a/sdk/dotnet/Core/V1/Inputs/PodSecurityContextPatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PodSecurityContextPatchArgs.cs @@ -55,6 +55,22 @@ public class PodSecurityContextPatchArgs : global::Pulumi.ResourceArgs [Input("runAsUser")] public Input? RunAsUser { get; set; } + /// + /// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + /// + /// "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + /// + /// "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + /// + /// If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + /// + /// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + /// + /// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + /// + [Input("seLinuxChangePolicy")] + public Input? SeLinuxChangePolicy { get; set; } + /// /// The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. /// diff --git a/sdk/dotnet/Core/V1/Inputs/PodSpecArgs.cs b/sdk/dotnet/Core/V1/Inputs/PodSpecArgs.cs index a087957dae..7d3f6e3477 100644 --- a/sdk/dotnet/Core/V1/Inputs/PodSpecArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PodSpecArgs.cs @@ -227,6 +227,16 @@ public InputList Re set => _resourceClaims = value; } + /// + /// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + /// + /// This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + /// + /// This is an alpha field and requires enabling the PodLevelResources feature gate. + /// + [Input("resources")] + public Input? Resources { get; set; } + /// /// Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy /// @@ -278,7 +288,7 @@ public InputList S public Input? ServiceAccountName { get; set; } /// - /// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + /// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. /// [Input("setHostnameAsFQDN")] public Input? SetHostnameAsFQDN { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/PodSpecPatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/PodSpecPatchArgs.cs index 5194c030a0..c5dfee85a0 100644 --- a/sdk/dotnet/Core/V1/Inputs/PodSpecPatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PodSpecPatchArgs.cs @@ -227,6 +227,16 @@ public InputList _resourceClaims = value; } + /// + /// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + /// + /// This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + /// + /// This is an alpha field and requires enabling the PodLevelResources feature gate. + /// + [Input("resources")] + public Input? Resources { get; set; } + /// /// Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy /// @@ -278,7 +288,7 @@ public InputList? ServiceAccountName { get; set; } /// - /// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + /// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. /// [Input("setHostnameAsFQDN")] public Input? SetHostnameAsFQDN { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/PodStatusArgs.cs b/sdk/dotnet/Core/V1/Inputs/PodStatusArgs.cs index 9a3dc44f16..d20e937d0a 100644 --- a/sdk/dotnet/Core/V1/Inputs/PodStatusArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PodStatusArgs.cs @@ -31,7 +31,7 @@ public InputList Condit private InputList? _containerStatuses; /// - /// The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + /// Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status /// public InputList ContainerStatuses { @@ -43,7 +43,7 @@ public InputList Con private InputList? _ephemeralContainerStatuses; /// - /// Status for any ephemeral containers that have run in this pod. + /// Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status /// public InputList EphemeralContainerStatuses { @@ -73,7 +73,7 @@ public InputList HostIPs private InputList? _initContainerStatuses; /// - /// The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + /// Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status /// public InputList InitContainerStatuses { diff --git a/sdk/dotnet/Core/V1/Inputs/PortStatusArgs.cs b/sdk/dotnet/Core/V1/Inputs/PortStatusArgs.cs index f4d1087135..cac066b5a4 100644 --- a/sdk/dotnet/Core/V1/Inputs/PortStatusArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/PortStatusArgs.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { + /// + /// PortStatus represents the error condition of a service port + /// public class PortStatusArgs : global::Pulumi.ResourceArgs { /// diff --git a/sdk/dotnet/Core/V1/Inputs/ProbeArgs.cs b/sdk/dotnet/Core/V1/Inputs/ProbeArgs.cs index 838a7cb3c8..ba43245658 100644 --- a/sdk/dotnet/Core/V1/Inputs/ProbeArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/ProbeArgs.cs @@ -16,7 +16,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 public class ProbeArgs : global::Pulumi.ResourceArgs { /// - /// Exec specifies the action to take. + /// Exec specifies a command to execute in the container. /// [Input("exec")] public Input? Exec { get; set; } @@ -28,13 +28,13 @@ public class ProbeArgs : global::Pulumi.ResourceArgs public Input? FailureThreshold { get; set; } /// - /// GRPC specifies an action involving a GRPC port. + /// GRPC specifies a GRPC HealthCheckRequest. /// [Input("grpc")] public Input? Grpc { get; set; } /// - /// HTTPGet specifies the http request to perform. + /// HTTPGet specifies an HTTP GET request to perform. /// [Input("httpGet")] public Input? HttpGet { get; set; } @@ -58,7 +58,7 @@ public class ProbeArgs : global::Pulumi.ResourceArgs public Input? SuccessThreshold { get; set; } /// - /// TCPSocket specifies an action involving a TCP port. + /// TCPSocket specifies a connection to a TCP port. /// [Input("tcpSocket")] public Input? TcpSocket { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/ProbePatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/ProbePatchArgs.cs index 3d96938482..be92328479 100644 --- a/sdk/dotnet/Core/V1/Inputs/ProbePatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/ProbePatchArgs.cs @@ -16,7 +16,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 public class ProbePatchArgs : global::Pulumi.ResourceArgs { /// - /// Exec specifies the action to take. + /// Exec specifies a command to execute in the container. /// [Input("exec")] public Input? Exec { get; set; } @@ -28,13 +28,13 @@ public class ProbePatchArgs : global::Pulumi.ResourceArgs public Input? FailureThreshold { get; set; } /// - /// GRPC specifies an action involving a GRPC port. + /// GRPC specifies a GRPC HealthCheckRequest. /// [Input("grpc")] public Input? Grpc { get; set; } /// - /// HTTPGet specifies the http request to perform. + /// HTTPGet specifies an HTTP GET request to perform. /// [Input("httpGet")] public Input? HttpGet { get; set; } @@ -58,7 +58,7 @@ public class ProbePatchArgs : global::Pulumi.ResourceArgs public Input? SuccessThreshold { get; set; } /// - /// TCPSocket specifies an action involving a TCP port. + /// TCPSocket specifies a connection to a TCP port. /// [Input("tcpSocket")] public Input? TcpSocket { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/ResourceHealthArgs.cs b/sdk/dotnet/Core/V1/Inputs/ResourceHealthArgs.cs index f531be5c18..e37fd890f3 100644 --- a/sdk/dotnet/Core/V1/Inputs/ResourceHealthArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/ResourceHealthArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { /// - /// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + /// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. /// public class ResourceHealthArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Core/V1/Inputs/ResourceStatusArgs.cs b/sdk/dotnet/Core/V1/Inputs/ResourceStatusArgs.cs index bf0d56e589..111b3ff9f9 100644 --- a/sdk/dotnet/Core/V1/Inputs/ResourceStatusArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/ResourceStatusArgs.cs @@ -10,10 +10,13 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { + /// + /// ResourceStatus represents the status of a single resource allocated to a Pod. + /// public class ResourceStatusArgs : global::Pulumi.ResourceArgs { /// - /// Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + /// Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. /// [Input("name", required: true)] public Input Name { get; set; } = null!; @@ -22,7 +25,7 @@ public class ResourceStatusArgs : global::Pulumi.ResourceArgs private InputList? _resources; /// - /// List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + /// List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. /// public InputList Resources { diff --git a/sdk/dotnet/Core/V1/Inputs/ServiceSpecArgs.cs b/sdk/dotnet/Core/V1/Inputs/ServiceSpecArgs.cs index 3b6ae18d6c..df70d7006a 100644 --- a/sdk/dotnet/Core/V1/Inputs/ServiceSpecArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/ServiceSpecArgs.cs @@ -182,7 +182,7 @@ public InputList TopologyKeys } /// - /// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + /// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. /// [Input("trafficDistribution")] public Input? TrafficDistribution { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/ServiceSpecPatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/ServiceSpecPatchArgs.cs index 417d0b06a0..51f2dd1d97 100644 --- a/sdk/dotnet/Core/V1/Inputs/ServiceSpecPatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/ServiceSpecPatchArgs.cs @@ -182,7 +182,7 @@ public InputList TopologyKeys } /// - /// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + /// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. /// [Input("trafficDistribution")] public Input? TrafficDistribution { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/TypedObjectReferenceArgs.cs b/sdk/dotnet/Core/V1/Inputs/TypedObjectReferenceArgs.cs index 6a5818d044..6b0ec3bc1c 100644 --- a/sdk/dotnet/Core/V1/Inputs/TypedObjectReferenceArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/TypedObjectReferenceArgs.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { + /// + /// TypedObjectReference contains enough information to let you locate the typed referenced object + /// public class TypedObjectReferenceArgs : global::Pulumi.ResourceArgs { /// diff --git a/sdk/dotnet/Core/V1/Inputs/TypedObjectReferencePatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/TypedObjectReferencePatchArgs.cs index 98e3d0ef88..0503a1f634 100644 --- a/sdk/dotnet/Core/V1/Inputs/TypedObjectReferencePatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/TypedObjectReferencePatchArgs.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 { + /// + /// TypedObjectReference contains enough information to let you locate the typed referenced object + /// public class TypedObjectReferencePatchArgs : global::Pulumi.ResourceArgs { /// diff --git a/sdk/dotnet/Core/V1/Inputs/VolumeArgs.cs b/sdk/dotnet/Core/V1/Inputs/VolumeArgs.cs index e47e3651fd..06d1061a22 100644 --- a/sdk/dotnet/Core/V1/Inputs/VolumeArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/VolumeArgs.cs @@ -16,31 +16,31 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 public class VolumeArgs : global::Pulumi.ResourceArgs { /// - /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [Input("awsElasticBlockStore")] public Input? AwsElasticBlockStore { get; set; } /// - /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. /// [Input("azureDisk")] public Input? AzureDisk { get; set; } /// - /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. /// [Input("azureFile")] public Input? AzureFile { get; set; } /// - /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. /// [Input("cephfs")] public Input? Cephfs { get; set; } /// - /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [Input("cinder")] public Input? Cinder { get; set; } @@ -52,7 +52,7 @@ public class VolumeArgs : global::Pulumi.ResourceArgs public Input? ConfigMap { get; set; } /// - /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. /// [Input("csi")] public Input? Csi { get; set; } @@ -95,31 +95,31 @@ public class VolumeArgs : global::Pulumi.ResourceArgs public Input? Fc { get; set; } /// - /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. /// [Input("flexVolume")] public Input? FlexVolume { get; set; } /// - /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. /// [Input("flocker")] public Input? Flocker { get; set; } /// - /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [Input("gcePersistentDisk")] public Input? GcePersistentDisk { get; set; } /// - /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. /// [Input("gitRepo")] public Input? GitRepo { get; set; } /// - /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// [Input("glusterfs")] public Input? Glusterfs { get; set; } @@ -165,13 +165,13 @@ public class VolumeArgs : global::Pulumi.ResourceArgs public Input? PersistentVolumeClaim { get; set; } /// - /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. /// [Input("photonPersistentDisk")] public Input? PhotonPersistentDisk { get; set; } /// - /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. /// [Input("portworxVolume")] public Input? PortworxVolume { get; set; } @@ -183,19 +183,19 @@ public class VolumeArgs : global::Pulumi.ResourceArgs public Input? Projected { get; set; } /// - /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. /// [Input("quobyte")] public Input? Quobyte { get; set; } /// - /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md /// [Input("rbd")] public Input? Rbd { get; set; } /// - /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. /// [Input("scaleIO")] public Input? ScaleIO { get; set; } @@ -207,13 +207,13 @@ public class VolumeArgs : global::Pulumi.ResourceArgs public Input? Secret { get; set; } /// - /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. /// [Input("storageos")] public Input? Storageos { get; set; } /// - /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. /// [Input("vsphereVolume")] public Input? VsphereVolume { get; set; } diff --git a/sdk/dotnet/Core/V1/Inputs/VolumePatchArgs.cs b/sdk/dotnet/Core/V1/Inputs/VolumePatchArgs.cs index 76dff71414..326f531379 100644 --- a/sdk/dotnet/Core/V1/Inputs/VolumePatchArgs.cs +++ b/sdk/dotnet/Core/V1/Inputs/VolumePatchArgs.cs @@ -16,31 +16,31 @@ namespace Pulumi.Kubernetes.Types.Inputs.Core.V1 public class VolumePatchArgs : global::Pulumi.ResourceArgs { /// - /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [Input("awsElasticBlockStore")] public Input? AwsElasticBlockStore { get; set; } /// - /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. /// [Input("azureDisk")] public Input? AzureDisk { get; set; } /// - /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. /// [Input("azureFile")] public Input? AzureFile { get; set; } /// - /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. /// [Input("cephfs")] public Input? Cephfs { get; set; } /// - /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [Input("cinder")] public Input? Cinder { get; set; } @@ -52,7 +52,7 @@ public class VolumePatchArgs : global::Pulumi.ResourceArgs public Input? ConfigMap { get; set; } /// - /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. /// [Input("csi")] public Input? Csi { get; set; } @@ -95,31 +95,31 @@ public class VolumePatchArgs : global::Pulumi.ResourceArgs public Input? Fc { get; set; } /// - /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. /// [Input("flexVolume")] public Input? FlexVolume { get; set; } /// - /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. /// [Input("flocker")] public Input? Flocker { get; set; } /// - /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [Input("gcePersistentDisk")] public Input? GcePersistentDisk { get; set; } /// - /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. /// [Input("gitRepo")] public Input? GitRepo { get; set; } /// - /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// [Input("glusterfs")] public Input? Glusterfs { get; set; } @@ -165,13 +165,13 @@ public class VolumePatchArgs : global::Pulumi.ResourceArgs public Input? PersistentVolumeClaim { get; set; } /// - /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. /// [Input("photonPersistentDisk")] public Input? PhotonPersistentDisk { get; set; } /// - /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. /// [Input("portworxVolume")] public Input? PortworxVolume { get; set; } @@ -183,19 +183,19 @@ public class VolumePatchArgs : global::Pulumi.ResourceArgs public Input? Projected { get; set; } /// - /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. /// [Input("quobyte")] public Input? Quobyte { get; set; } /// - /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md /// [Input("rbd")] public Input? Rbd { get; set; } /// - /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. /// [Input("scaleIO")] public Input? ScaleIO { get; set; } @@ -207,13 +207,13 @@ public class VolumePatchArgs : global::Pulumi.ResourceArgs public Input? Secret { get; set; } /// - /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. /// [Input("storageos")] public Input? Storageos { get; set; } /// - /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. /// [Input("vsphereVolume")] public Input? VsphereVolume { get; set; } diff --git a/sdk/dotnet/Core/V1/Outputs/CSIPersistentVolumeSource.cs b/sdk/dotnet/Core/V1/Outputs/CSIPersistentVolumeSource.cs index cc0f6d22a1..85564c47b7 100644 --- a/sdk/dotnet/Core/V1/Outputs/CSIPersistentVolumeSource.cs +++ b/sdk/dotnet/Core/V1/Outputs/CSIPersistentVolumeSource.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { /// - /// Represents storage that is managed by an external CSI volume driver (Beta feature) + /// Represents storage that is managed by an external CSI volume driver /// [OutputType] public sealed class CSIPersistentVolumeSource diff --git a/sdk/dotnet/Core/V1/Outputs/CSIPersistentVolumeSourcePatch.cs b/sdk/dotnet/Core/V1/Outputs/CSIPersistentVolumeSourcePatch.cs index 46ba55239f..a8d79724ab 100644 --- a/sdk/dotnet/Core/V1/Outputs/CSIPersistentVolumeSourcePatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/CSIPersistentVolumeSourcePatch.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { /// - /// Represents storage that is managed by an external CSI volume driver (Beta feature) + /// Represents storage that is managed by an external CSI volume driver /// [OutputType] public sealed class CSIPersistentVolumeSourcePatch diff --git a/sdk/dotnet/Core/V1/Outputs/GRPCAction.cs b/sdk/dotnet/Core/V1/Outputs/GRPCAction.cs index 53fbdf782c..ea47ffc871 100644 --- a/sdk/dotnet/Core/V1/Outputs/GRPCAction.cs +++ b/sdk/dotnet/Core/V1/Outputs/GRPCAction.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { + /// + /// GRPCAction specifies an action involving a GRPC service. + /// [OutputType] public sealed class GRPCAction { diff --git a/sdk/dotnet/Core/V1/Outputs/GRPCActionPatch.cs b/sdk/dotnet/Core/V1/Outputs/GRPCActionPatch.cs index 19fcaf2528..44bd8312d1 100644 --- a/sdk/dotnet/Core/V1/Outputs/GRPCActionPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/GRPCActionPatch.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { + /// + /// GRPCAction specifies an action involving a GRPC service. + /// [OutputType] public sealed class GRPCActionPatch { diff --git a/sdk/dotnet/Core/V1/Outputs/LifecycleHandler.cs b/sdk/dotnet/Core/V1/Outputs/LifecycleHandler.cs index db5960084d..22ee748fcc 100644 --- a/sdk/dotnet/Core/V1/Outputs/LifecycleHandler.cs +++ b/sdk/dotnet/Core/V1/Outputs/LifecycleHandler.cs @@ -17,19 +17,19 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class LifecycleHandler { /// - /// Exec specifies the action to take. + /// Exec specifies a command to execute in the container. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ExecAction Exec; /// - /// HTTPGet specifies the http request to perform. + /// HTTPGet specifies an HTTP GET request to perform. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.HTTPGetAction HttpGet; /// - /// Sleep represents the duration that the container should sleep before being terminated. + /// Sleep represents a duration that the container should sleep. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.SleepAction Sleep; /// - /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.TCPSocketAction TcpSocket; diff --git a/sdk/dotnet/Core/V1/Outputs/LifecycleHandlerPatch.cs b/sdk/dotnet/Core/V1/Outputs/LifecycleHandlerPatch.cs index f6efc2ef04..7258e2df56 100644 --- a/sdk/dotnet/Core/V1/Outputs/LifecycleHandlerPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/LifecycleHandlerPatch.cs @@ -17,19 +17,19 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class LifecycleHandlerPatch { /// - /// Exec specifies the action to take. + /// Exec specifies a command to execute in the container. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ExecActionPatch Exec; /// - /// HTTPGet specifies the http request to perform. + /// HTTPGet specifies an HTTP GET request to perform. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.HTTPGetActionPatch HttpGet; /// - /// Sleep represents the duration that the container should sleep before being terminated. + /// Sleep represents a duration that the container should sleep. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.SleepActionPatch Sleep; /// - /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.TCPSocketActionPatch TcpSocket; diff --git a/sdk/dotnet/Core/V1/Outputs/LocalVolumeSource.cs b/sdk/dotnet/Core/V1/Outputs/LocalVolumeSource.cs index 68763503b4..982f5b32b0 100644 --- a/sdk/dotnet/Core/V1/Outputs/LocalVolumeSource.cs +++ b/sdk/dotnet/Core/V1/Outputs/LocalVolumeSource.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { /// - /// Local represents directly-attached storage with node affinity (Beta feature) + /// Local represents directly-attached storage with node affinity /// [OutputType] public sealed class LocalVolumeSource diff --git a/sdk/dotnet/Core/V1/Outputs/LocalVolumeSourcePatch.cs b/sdk/dotnet/Core/V1/Outputs/LocalVolumeSourcePatch.cs index da28822d70..6d44e0538c 100644 --- a/sdk/dotnet/Core/V1/Outputs/LocalVolumeSourcePatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/LocalVolumeSourcePatch.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { /// - /// Local represents directly-attached storage with node affinity (Beta feature) + /// Local represents directly-attached storage with node affinity /// [OutputType] public sealed class LocalVolumeSourcePatch diff --git a/sdk/dotnet/Core/V1/Outputs/NamespaceCondition.cs b/sdk/dotnet/Core/V1/Outputs/NamespaceCondition.cs index e8ee7fcb5e..68238948bd 100644 --- a/sdk/dotnet/Core/V1/Outputs/NamespaceCondition.cs +++ b/sdk/dotnet/Core/V1/Outputs/NamespaceCondition.cs @@ -16,8 +16,17 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 [OutputType] public sealed class NamespaceCondition { + /// + /// Last time the condition transitioned from one status to another. + /// public readonly string LastTransitionTime; + /// + /// Human-readable message indicating details about last transition. + /// public readonly string Message; + /// + /// Unique, one-word, CamelCase reason for the condition's last transition. + /// public readonly string Reason; /// /// Status of the condition, one of True, False, Unknown. diff --git a/sdk/dotnet/Core/V1/Outputs/NamespaceConditionPatch.cs b/sdk/dotnet/Core/V1/Outputs/NamespaceConditionPatch.cs index b869538c8f..a7dd796b01 100644 --- a/sdk/dotnet/Core/V1/Outputs/NamespaceConditionPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/NamespaceConditionPatch.cs @@ -16,8 +16,17 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 [OutputType] public sealed class NamespaceConditionPatch { + /// + /// Last time the condition transitioned from one status to another. + /// public readonly string LastTransitionTime; + /// + /// Human-readable message indicating details about last transition. + /// public readonly string Message; + /// + /// Unique, one-word, CamelCase reason for the condition's last transition. + /// public readonly string Reason; /// /// Status of the condition, one of True, False, Unknown. diff --git a/sdk/dotnet/Core/V1/Outputs/NodeStatus.cs b/sdk/dotnet/Core/V1/Outputs/NodeStatus.cs index 4efb9a3db9..5da453c64b 100644 --- a/sdk/dotnet/Core/V1/Outputs/NodeStatus.cs +++ b/sdk/dotnet/Core/V1/Outputs/NodeStatus.cs @@ -17,7 +17,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class NodeStatus { /// - /// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + /// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). /// public readonly ImmutableArray Addresses; /// @@ -29,7 +29,7 @@ public sealed class NodeStatus /// public readonly ImmutableDictionary Capacity; /// - /// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + /// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition /// public readonly ImmutableArray Conditions; /// @@ -49,7 +49,7 @@ public sealed class NodeStatus /// public readonly ImmutableArray Images; /// - /// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + /// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSystemInfo NodeInfo; /// diff --git a/sdk/dotnet/Core/V1/Outputs/NodeStatusPatch.cs b/sdk/dotnet/Core/V1/Outputs/NodeStatusPatch.cs index 0a0773efb5..22a7d72e94 100644 --- a/sdk/dotnet/Core/V1/Outputs/NodeStatusPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/NodeStatusPatch.cs @@ -17,7 +17,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class NodeStatusPatch { /// - /// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + /// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). /// public readonly ImmutableArray Addresses; /// @@ -29,7 +29,7 @@ public sealed class NodeStatusPatch /// public readonly ImmutableDictionary Capacity; /// - /// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + /// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition /// public readonly ImmutableArray Conditions; /// @@ -49,7 +49,7 @@ public sealed class NodeStatusPatch /// public readonly ImmutableArray Images; /// - /// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + /// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSystemInfoPatch NodeInfo; /// diff --git a/sdk/dotnet/Core/V1/Outputs/PersistentVolumeClaimCondition.cs b/sdk/dotnet/Core/V1/Outputs/PersistentVolumeClaimCondition.cs index f1c42ca3fd..3c717650ac 100644 --- a/sdk/dotnet/Core/V1/Outputs/PersistentVolumeClaimCondition.cs +++ b/sdk/dotnet/Core/V1/Outputs/PersistentVolumeClaimCondition.cs @@ -32,7 +32,13 @@ public sealed class PersistentVolumeClaimCondition /// reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. /// public readonly string Reason; + /// + /// Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + /// public readonly string Status; + /// + /// Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + /// public readonly string Type; [OutputConstructor] diff --git a/sdk/dotnet/Core/V1/Outputs/PersistentVolumeClaimConditionPatch.cs b/sdk/dotnet/Core/V1/Outputs/PersistentVolumeClaimConditionPatch.cs index 5dc56aadd0..4f8f39d7ca 100644 --- a/sdk/dotnet/Core/V1/Outputs/PersistentVolumeClaimConditionPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/PersistentVolumeClaimConditionPatch.cs @@ -32,7 +32,13 @@ public sealed class PersistentVolumeClaimConditionPatch /// reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. /// public readonly string Reason; + /// + /// Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + /// public readonly string Status; + /// + /// Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + /// public readonly string Type; [OutputConstructor] diff --git a/sdk/dotnet/Core/V1/Outputs/PersistentVolumeSpec.cs b/sdk/dotnet/Core/V1/Outputs/PersistentVolumeSpec.cs index 7fef0f49bd..a91be85e28 100644 --- a/sdk/dotnet/Core/V1/Outputs/PersistentVolumeSpec.cs +++ b/sdk/dotnet/Core/V1/Outputs/PersistentVolumeSpec.cs @@ -21,15 +21,15 @@ public sealed class PersistentVolumeSpec /// public readonly ImmutableArray AccessModes; /// - /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AWSElasticBlockStoreVolumeSource AwsElasticBlockStore; /// - /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AzureDiskVolumeSource AzureDisk; /// - /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AzureFilePersistentVolumeSource AzureFile; /// @@ -37,11 +37,11 @@ public sealed class PersistentVolumeSpec /// public readonly ImmutableDictionary Capacity; /// - /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CephFSPersistentVolumeSource Cephfs; /// - /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CinderPersistentVolumeSource Cinder; /// @@ -49,7 +49,7 @@ public sealed class PersistentVolumeSpec /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ObjectReference ClaimRef; /// - /// csi represents storage that is handled by an external CSI driver (Beta feature). + /// csi represents storage that is handled by an external CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CSIPersistentVolumeSource Csi; /// @@ -57,19 +57,19 @@ public sealed class PersistentVolumeSpec /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FCVolumeSource Fc; /// - /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FlexPersistentVolumeSource FlexVolume; /// - /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FlockerVolumeSource Flocker; /// - /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GCEPersistentDiskVolumeSource GcePersistentDisk; /// - /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GlusterfsPersistentVolumeSource Glusterfs; /// @@ -101,23 +101,23 @@ public sealed class PersistentVolumeSpec /// public readonly string PersistentVolumeReclaimPolicy; /// - /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PhotonPersistentDiskVolumeSource PhotonPersistentDisk; /// - /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PortworxVolumeSource PortworxVolume; /// - /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.QuobyteVolumeSource Quobyte; /// - /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.RBDPersistentVolumeSource Rbd; /// - /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ScaleIOPersistentVolumeSource ScaleIO; /// @@ -125,7 +125,7 @@ public sealed class PersistentVolumeSpec /// public readonly string StorageClassName; /// - /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.StorageOSPersistentVolumeSource Storageos; /// @@ -137,7 +137,7 @@ public sealed class PersistentVolumeSpec /// public readonly string VolumeMode; /// - /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.VsphereVirtualDiskVolumeSource VsphereVolume; diff --git a/sdk/dotnet/Core/V1/Outputs/PersistentVolumeSpecPatch.cs b/sdk/dotnet/Core/V1/Outputs/PersistentVolumeSpecPatch.cs index db291f2e9d..3a68b708c5 100644 --- a/sdk/dotnet/Core/V1/Outputs/PersistentVolumeSpecPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/PersistentVolumeSpecPatch.cs @@ -21,15 +21,15 @@ public sealed class PersistentVolumeSpecPatch /// public readonly ImmutableArray AccessModes; /// - /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AWSElasticBlockStoreVolumeSourcePatch AwsElasticBlockStore; /// - /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AzureDiskVolumeSourcePatch AzureDisk; /// - /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AzureFilePersistentVolumeSourcePatch AzureFile; /// @@ -37,11 +37,11 @@ public sealed class PersistentVolumeSpecPatch /// public readonly ImmutableDictionary Capacity; /// - /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CephFSPersistentVolumeSourcePatch Cephfs; /// - /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CinderPersistentVolumeSourcePatch Cinder; /// @@ -49,7 +49,7 @@ public sealed class PersistentVolumeSpecPatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ObjectReferencePatch ClaimRef; /// - /// csi represents storage that is handled by an external CSI driver (Beta feature). + /// csi represents storage that is handled by an external CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CSIPersistentVolumeSourcePatch Csi; /// @@ -57,19 +57,19 @@ public sealed class PersistentVolumeSpecPatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FCVolumeSourcePatch Fc; /// - /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FlexPersistentVolumeSourcePatch FlexVolume; /// - /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FlockerVolumeSourcePatch Flocker; /// - /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GCEPersistentDiskVolumeSourcePatch GcePersistentDisk; /// - /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GlusterfsPersistentVolumeSourcePatch Glusterfs; /// @@ -101,23 +101,23 @@ public sealed class PersistentVolumeSpecPatch /// public readonly string PersistentVolumeReclaimPolicy; /// - /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PhotonPersistentDiskVolumeSourcePatch PhotonPersistentDisk; /// - /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PortworxVolumeSourcePatch PortworxVolume; /// - /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.QuobyteVolumeSourcePatch Quobyte; /// - /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.RBDPersistentVolumeSourcePatch Rbd; /// - /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ScaleIOPersistentVolumeSourcePatch ScaleIO; /// @@ -125,7 +125,7 @@ public sealed class PersistentVolumeSpecPatch /// public readonly string StorageClassName; /// - /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.StorageOSPersistentVolumeSourcePatch Storageos; /// @@ -137,7 +137,7 @@ public sealed class PersistentVolumeSpecPatch /// public readonly string VolumeMode; /// - /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.VsphereVirtualDiskVolumeSourcePatch VsphereVolume; diff --git a/sdk/dotnet/Core/V1/Outputs/PodDNSConfigOption.cs b/sdk/dotnet/Core/V1/Outputs/PodDNSConfigOption.cs index cb0f6169c8..7d5e577aef 100644 --- a/sdk/dotnet/Core/V1/Outputs/PodDNSConfigOption.cs +++ b/sdk/dotnet/Core/V1/Outputs/PodDNSConfigOption.cs @@ -17,9 +17,12 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class PodDNSConfigOption { /// - /// Required. + /// Name is this DNS resolver option's name. Required. /// public readonly string Name; + /// + /// Value is this DNS resolver option's value. + /// public readonly string Value; [OutputConstructor] diff --git a/sdk/dotnet/Core/V1/Outputs/PodDNSConfigOptionPatch.cs b/sdk/dotnet/Core/V1/Outputs/PodDNSConfigOptionPatch.cs index 73d812e2cd..601e5f3f71 100644 --- a/sdk/dotnet/Core/V1/Outputs/PodDNSConfigOptionPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/PodDNSConfigOptionPatch.cs @@ -17,9 +17,12 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class PodDNSConfigOptionPatch { /// - /// Required. + /// Name is this DNS resolver option's name. Required. /// public readonly string Name; + /// + /// Value is this DNS resolver option's value. + /// public readonly string Value; [OutputConstructor] diff --git a/sdk/dotnet/Core/V1/Outputs/PodSecurityContext.cs b/sdk/dotnet/Core/V1/Outputs/PodSecurityContext.cs index b12f5bf283..c406187d5b 100644 --- a/sdk/dotnet/Core/V1/Outputs/PodSecurityContext.cs +++ b/sdk/dotnet/Core/V1/Outputs/PodSecurityContext.cs @@ -45,6 +45,20 @@ public sealed class PodSecurityContext /// public readonly int RunAsUser; /// + /// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + /// + /// "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + /// + /// "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + /// + /// If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + /// + /// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + /// + /// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + /// + public readonly string SeLinuxChangePolicy; + /// /// The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.SELinuxOptions SeLinuxOptions; @@ -83,6 +97,8 @@ private PodSecurityContext( int runAsUser, + string seLinuxChangePolicy, + Pulumi.Kubernetes.Types.Outputs.Core.V1.SELinuxOptions seLinuxOptions, Pulumi.Kubernetes.Types.Outputs.Core.V1.SeccompProfile seccompProfile, @@ -101,6 +117,7 @@ private PodSecurityContext( RunAsGroup = runAsGroup; RunAsNonRoot = runAsNonRoot; RunAsUser = runAsUser; + SeLinuxChangePolicy = seLinuxChangePolicy; SeLinuxOptions = seLinuxOptions; SeccompProfile = seccompProfile; SupplementalGroups = supplementalGroups; diff --git a/sdk/dotnet/Core/V1/Outputs/PodSecurityContextPatch.cs b/sdk/dotnet/Core/V1/Outputs/PodSecurityContextPatch.cs index 5270e540d1..1d05f27023 100644 --- a/sdk/dotnet/Core/V1/Outputs/PodSecurityContextPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/PodSecurityContextPatch.cs @@ -45,6 +45,20 @@ public sealed class PodSecurityContextPatch /// public readonly int RunAsUser; /// + /// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + /// + /// "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + /// + /// "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + /// + /// If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + /// + /// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + /// + /// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + /// + public readonly string SeLinuxChangePolicy; + /// /// The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.SELinuxOptionsPatch SeLinuxOptions; @@ -83,6 +97,8 @@ private PodSecurityContextPatch( int runAsUser, + string seLinuxChangePolicy, + Pulumi.Kubernetes.Types.Outputs.Core.V1.SELinuxOptionsPatch seLinuxOptions, Pulumi.Kubernetes.Types.Outputs.Core.V1.SeccompProfilePatch seccompProfile, @@ -101,6 +117,7 @@ private PodSecurityContextPatch( RunAsGroup = runAsGroup; RunAsNonRoot = runAsNonRoot; RunAsUser = runAsUser; + SeLinuxChangePolicy = seLinuxChangePolicy; SeLinuxOptions = seLinuxOptions; SeccompProfile = seccompProfile; SupplementalGroups = supplementalGroups; diff --git a/sdk/dotnet/Core/V1/Outputs/PodSpec.cs b/sdk/dotnet/Core/V1/Outputs/PodSpec.cs index e6f20fa3bc..7a4b7f4870 100644 --- a/sdk/dotnet/Core/V1/Outputs/PodSpec.cs +++ b/sdk/dotnet/Core/V1/Outputs/PodSpec.cs @@ -125,6 +125,14 @@ public sealed class PodSpec /// public readonly ImmutableArray ResourceClaims; /// + /// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + /// + /// This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + /// + /// This is an alpha field and requires enabling the PodLevelResources feature gate. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ResourceRequirements Resources; + /// /// Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy /// public readonly string RestartPolicy; @@ -155,7 +163,7 @@ public sealed class PodSpec /// public readonly string ServiceAccountName; /// - /// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + /// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. /// public readonly bool SetHostnameAsFQDN; /// @@ -235,6 +243,8 @@ private PodSpec( ImmutableArray resourceClaims, + Pulumi.Kubernetes.Types.Outputs.Core.V1.ResourceRequirements resources, + string restartPolicy, string runtimeClassName, @@ -288,6 +298,7 @@ private PodSpec( PriorityClassName = priorityClassName; ReadinessGates = readinessGates; ResourceClaims = resourceClaims; + Resources = resources; RestartPolicy = restartPolicy; RuntimeClassName = runtimeClassName; SchedulerName = schedulerName; diff --git a/sdk/dotnet/Core/V1/Outputs/PodSpecPatch.cs b/sdk/dotnet/Core/V1/Outputs/PodSpecPatch.cs index 36fa5dabeb..011db1e79e 100644 --- a/sdk/dotnet/Core/V1/Outputs/PodSpecPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/PodSpecPatch.cs @@ -125,6 +125,14 @@ public sealed class PodSpecPatch /// public readonly ImmutableArray ResourceClaims; /// + /// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + /// + /// This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + /// + /// This is an alpha field and requires enabling the PodLevelResources feature gate. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ResourceRequirementsPatch Resources; + /// /// Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy /// public readonly string RestartPolicy; @@ -155,7 +163,7 @@ public sealed class PodSpecPatch /// public readonly string ServiceAccountName; /// - /// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + /// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. /// public readonly bool SetHostnameAsFQDN; /// @@ -235,6 +243,8 @@ private PodSpecPatch( ImmutableArray resourceClaims, + Pulumi.Kubernetes.Types.Outputs.Core.V1.ResourceRequirementsPatch resources, + string restartPolicy, string runtimeClassName, @@ -288,6 +298,7 @@ private PodSpecPatch( PriorityClassName = priorityClassName; ReadinessGates = readinessGates; ResourceClaims = resourceClaims; + Resources = resources; RestartPolicy = restartPolicy; RuntimeClassName = runtimeClassName; SchedulerName = schedulerName; diff --git a/sdk/dotnet/Core/V1/Outputs/PodStatus.cs b/sdk/dotnet/Core/V1/Outputs/PodStatus.cs index afc3536389..8574eca850 100644 --- a/sdk/dotnet/Core/V1/Outputs/PodStatus.cs +++ b/sdk/dotnet/Core/V1/Outputs/PodStatus.cs @@ -21,11 +21,11 @@ public sealed class PodStatus /// public readonly ImmutableArray Conditions; /// - /// The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + /// Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status /// public readonly ImmutableArray ContainerStatuses; /// - /// Status for any ephemeral containers that have run in this pod. + /// Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status /// public readonly ImmutableArray EphemeralContainerStatuses; /// @@ -37,7 +37,7 @@ public sealed class PodStatus /// public readonly ImmutableArray HostIPs; /// - /// The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + /// Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status /// public readonly ImmutableArray InitContainerStatuses; /// diff --git a/sdk/dotnet/Core/V1/Outputs/PodStatusPatch.cs b/sdk/dotnet/Core/V1/Outputs/PodStatusPatch.cs index dd9c11e808..f7a7c9a203 100644 --- a/sdk/dotnet/Core/V1/Outputs/PodStatusPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/PodStatusPatch.cs @@ -21,11 +21,11 @@ public sealed class PodStatusPatch /// public readonly ImmutableArray Conditions; /// - /// The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + /// Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status /// public readonly ImmutableArray ContainerStatuses; /// - /// Status for any ephemeral containers that have run in this pod. + /// Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status /// public readonly ImmutableArray EphemeralContainerStatuses; /// @@ -37,7 +37,7 @@ public sealed class PodStatusPatch /// public readonly ImmutableArray HostIPs; /// - /// The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + /// Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status /// public readonly ImmutableArray InitContainerStatuses; /// diff --git a/sdk/dotnet/Core/V1/Outputs/PortStatus.cs b/sdk/dotnet/Core/V1/Outputs/PortStatus.cs index 17dd02eff1..ac5627f8fb 100644 --- a/sdk/dotnet/Core/V1/Outputs/PortStatus.cs +++ b/sdk/dotnet/Core/V1/Outputs/PortStatus.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { + /// + /// PortStatus represents the error condition of a service port + /// [OutputType] public sealed class PortStatus { diff --git a/sdk/dotnet/Core/V1/Outputs/PortStatusPatch.cs b/sdk/dotnet/Core/V1/Outputs/PortStatusPatch.cs index 96f4e8b760..fe90b83130 100644 --- a/sdk/dotnet/Core/V1/Outputs/PortStatusPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/PortStatusPatch.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { + /// + /// PortStatus represents the error condition of a service port + /// [OutputType] public sealed class PortStatusPatch { diff --git a/sdk/dotnet/Core/V1/Outputs/Probe.cs b/sdk/dotnet/Core/V1/Outputs/Probe.cs index 98c10a9369..404fc4958a 100644 --- a/sdk/dotnet/Core/V1/Outputs/Probe.cs +++ b/sdk/dotnet/Core/V1/Outputs/Probe.cs @@ -17,7 +17,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class Probe { /// - /// Exec specifies the action to take. + /// Exec specifies a command to execute in the container. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ExecAction Exec; /// @@ -25,11 +25,11 @@ public sealed class Probe /// public readonly int FailureThreshold; /// - /// GRPC specifies an action involving a GRPC port. + /// GRPC specifies a GRPC HealthCheckRequest. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GRPCAction Grpc; /// - /// HTTPGet specifies the http request to perform. + /// HTTPGet specifies an HTTP GET request to perform. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.HTTPGetAction HttpGet; /// @@ -45,7 +45,7 @@ public sealed class Probe /// public readonly int SuccessThreshold; /// - /// TCPSocket specifies an action involving a TCP port. + /// TCPSocket specifies a connection to a TCP port. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.TCPSocketAction TcpSocket; /// diff --git a/sdk/dotnet/Core/V1/Outputs/ProbePatch.cs b/sdk/dotnet/Core/V1/Outputs/ProbePatch.cs index 5e3dbe4c3d..f64722cca5 100644 --- a/sdk/dotnet/Core/V1/Outputs/ProbePatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/ProbePatch.cs @@ -17,7 +17,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class ProbePatch { /// - /// Exec specifies the action to take. + /// Exec specifies a command to execute in the container. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ExecActionPatch Exec; /// @@ -25,11 +25,11 @@ public sealed class ProbePatch /// public readonly int FailureThreshold; /// - /// GRPC specifies an action involving a GRPC port. + /// GRPC specifies a GRPC HealthCheckRequest. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GRPCActionPatch Grpc; /// - /// HTTPGet specifies the http request to perform. + /// HTTPGet specifies an HTTP GET request to perform. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.HTTPGetActionPatch HttpGet; /// @@ -45,7 +45,7 @@ public sealed class ProbePatch /// public readonly int SuccessThreshold; /// - /// TCPSocket specifies an action involving a TCP port. + /// TCPSocket specifies a connection to a TCP port. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.TCPSocketActionPatch TcpSocket; /// diff --git a/sdk/dotnet/Core/V1/Outputs/ResourceHealth.cs b/sdk/dotnet/Core/V1/Outputs/ResourceHealth.cs index 456bbac81d..dea9b06c6a 100644 --- a/sdk/dotnet/Core/V1/Outputs/ResourceHealth.cs +++ b/sdk/dotnet/Core/V1/Outputs/ResourceHealth.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { /// - /// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + /// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. /// [OutputType] public sealed class ResourceHealth diff --git a/sdk/dotnet/Core/V1/Outputs/ResourceHealthPatch.cs b/sdk/dotnet/Core/V1/Outputs/ResourceHealthPatch.cs index bdce144bfc..70871ee355 100644 --- a/sdk/dotnet/Core/V1/Outputs/ResourceHealthPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/ResourceHealthPatch.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { /// - /// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + /// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. /// [OutputType] public sealed class ResourceHealthPatch diff --git a/sdk/dotnet/Core/V1/Outputs/ResourceStatus.cs b/sdk/dotnet/Core/V1/Outputs/ResourceStatus.cs index 56cabb0ec4..e24414cdae 100644 --- a/sdk/dotnet/Core/V1/Outputs/ResourceStatus.cs +++ b/sdk/dotnet/Core/V1/Outputs/ResourceStatus.cs @@ -10,15 +10,18 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { + /// + /// ResourceStatus represents the status of a single resource allocated to a Pod. + /// [OutputType] public sealed class ResourceStatus { /// - /// Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + /// Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. /// public readonly string Name; /// - /// List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + /// List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. /// public readonly ImmutableArray Resources; diff --git a/sdk/dotnet/Core/V1/Outputs/ResourceStatusPatch.cs b/sdk/dotnet/Core/V1/Outputs/ResourceStatusPatch.cs index 8df2b219dd..44b5effc08 100644 --- a/sdk/dotnet/Core/V1/Outputs/ResourceStatusPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/ResourceStatusPatch.cs @@ -10,15 +10,18 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { + /// + /// ResourceStatus represents the status of a single resource allocated to a Pod. + /// [OutputType] public sealed class ResourceStatusPatch { /// - /// Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + /// Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. /// public readonly string Name; /// - /// List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + /// List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. /// public readonly ImmutableArray Resources; diff --git a/sdk/dotnet/Core/V1/Outputs/ServiceAccount.cs b/sdk/dotnet/Core/V1/Outputs/ServiceAccount.cs index 662ee83ad4..c2ca3af064 100644 --- a/sdk/dotnet/Core/V1/Outputs/ServiceAccount.cs +++ b/sdk/dotnet/Core/V1/Outputs/ServiceAccount.cs @@ -37,7 +37,7 @@ public sealed class ServiceAccount /// public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; /// - /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret /// public readonly ImmutableArray Secrets; diff --git a/sdk/dotnet/Core/V1/Outputs/ServiceSpec.cs b/sdk/dotnet/Core/V1/Outputs/ServiceSpec.cs index 47933482cb..91b928670b 100644 --- a/sdk/dotnet/Core/V1/Outputs/ServiceSpec.cs +++ b/sdk/dotnet/Core/V1/Outputs/ServiceSpec.cs @@ -101,7 +101,7 @@ public sealed class ServiceSpec /// public readonly ImmutableArray TopologyKeys; /// - /// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + /// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. /// public readonly string TrafficDistribution; /// diff --git a/sdk/dotnet/Core/V1/Outputs/ServiceSpecPatch.cs b/sdk/dotnet/Core/V1/Outputs/ServiceSpecPatch.cs index 82094225c4..2a470d020b 100644 --- a/sdk/dotnet/Core/V1/Outputs/ServiceSpecPatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/ServiceSpecPatch.cs @@ -101,7 +101,7 @@ public sealed class ServiceSpecPatch /// public readonly ImmutableArray TopologyKeys; /// - /// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + /// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. /// public readonly string TrafficDistribution; /// diff --git a/sdk/dotnet/Core/V1/Outputs/TypedObjectReference.cs b/sdk/dotnet/Core/V1/Outputs/TypedObjectReference.cs index 024fe3dcdf..45aa33374c 100644 --- a/sdk/dotnet/Core/V1/Outputs/TypedObjectReference.cs +++ b/sdk/dotnet/Core/V1/Outputs/TypedObjectReference.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { + /// + /// TypedObjectReference contains enough information to let you locate the typed referenced object + /// [OutputType] public sealed class TypedObjectReference { diff --git a/sdk/dotnet/Core/V1/Outputs/TypedObjectReferencePatch.cs b/sdk/dotnet/Core/V1/Outputs/TypedObjectReferencePatch.cs index e0bec36000..53ce7b128e 100644 --- a/sdk/dotnet/Core/V1/Outputs/TypedObjectReferencePatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/TypedObjectReferencePatch.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 { + /// + /// TypedObjectReference contains enough information to let you locate the typed referenced object + /// [OutputType] public sealed class TypedObjectReferencePatch { diff --git a/sdk/dotnet/Core/V1/Outputs/Volume.cs b/sdk/dotnet/Core/V1/Outputs/Volume.cs index 8de0d00187..8545c724e7 100644 --- a/sdk/dotnet/Core/V1/Outputs/Volume.cs +++ b/sdk/dotnet/Core/V1/Outputs/Volume.cs @@ -17,23 +17,23 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class Volume { /// - /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AWSElasticBlockStoreVolumeSource AwsElasticBlockStore; /// - /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AzureDiskVolumeSource AzureDisk; /// - /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AzureFileVolumeSource AzureFile; /// - /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CephFSVolumeSource Cephfs; /// - /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CinderVolumeSource Cinder; /// @@ -41,7 +41,7 @@ public sealed class Volume /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ConfigMapVolumeSource ConfigMap; /// - /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CSIVolumeSource Csi; /// @@ -74,23 +74,23 @@ public sealed class Volume /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FCVolumeSource Fc; /// - /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FlexVolumeSource FlexVolume; /// - /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FlockerVolumeSource Flocker; /// - /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GCEPersistentDiskVolumeSource GcePersistentDisk; /// - /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GitRepoVolumeSource GitRepo; /// - /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GlusterfsVolumeSource Glusterfs; /// @@ -122,11 +122,11 @@ public sealed class Volume /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PersistentVolumeClaimVolumeSource PersistentVolumeClaim; /// - /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PhotonPersistentDiskVolumeSource PhotonPersistentDisk; /// - /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PortworxVolumeSource PortworxVolume; /// @@ -134,15 +134,15 @@ public sealed class Volume /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ProjectedVolumeSource Projected; /// - /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.QuobyteVolumeSource Quobyte; /// - /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.RBDVolumeSource Rbd; /// - /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ScaleIOVolumeSource ScaleIO; /// @@ -150,11 +150,11 @@ public sealed class Volume /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.SecretVolumeSource Secret; /// - /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.StorageOSVolumeSource Storageos; /// - /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.VsphereVirtualDiskVolumeSource VsphereVolume; diff --git a/sdk/dotnet/Core/V1/Outputs/VolumePatch.cs b/sdk/dotnet/Core/V1/Outputs/VolumePatch.cs index 13456f5480..f3b45955a6 100644 --- a/sdk/dotnet/Core/V1/Outputs/VolumePatch.cs +++ b/sdk/dotnet/Core/V1/Outputs/VolumePatch.cs @@ -17,23 +17,23 @@ namespace Pulumi.Kubernetes.Types.Outputs.Core.V1 public sealed class VolumePatch { /// - /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AWSElasticBlockStoreVolumeSourcePatch AwsElasticBlockStore; /// - /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AzureDiskVolumeSourcePatch AzureDisk; /// - /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.AzureFileVolumeSourcePatch AzureFile; /// - /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CephFSVolumeSourcePatch Cephfs; /// - /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CinderVolumeSourcePatch Cinder; /// @@ -41,7 +41,7 @@ public sealed class VolumePatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ConfigMapVolumeSourcePatch ConfigMap; /// - /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.CSIVolumeSourcePatch Csi; /// @@ -74,23 +74,23 @@ public sealed class VolumePatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FCVolumeSourcePatch Fc; /// - /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FlexVolumeSourcePatch FlexVolume; /// - /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.FlockerVolumeSourcePatch Flocker; /// - /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GCEPersistentDiskVolumeSourcePatch GcePersistentDisk; /// - /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GitRepoVolumeSourcePatch GitRepo; /// - /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.GlusterfsVolumeSourcePatch Glusterfs; /// @@ -122,11 +122,11 @@ public sealed class VolumePatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PersistentVolumeClaimVolumeSourcePatch PersistentVolumeClaim; /// - /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PhotonPersistentDiskVolumeSourcePatch PhotonPersistentDisk; /// - /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.PortworxVolumeSourcePatch PortworxVolume; /// @@ -134,15 +134,15 @@ public sealed class VolumePatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ProjectedVolumeSourcePatch Projected; /// - /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.QuobyteVolumeSourcePatch Quobyte; /// - /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.RBDVolumeSourcePatch Rbd; /// - /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.ScaleIOVolumeSourcePatch ScaleIO; /// @@ -150,11 +150,11 @@ public sealed class VolumePatch /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.SecretVolumeSourcePatch Secret; /// - /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.StorageOSVolumeSourcePatch Storageos; /// - /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. /// public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.VsphereVirtualDiskVolumeSourcePatch VsphereVolume; diff --git a/sdk/dotnet/Core/V1/ServiceAccount.cs b/sdk/dotnet/Core/V1/ServiceAccount.cs index 1b82c60be5..03accc92a3 100755 --- a/sdk/dotnet/Core/V1/ServiceAccount.cs +++ b/sdk/dotnet/Core/V1/ServiceAccount.cs @@ -46,7 +46,7 @@ public partial class ServiceAccount : KubernetesResource public Output Metadata { get; private set; } = null!; /// - /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret /// [Output("secrets")] public Output> Secrets { get; private set; } = null!; @@ -151,7 +151,7 @@ public InputList? _secrets; /// - /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret /// public InputList Secrets { diff --git a/sdk/dotnet/Core/V1/ServiceAccountPatch.cs b/sdk/dotnet/Core/V1/ServiceAccountPatch.cs index f161aba5f3..6475b02551 100644 --- a/sdk/dotnet/Core/V1/ServiceAccountPatch.cs +++ b/sdk/dotnet/Core/V1/ServiceAccountPatch.cs @@ -52,7 +52,7 @@ public partial class ServiceAccountPatch : KubernetesResource public Output Metadata { get; private set; } = null!; /// - /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret /// [Output("secrets")] public Output> Secrets { get; private set; } = null!; @@ -157,7 +157,7 @@ public InputList? _secrets; /// - /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret /// public InputList Secrets { diff --git a/sdk/dotnet/FlowControl/V1Beta3/Inputs/LimitedPriorityLevelConfigurationArgs.cs b/sdk/dotnet/FlowControl/V1Beta3/Inputs/LimitedPriorityLevelConfigurationArgs.cs index bb92be7fb4..e9c0932c1b 100644 --- a/sdk/dotnet/FlowControl/V1Beta3/Inputs/LimitedPriorityLevelConfigurationArgs.cs +++ b/sdk/dotnet/FlowControl/V1Beta3/Inputs/LimitedPriorityLevelConfigurationArgs.cs @@ -44,9 +44,9 @@ public class LimitedPriorityLevelConfigurationArgs : global::Pulumi.ResourceArgs /// /// `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: /// - /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) /// - /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. /// [Input("nominalConcurrencyShares")] public Input? NominalConcurrencyShares { get; set; } diff --git a/sdk/dotnet/FlowControl/V1Beta3/Inputs/LimitedPriorityLevelConfigurationPatchArgs.cs b/sdk/dotnet/FlowControl/V1Beta3/Inputs/LimitedPriorityLevelConfigurationPatchArgs.cs index 408b6b5c22..03b637a9f5 100644 --- a/sdk/dotnet/FlowControl/V1Beta3/Inputs/LimitedPriorityLevelConfigurationPatchArgs.cs +++ b/sdk/dotnet/FlowControl/V1Beta3/Inputs/LimitedPriorityLevelConfigurationPatchArgs.cs @@ -44,9 +44,9 @@ public class LimitedPriorityLevelConfigurationPatchArgs : global::Pulumi.Resourc /// /// `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: /// - /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) /// - /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. /// [Input("nominalConcurrencyShares")] public Input? NominalConcurrencyShares { get; set; } diff --git a/sdk/dotnet/FlowControl/V1Beta3/Outputs/LimitedPriorityLevelConfiguration.cs b/sdk/dotnet/FlowControl/V1Beta3/Outputs/LimitedPriorityLevelConfiguration.cs index 425ed8bdae..9a10dc7af7 100644 --- a/sdk/dotnet/FlowControl/V1Beta3/Outputs/LimitedPriorityLevelConfiguration.cs +++ b/sdk/dotnet/FlowControl/V1Beta3/Outputs/LimitedPriorityLevelConfiguration.cs @@ -39,9 +39,9 @@ public sealed class LimitedPriorityLevelConfiguration /// /// `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: /// - /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) /// - /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. /// public readonly int NominalConcurrencyShares; diff --git a/sdk/dotnet/FlowControl/V1Beta3/Outputs/LimitedPriorityLevelConfigurationPatch.cs b/sdk/dotnet/FlowControl/V1Beta3/Outputs/LimitedPriorityLevelConfigurationPatch.cs index 62d1903ec7..3789d732c0 100644 --- a/sdk/dotnet/FlowControl/V1Beta3/Outputs/LimitedPriorityLevelConfigurationPatch.cs +++ b/sdk/dotnet/FlowControl/V1Beta3/Outputs/LimitedPriorityLevelConfigurationPatch.cs @@ -39,9 +39,9 @@ public sealed class LimitedPriorityLevelConfigurationPatch /// /// `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: /// - /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) /// - /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. /// public readonly int NominalConcurrencyShares; diff --git a/sdk/dotnet/Resource/V1Alpha1/ResourceClaim.cs b/sdk/dotnet/Resource/V1Alpha1/ResourceClaim.cs index c9135b6460..a3e8987c91 100644 --- a/sdk/dotnet/Resource/V1Alpha1/ResourceClaim.cs +++ b/sdk/dotnet/Resource/V1Alpha1/ResourceClaim.cs @@ -86,6 +86,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaim" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaim" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaim" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha1/ResourceClaimPatch.cs b/sdk/dotnet/Resource/V1Alpha1/ResourceClaimPatch.cs index fc999b8402..8b660cca49 100644 --- a/sdk/dotnet/Resource/V1Alpha1/ResourceClaimPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha1/ResourceClaimPatch.cs @@ -92,6 +92,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha1/ResourceClaimTemplate.cs b/sdk/dotnet/Resource/V1Alpha1/ResourceClaimTemplate.cs index 07266a5778..59a2ff7a28 100644 --- a/sdk/dotnet/Resource/V1Alpha1/ResourceClaimTemplate.cs +++ b/sdk/dotnet/Resource/V1Alpha1/ResourceClaimTemplate.cs @@ -80,6 +80,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha1/ResourceClaimTemplatePatch.cs b/sdk/dotnet/Resource/V1Alpha1/ResourceClaimTemplatePatch.cs index 15b546450b..3df8e8984b 100644 --- a/sdk/dotnet/Resource/V1Alpha1/ResourceClaimTemplatePatch.cs +++ b/sdk/dotnet/Resource/V1Alpha1/ResourceClaimTemplatePatch.cs @@ -86,6 +86,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha2/ResourceClaim.cs b/sdk/dotnet/Resource/V1Alpha2/ResourceClaim.cs index f221b9e4f1..9904867b04 100644 --- a/sdk/dotnet/Resource/V1Alpha2/ResourceClaim.cs +++ b/sdk/dotnet/Resource/V1Alpha2/ResourceClaim.cs @@ -86,6 +86,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaim" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaim" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha2/ResourceClaimPatch.cs b/sdk/dotnet/Resource/V1Alpha2/ResourceClaimPatch.cs index 276b086f35..ba2f23d779 100644 --- a/sdk/dotnet/Resource/V1Alpha2/ResourceClaimPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha2/ResourceClaimPatch.cs @@ -92,6 +92,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha2/ResourceClaimTemplate.cs b/sdk/dotnet/Resource/V1Alpha2/ResourceClaimTemplate.cs index 3972867da3..c70e71bb3a 100644 --- a/sdk/dotnet/Resource/V1Alpha2/ResourceClaimTemplate.cs +++ b/sdk/dotnet/Resource/V1Alpha2/ResourceClaimTemplate.cs @@ -80,6 +80,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha2/ResourceClaimTemplatePatch.cs b/sdk/dotnet/Resource/V1Alpha2/ResourceClaimTemplatePatch.cs index a18f982abc..901620158f 100644 --- a/sdk/dotnet/Resource/V1Alpha2/ResourceClaimTemplatePatch.cs +++ b/sdk/dotnet/Resource/V1Alpha2/ResourceClaimTemplatePatch.cs @@ -86,6 +86,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha2/ResourceSlice.cs b/sdk/dotnet/Resource/V1Alpha2/ResourceSlice.cs index e57691cdc7..21f1594290 100644 --- a/sdk/dotnet/Resource/V1Alpha2/ResourceSlice.cs +++ b/sdk/dotnet/Resource/V1Alpha2/ResourceSlice.cs @@ -91,6 +91,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? Aliases = { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceSlice" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceSlice" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha2/ResourceSlicePatch.cs b/sdk/dotnet/Resource/V1Alpha2/ResourceSlicePatch.cs index 60dab66bcb..7ec3855e2d 100644 --- a/sdk/dotnet/Resource/V1Alpha2/ResourceSlicePatch.cs +++ b/sdk/dotnet/Resource/V1Alpha2/ResourceSlicePatch.cs @@ -97,6 +97,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? Aliases = { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha3/DeviceClass.cs b/sdk/dotnet/Resource/V1Alpha3/DeviceClass.cs index 7beadb2436..f32c649141 100644 --- a/sdk/dotnet/Resource/V1Alpha3/DeviceClass.cs +++ b/sdk/dotnet/Resource/V1Alpha3/DeviceClass.cs @@ -80,6 +80,10 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:DeviceClass" }, + }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/Resource/V1Alpha3/DeviceClassPatch.cs b/sdk/dotnet/Resource/V1Alpha3/DeviceClassPatch.cs index a4ab6b0453..21ef5aa608 100644 --- a/sdk/dotnet/Resource/V1Alpha3/DeviceClassPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/DeviceClassPatch.cs @@ -86,6 +86,10 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch" }, + }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/AllocatedDeviceStatusArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/AllocatedDeviceStatusArgs.cs new file mode 100644 index 0000000000..ca7b97617a --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/AllocatedDeviceStatusArgs.cs @@ -0,0 +1,71 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3 +{ + + /// + /// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + /// + public class AllocatedDeviceStatusArgs : global::Pulumi.ResourceArgs + { + [Input("conditions")] + private InputList? _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. + /// + public InputList Conditions + { + get => _conditions ?? (_conditions = new InputList()); + set => _conditions = value; + } + + /// + /// Data contains arbitrary driver-specific data. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + [Input("data")] + public InputJson? Data { get; set; } + + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + [Input("device", required: true)] + public Input Device { get; set; } = null!; + + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + [Input("driver", required: true)] + public Input Driver { get; set; } = null!; + + /// + /// NetworkData contains network-related information specific to the device. + /// + [Input("networkData")] + public Input? NetworkData { get; set; } + + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + [Input("pool", required: true)] + public Input Pool { get; set; } = null!; + + public AllocatedDeviceStatusArgs() + { + } + public static new AllocatedDeviceStatusArgs Empty => new AllocatedDeviceStatusArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/CELDeviceSelectorArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/CELDeviceSelectorArgs.cs index 7ea2da1a92..9c4b95f7ca 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/CELDeviceSelectorArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/CELDeviceSelectorArgs.cs @@ -43,6 +43,8 @@ public class CELDeviceSelectorArgs : global::Pulumi.ResourceArgs /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: /// /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + /// + /// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. /// [Input("expression", required: true)] public Input Expression { get; set; } = null!; diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/CELDeviceSelectorPatchArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/CELDeviceSelectorPatchArgs.cs index e46e3e92df..9749294227 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/CELDeviceSelectorPatchArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/CELDeviceSelectorPatchArgs.cs @@ -43,6 +43,8 @@ public class CELDeviceSelectorPatchArgs : global::Pulumi.ResourceArgs /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: /// /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + /// + /// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. /// [Input("expression")] public Input? Expression { get; set; } diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestAllocationResultArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestAllocationResultArgs.cs index 6589fec20e..ff2e42b922 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestAllocationResultArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestAllocationResultArgs.cs @@ -15,6 +15,14 @@ namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3 /// public class DeviceRequestAllocationResultArgs : global::Pulumi.ResourceArgs { + /// + /// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + /// + /// 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. + /// + [Input("adminAccess")] + public Input? AdminAccess { get; set; } + /// /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. /// diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestArgs.cs index 39ef0d50a4..dcea196c8f 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestArgs.cs @@ -19,6 +19,8 @@ public class DeviceRequestArgs : global::Pulumi.ResourceArgs { /// /// 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. + /// + /// 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. /// [Input("adminAccess")] public Input? AdminAccess { get; set; } diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestPatchArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestPatchArgs.cs index 1e45bcc535..2628b61c33 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestPatchArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/DeviceRequestPatchArgs.cs @@ -19,6 +19,8 @@ public class DeviceRequestPatchArgs : global::Pulumi.ResourceArgs { /// /// 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. + /// + /// 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. /// [Input("adminAccess")] public Input? AdminAccess { get; set; } diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/NetworkDeviceDataArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/NetworkDeviceDataArgs.cs new file mode 100644 index 0000000000..181a2ea8e1 --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/NetworkDeviceDataArgs.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3 +{ + + /// + /// 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. + /// + public class NetworkDeviceDataArgs : global::Pulumi.ResourceArgs + { + /// + /// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + /// + /// Must not be longer than 128 characters. + /// + [Input("hardwareAddress")] + public Input? HardwareAddress { get; set; } + + /// + /// 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. + /// + /// Must not be longer than 256 characters. + /// + [Input("interfaceName")] + public Input? InterfaceName { get; set; } + + [Input("ips")] + private InputList? _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. + /// + public InputList Ips + { + get => _ips ?? (_ips = new InputList()); + set => _ips = value; + } + + public NetworkDeviceDataArgs() + { + } + public static new NetworkDeviceDataArgs Empty => new NetworkDeviceDataArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/OpaqueDeviceConfigurationArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/OpaqueDeviceConfigurationArgs.cs index 4de9e3ea27..d22ecbc910 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/OpaqueDeviceConfigurationArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/OpaqueDeviceConfigurationArgs.cs @@ -27,6 +27,8 @@ public class OpaqueDeviceConfigurationArgs : global::Pulumi.ResourceArgs /// /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. /// [Input("parameters", required: true)] public InputJson Parameters { get; set; } = null!; diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/OpaqueDeviceConfigurationPatchArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/OpaqueDeviceConfigurationPatchArgs.cs index f43c9859c4..3b520527e0 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/OpaqueDeviceConfigurationPatchArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/OpaqueDeviceConfigurationPatchArgs.cs @@ -27,6 +27,8 @@ public class OpaqueDeviceConfigurationPatchArgs : global::Pulumi.ResourceArgs /// /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. /// [Input("parameters")] public InputJson? Parameters { get; set; } diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimStatusArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimStatusArgs.cs index 757d912909..31ca4a8d4f 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimStatusArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimStatusArgs.cs @@ -31,6 +31,18 @@ public class ResourceClaimStatusArgs : global::Pulumi.ResourceArgs [Input("deallocationRequested")] public Input? DeallocationRequested { get; set; } + [Input("devices")] + private InputList? _devices; + + /// + /// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + /// + public InputList Devices + { + get => _devices ?? (_devices = new InputList()); + set => _devices = value; + } + [Input("reservedFor")] private InputList? _reservedFor; diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimTemplateSpecArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimTemplateSpecArgs.cs index f247b39070..dbccf6a48c 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimTemplateSpecArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimTemplateSpecArgs.cs @@ -16,7 +16,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3 public class ResourceClaimTemplateSpecArgs : global::Pulumi.ResourceArgs { /// - /// ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + /// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. /// [Input("metadata")] public Input? Metadata { get; set; } diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimTemplateSpecPatchArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimTemplateSpecPatchArgs.cs index d1998cfd89..c8332b5e41 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimTemplateSpecPatchArgs.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceClaimTemplateSpecPatchArgs.cs @@ -16,7 +16,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3 public class ResourceClaimTemplateSpecPatchArgs : global::Pulumi.ResourceArgs { /// - /// ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + /// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. /// [Input("metadata")] public Input? Metadata { get; set; } diff --git a/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceSliceArgs.cs b/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceSliceArgs.cs new file mode 100644 index 0000000000..e41065dd65 --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/Inputs/ResourceSliceArgs.cs @@ -0,0 +1,12 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3 +{ +} diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/AllocatedDeviceStatus.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/AllocatedDeviceStatus.cs new file mode 100644 index 0000000000..5f1fe44b12 --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/AllocatedDeviceStatus.cs @@ -0,0 +1,72 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 +{ + + /// + /// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + /// + [OutputType] + public sealed class AllocatedDeviceStatus + { + /// + /// 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. + /// + public readonly ImmutableArray Conditions; + /// + /// Data contains arbitrary driver-specific data. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + public readonly System.Text.Json.JsonElement Data; + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + public readonly string Device; + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + public readonly string Driver; + /// + /// NetworkData contains network-related information specific to the device. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3.NetworkDeviceData NetworkData; + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + public readonly string Pool; + + [OutputConstructor] + private AllocatedDeviceStatus( + ImmutableArray conditions, + + System.Text.Json.JsonElement data, + + string device, + + string driver, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3.NetworkDeviceData networkData, + + string pool) + { + Conditions = conditions; + Data = data; + Device = device; + Driver = driver; + NetworkData = networkData; + Pool = pool; + } + } +} diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/AllocatedDeviceStatusPatch.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/AllocatedDeviceStatusPatch.cs new file mode 100644 index 0000000000..cae534e530 --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/AllocatedDeviceStatusPatch.cs @@ -0,0 +1,72 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 +{ + + /// + /// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + /// + [OutputType] + public sealed class AllocatedDeviceStatusPatch + { + /// + /// 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. + /// + public readonly ImmutableArray Conditions; + /// + /// Data contains arbitrary driver-specific data. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + public readonly System.Text.Json.JsonElement Data; + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + public readonly string Device; + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + public readonly string Driver; + /// + /// NetworkData contains network-related information specific to the device. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3.NetworkDeviceDataPatch NetworkData; + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + public readonly string Pool; + + [OutputConstructor] + private AllocatedDeviceStatusPatch( + ImmutableArray conditions, + + System.Text.Json.JsonElement data, + + string device, + + string driver, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3.NetworkDeviceDataPatch networkData, + + string pool) + { + Conditions = conditions; + Data = data; + Device = device; + Driver = driver; + NetworkData = networkData; + Pool = pool; + } + } +} diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/CELDeviceSelector.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/CELDeviceSelector.cs index 5a3c1050d5..469b24b7ea 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/CELDeviceSelector.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/CELDeviceSelector.cs @@ -44,6 +44,8 @@ public sealed class CELDeviceSelector /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: /// /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + /// + /// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. /// public readonly string Expression; diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/CELDeviceSelectorPatch.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/CELDeviceSelectorPatch.cs index d4c02e0c11..5702a5794d 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/CELDeviceSelectorPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/CELDeviceSelectorPatch.cs @@ -44,6 +44,8 @@ public sealed class CELDeviceSelectorPatch /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: /// /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + /// + /// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. /// public readonly string Expression; diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequest.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequest.cs index ed28cdb8c3..5a105f6cef 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequest.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequest.cs @@ -20,6 +20,8 @@ public sealed class DeviceRequest { /// /// 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. + /// + /// 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. /// public readonly bool AdminAccess; /// diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestAllocationResult.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestAllocationResult.cs index c0a0ae49dc..37da2052e4 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestAllocationResult.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestAllocationResult.cs @@ -16,6 +16,12 @@ namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 [OutputType] public sealed class DeviceRequestAllocationResult { + /// + /// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + /// + /// 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. + /// + public readonly bool AdminAccess; /// /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. /// @@ -39,6 +45,8 @@ public sealed class DeviceRequestAllocationResult [OutputConstructor] private DeviceRequestAllocationResult( + bool adminAccess, + string device, string driver, @@ -47,6 +55,7 @@ private DeviceRequestAllocationResult( string request) { + AdminAccess = adminAccess; Device = device; Driver = driver; Pool = pool; diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestAllocationResultPatch.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestAllocationResultPatch.cs index 87cc7cad5b..2674a27ded 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestAllocationResultPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestAllocationResultPatch.cs @@ -16,6 +16,12 @@ namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 [OutputType] public sealed class DeviceRequestAllocationResultPatch { + /// + /// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + /// + /// 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. + /// + public readonly bool AdminAccess; /// /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. /// @@ -39,6 +45,8 @@ public sealed class DeviceRequestAllocationResultPatch [OutputConstructor] private DeviceRequestAllocationResultPatch( + bool adminAccess, + string device, string driver, @@ -47,6 +55,7 @@ private DeviceRequestAllocationResultPatch( string request) { + AdminAccess = adminAccess; Device = device; Driver = driver; Pool = pool; diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestPatch.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestPatch.cs index f4ed9a1711..8dbf8440f7 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/DeviceRequestPatch.cs @@ -20,6 +20,8 @@ public sealed class DeviceRequestPatch { /// /// 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. + /// + /// 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. /// public readonly bool AdminAccess; /// diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/NetworkDeviceData.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/NetworkDeviceData.cs new file mode 100644 index 0000000000..db715e3073 --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/NetworkDeviceData.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 +{ + + /// + /// 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. + /// + [OutputType] + public sealed class NetworkDeviceData + { + /// + /// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + /// + /// Must not be longer than 128 characters. + /// + public readonly string HardwareAddress; + /// + /// 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. + /// + /// Must not be longer than 256 characters. + /// + public readonly string InterfaceName; + /// + /// 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. + /// + public readonly ImmutableArray Ips; + + [OutputConstructor] + private NetworkDeviceData( + string hardwareAddress, + + string interfaceName, + + ImmutableArray ips) + { + HardwareAddress = hardwareAddress; + InterfaceName = interfaceName; + Ips = ips; + } + } +} diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/NetworkDeviceDataPatch.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/NetworkDeviceDataPatch.cs new file mode 100644 index 0000000000..c8fb7de4ab --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/NetworkDeviceDataPatch.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 +{ + + /// + /// 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. + /// + [OutputType] + public sealed class NetworkDeviceDataPatch + { + /// + /// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + /// + /// Must not be longer than 128 characters. + /// + public readonly string HardwareAddress; + /// + /// 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. + /// + /// Must not be longer than 256 characters. + /// + public readonly string InterfaceName; + /// + /// 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. + /// + public readonly ImmutableArray Ips; + + [OutputConstructor] + private NetworkDeviceDataPatch( + string hardwareAddress, + + string interfaceName, + + ImmutableArray ips) + { + HardwareAddress = hardwareAddress; + InterfaceName = interfaceName; + Ips = ips; + } + } +} diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/OpaqueDeviceConfiguration.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/OpaqueDeviceConfiguration.cs index 4d9cff697d..e778727cd3 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/OpaqueDeviceConfiguration.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/OpaqueDeviceConfiguration.cs @@ -26,6 +26,8 @@ public sealed class OpaqueDeviceConfiguration public readonly string Driver; /// /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. /// public readonly System.Text.Json.JsonElement Parameters; diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/OpaqueDeviceConfigurationPatch.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/OpaqueDeviceConfigurationPatch.cs index 55356ba9b7..b0b3535cad 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/OpaqueDeviceConfigurationPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/OpaqueDeviceConfigurationPatch.cs @@ -26,6 +26,8 @@ public sealed class OpaqueDeviceConfigurationPatch public readonly string Driver; /// /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. /// public readonly System.Text.Json.JsonElement Parameters; diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimStatus.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimStatus.cs index bf87691e57..c9aac25a1d 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimStatus.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimStatus.cs @@ -29,6 +29,10 @@ public sealed class ResourceClaimStatus /// public readonly bool DeallocationRequested; /// + /// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + /// + public readonly ImmutableArray Devices; + /// /// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. /// /// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -45,10 +49,13 @@ private ResourceClaimStatus( bool deallocationRequested, + ImmutableArray devices, + ImmutableArray reservedFor) { Allocation = allocation; DeallocationRequested = deallocationRequested; + Devices = devices; ReservedFor = reservedFor; } } diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimStatusPatch.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimStatusPatch.cs index 28efd2664a..4cf0a6ad32 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimStatusPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimStatusPatch.cs @@ -29,6 +29,10 @@ public sealed class ResourceClaimStatusPatch /// public readonly bool DeallocationRequested; /// + /// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + /// + public readonly ImmutableArray Devices; + /// /// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. /// /// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -45,10 +49,13 @@ private ResourceClaimStatusPatch( bool deallocationRequested, + ImmutableArray devices, + ImmutableArray reservedFor) { Allocation = allocation; DeallocationRequested = deallocationRequested; + Devices = devices; ReservedFor = reservedFor; } } diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimTemplateSpec.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimTemplateSpec.cs index 5475e94312..a607ac4b1f 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimTemplateSpec.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimTemplateSpec.cs @@ -17,7 +17,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 public sealed class ResourceClaimTemplateSpec { /// - /// ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + /// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. /// public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; /// diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimTemplateSpecPatch.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimTemplateSpecPatch.cs index 94e87036dc..1a990f811f 100644 --- a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimTemplateSpecPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceClaimTemplateSpecPatch.cs @@ -17,7 +17,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 public sealed class ResourceClaimTemplateSpecPatch { /// - /// ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + /// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. /// public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMetaPatch Metadata; /// diff --git a/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceSlice.cs b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceSlice.cs new file mode 100644 index 0000000000..b7d63ac898 --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/Outputs/ResourceSlice.cs @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3 +{ + + /// + /// 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. + /// + /// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. + /// + /// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + /// + /// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + /// + /// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [OutputType] + public sealed class ResourceSlice + { + /// + /// 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 + /// + public readonly string ApiVersion; + /// + /// 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 + /// + public readonly string Kind; + /// + /// Standard object metadata + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// Contains the information published by the driver. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3.ResourceSliceSpec Spec; + + [OutputConstructor] + private ResourceSlice( + string apiVersion, + + string kind, + + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Alpha3.ResourceSliceSpec spec) + { + ApiVersion = apiVersion; + Kind = kind; + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/Resource/V1Alpha3/ResourceClaim.cs b/sdk/dotnet/Resource/V1Alpha3/ResourceClaim.cs index 5c52af04ee..f431d4f2ee 100644 --- a/sdk/dotnet/Resource/V1Alpha3/ResourceClaim.cs +++ b/sdk/dotnet/Resource/V1Alpha3/ResourceClaim.cs @@ -86,6 +86,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaim" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaim" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha3/ResourceClaimPatch.cs b/sdk/dotnet/Resource/V1Alpha3/ResourceClaimPatch.cs index 222c073dba..377e193482 100644 --- a/sdk/dotnet/Resource/V1Alpha3/ResourceClaimPatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/ResourceClaimPatch.cs @@ -92,6 +92,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha3/ResourceClaimTemplate.cs b/sdk/dotnet/Resource/V1Alpha3/ResourceClaimTemplate.cs index 32fd75351b..abe71f1d89 100644 --- a/sdk/dotnet/Resource/V1Alpha3/ResourceClaimTemplate.cs +++ b/sdk/dotnet/Resource/V1Alpha3/ResourceClaimTemplate.cs @@ -82,6 +82,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha3/ResourceClaimTemplatePatch.cs b/sdk/dotnet/Resource/V1Alpha3/ResourceClaimTemplatePatch.cs index 0905541a80..62f4b10382 100644 --- a/sdk/dotnet/Resource/V1Alpha3/ResourceClaimTemplatePatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/ResourceClaimTemplatePatch.cs @@ -88,6 +88,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch" }, new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha3/ResourceSlice.cs b/sdk/dotnet/Resource/V1Alpha3/ResourceSlice.cs index 8a7c102b78..5e55bce950 100644 --- a/sdk/dotnet/Resource/V1Alpha3/ResourceSlice.cs +++ b/sdk/dotnet/Resource/V1Alpha3/ResourceSlice.cs @@ -89,6 +89,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? Aliases = { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceSlice" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceSlice" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Alpha3/ResourceSliceList.cs b/sdk/dotnet/Resource/V1Alpha3/ResourceSliceList.cs new file mode 100644 index 0000000000..ff7d1964da --- /dev/null +++ b/sdk/dotnet/Resource/V1Alpha3/ResourceSliceList.cs @@ -0,0 +1,149 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Alpha3 +{ + /// + /// ResourceSliceList is a collection of ResourceSlices. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList")] + public partial class ResourceSliceList : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// Items is the list of resource ResourceSlices. + /// + [Output("items")] + public Output> Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata + /// + [Output("listMeta")] + public Output ListMeta { get; private set; } = null!; + + /// + /// Standard list metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a ResourceSliceList resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceSliceList(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3.ResourceSliceListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceSliceList(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceSliceList(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3.ResourceSliceListArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3.ResourceSliceListArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3.ResourceSliceListArgs(); + args.ApiVersion = "resource.k8s.io/v1alpha3"; + args.Kind = "ResourceSliceList"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceSliceList resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceSliceList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceSliceList(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Alpha3 +{ + + public class ResourceSliceListArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + [Input("items", required: true)] + private InputList? _items; + + /// + /// Items is the list of resource ResourceSlices. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata + /// + [Input("listMeta")] + public Input? ListMeta { get; set; } + + /// + /// Standard list metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + public ResourceSliceListArgs() + { + } + public static new ResourceSliceListArgs Empty => new ResourceSliceListArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Alpha3/ResourceSlicePatch.cs b/sdk/dotnet/Resource/V1Alpha3/ResourceSlicePatch.cs index 8062d9e012..6ffcd5323e 100644 --- a/sdk/dotnet/Resource/V1Alpha3/ResourceSlicePatch.cs +++ b/sdk/dotnet/Resource/V1Alpha3/ResourceSlicePatch.cs @@ -95,6 +95,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? Aliases = { new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch" }, }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/Resource/V1Beta1/DeviceClass.cs b/sdk/dotnet/Resource/V1Beta1/DeviceClass.cs new file mode 100644 index 0000000000..88787f3723 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/DeviceClass.cs @@ -0,0 +1,145 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// 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. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:DeviceClass")] + public partial class DeviceClass : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Spec defines what can be allocated and how to configure it. + /// + /// 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. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a DeviceClass resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public DeviceClass(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClass", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal DeviceClass(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClass", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private DeviceClass(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClass", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "DeviceClass"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:DeviceClass" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing DeviceClass resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static DeviceClass Get(string name, Input id, CustomResourceOptions? options = null) + { + return new DeviceClass(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class DeviceClassArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Spec defines what can be allocated and how to configure it. + /// + /// 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. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + [Input("spec", required: true)] + public Input Spec { get; set; } = null!; + + public DeviceClassArgs() + { + } + public static new DeviceClassArgs Empty => new DeviceClassArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/DeviceClassList.cs b/sdk/dotnet/Resource/V1Beta1/DeviceClassList.cs new file mode 100644 index 0000000000..502cba35b0 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/DeviceClassList.cs @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// DeviceClassList is a collection of classes. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:DeviceClassList")] + public partial class DeviceClassList : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// Items is the list of resource classes. + /// + [Output("items")] + public Output> Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a DeviceClassList resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public DeviceClassList(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClassList", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal DeviceClassList(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClassList", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private DeviceClassList(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClassList", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassListArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassListArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassListArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "DeviceClassList"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing DeviceClassList resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static DeviceClassList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new DeviceClassList(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class DeviceClassListArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + [Input("items", required: true)] + private InputList? _items; + + /// + /// Items is the list of resource classes. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + public DeviceClassListArgs() + { + } + public static new DeviceClassListArgs Empty => new DeviceClassListArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/DeviceClassPatch.cs b/sdk/dotnet/Resource/V1Beta1/DeviceClassPatch.cs new file mode 100644 index 0000000000..0f1a525245 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/DeviceClassPatch.cs @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// Patch resources are used to modify existing Kubernetes resources by using + /// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + /// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + /// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + /// 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. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch")] + public partial class DeviceClassPatch : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Spec defines what can be allocated and how to configure it. + /// + /// 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. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a DeviceClassPatch resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public DeviceClassPatch(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassPatchArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal DeviceClassPatch(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private DeviceClassPatch(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassPatchArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassPatchArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.DeviceClassPatchArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "DeviceClass"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:DeviceClassPatch" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing DeviceClassPatch resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static DeviceClassPatch Get(string name, Input id, CustomResourceOptions? options = null) + { + return new DeviceClassPatch(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class DeviceClassPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Spec defines what can be allocated and how to configure it. + /// + /// 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. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public DeviceClassPatchArgs() + { + } + public static new DeviceClassPatchArgs Empty => new DeviceClassPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/AllocatedDeviceStatusArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/AllocatedDeviceStatusArgs.cs new file mode 100644 index 0000000000..bea182faee --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/AllocatedDeviceStatusArgs.cs @@ -0,0 +1,71 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + /// + public class AllocatedDeviceStatusArgs : global::Pulumi.ResourceArgs + { + [Input("conditions")] + private InputList? _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. + /// + public InputList Conditions + { + get => _conditions ?? (_conditions = new InputList()); + set => _conditions = value; + } + + /// + /// Data contains arbitrary driver-specific data. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + [Input("data")] + public InputJson? Data { get; set; } + + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + [Input("device", required: true)] + public Input Device { get; set; } = null!; + + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + [Input("driver", required: true)] + public Input Driver { get; set; } = null!; + + /// + /// NetworkData contains network-related information specific to the device. + /// + [Input("networkData")] + public Input? NetworkData { get; set; } + + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + [Input("pool", required: true)] + public Input Pool { get; set; } = null!; + + public AllocatedDeviceStatusArgs() + { + } + public static new AllocatedDeviceStatusArgs Empty => new AllocatedDeviceStatusArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/AllocationResultArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/AllocationResultArgs.cs new file mode 100644 index 0000000000..799f1b1fd2 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/AllocationResultArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// AllocationResult contains attributes of an allocated resource. + /// + public class AllocationResultArgs : global::Pulumi.ResourceArgs + { + /// + /// Devices is the result of allocating devices. + /// + [Input("devices")] + public Input? Devices { get; set; } + + /// + /// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + /// + [Input("nodeSelector")] + public Input? NodeSelector { get; set; } + + public AllocationResultArgs() + { + } + public static new AllocationResultArgs Empty => new AllocationResultArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/BasicDeviceArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/BasicDeviceArgs.cs new file mode 100644 index 0000000000..990beedc9e --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/BasicDeviceArgs.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// BasicDevice defines one device instance. + /// + public class BasicDeviceArgs : global::Pulumi.ResourceArgs + { + [Input("attributes")] + private InputMap? _attributes; + + /// + /// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + /// + /// The maximum number of attributes and capacities combined is 32. + /// + public InputMap Attributes + { + get => _attributes ?? (_attributes = new InputMap()); + set => _attributes = value; + } + + [Input("capacity")] + private InputMap? _capacity; + + /// + /// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + /// + /// The maximum number of attributes and capacities combined is 32. + /// + public InputMap Capacity + { + get => _capacity ?? (_capacity = new InputMap()); + set => _capacity = value; + } + + public BasicDeviceArgs() + { + } + public static new BasicDeviceArgs Empty => new BasicDeviceArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/BasicDevicePatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/BasicDevicePatchArgs.cs new file mode 100644 index 0000000000..c820b01896 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/BasicDevicePatchArgs.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// BasicDevice defines one device instance. + /// + public class BasicDevicePatchArgs : global::Pulumi.ResourceArgs + { + [Input("attributes")] + private InputMap? _attributes; + + /// + /// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + /// + /// The maximum number of attributes and capacities combined is 32. + /// + public InputMap Attributes + { + get => _attributes ?? (_attributes = new InputMap()); + set => _attributes = value; + } + + [Input("capacity")] + private InputMap? _capacity; + + /// + /// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + /// + /// The maximum number of attributes and capacities combined is 32. + /// + public InputMap Capacity + { + get => _capacity ?? (_capacity = new InputMap()); + set => _capacity = value; + } + + public BasicDevicePatchArgs() + { + } + public static new BasicDevicePatchArgs Empty => new BasicDevicePatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/CELDeviceSelectorArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/CELDeviceSelectorArgs.cs new file mode 100644 index 0000000000..e3006b59f4 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/CELDeviceSelectorArgs.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// CELDeviceSelector contains a CEL expression for selecting a device. + /// + public class CELDeviceSelectorArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + /// The expression's input is an object named "device", which carries the following properties: + /// - driver (string): the name of the driver which defines this device. + /// - attributes (map[string]object): the device's attributes, grouped by prefix + /// (e.g. device.attributes["dra.example.com"] evaluates to an object with all + /// of the attributes which were prefixed by "dra.example.com". + /// - capacity (map[string]object): the device's capacities, grouped by prefix. + /// + /// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + /// + /// device.driver + /// device.attributes["dra.example.com"].model + /// device.attributes["ext.example.com"].family + /// device.capacity["dra.example.com"].modules + /// + /// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + /// + /// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + /// + /// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + /// + /// A robust expression should check for the existence of attributes before referencing them. + /// + /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + /// + /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + /// + /// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + /// + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + public CELDeviceSelectorArgs() + { + } + public static new CELDeviceSelectorArgs Empty => new CELDeviceSelectorArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/CELDeviceSelectorPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/CELDeviceSelectorPatchArgs.cs new file mode 100644 index 0000000000..b6255c5813 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/CELDeviceSelectorPatchArgs.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// CELDeviceSelector contains a CEL expression for selecting a device. + /// + public class CELDeviceSelectorPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + /// The expression's input is an object named "device", which carries the following properties: + /// - driver (string): the name of the driver which defines this device. + /// - attributes (map[string]object): the device's attributes, grouped by prefix + /// (e.g. device.attributes["dra.example.com"] evaluates to an object with all + /// of the attributes which were prefixed by "dra.example.com". + /// - capacity (map[string]object): the device's capacities, grouped by prefix. + /// + /// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + /// + /// device.driver + /// device.attributes["dra.example.com"].model + /// device.attributes["ext.example.com"].family + /// device.capacity["dra.example.com"].modules + /// + /// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + /// + /// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + /// + /// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + /// + /// A robust expression should check for the existence of attributes before referencing them. + /// + /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + /// + /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + /// + /// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + /// + [Input("expression")] + public Input? Expression { get; set; } + + public CELDeviceSelectorPatchArgs() + { + } + public static new CELDeviceSelectorPatchArgs Empty => new CELDeviceSelectorPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAllocationConfigurationArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAllocationConfigurationArgs.cs new file mode 100644 index 0000000000..df5d5e21bb --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAllocationConfigurationArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceAllocationConfiguration gets embedded in an AllocationResult. + /// + public class DeviceAllocationConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + [Input("opaque")] + public Input? Opaque { get; set; } + + [Input("requests")] + private InputList? _requests; + + /// + /// Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + /// + public InputList Requests + { + get => _requests ?? (_requests = new InputList()); + set => _requests = value; + } + + /// + /// 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. + /// + [Input("source", required: true)] + public Input Source { get; set; } = null!; + + public DeviceAllocationConfigurationArgs() + { + } + public static new DeviceAllocationConfigurationArgs Empty => new DeviceAllocationConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAllocationResultArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAllocationResultArgs.cs new file mode 100644 index 0000000000..25cdda087a --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAllocationResultArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceAllocationResult is the result of allocating devices. + /// + public class DeviceAllocationResultArgs : global::Pulumi.ResourceArgs + { + [Input("config")] + private InputList? _config; + + /// + /// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + /// + /// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + /// + public InputList Config + { + get => _config ?? (_config = new InputList()); + set => _config = value; + } + + [Input("results")] + private InputList? _results; + + /// + /// Results lists all allocated devices. + /// + public InputList Results + { + get => _results ?? (_results = new InputList()); + set => _results = value; + } + + public DeviceAllocationResultArgs() + { + } + public static new DeviceAllocationResultArgs Empty => new DeviceAllocationResultArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceArgs.cs new file mode 100644 index 0000000000..b2ab1cdbfb --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + /// + public class DeviceArgs : global::Pulumi.ResourceArgs + { + /// + /// Basic defines one device instance. + /// + [Input("basic")] + public Input? Basic { get; set; } + + /// + /// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public DeviceArgs() + { + } + public static new DeviceArgs Empty => new DeviceArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAttributeArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAttributeArgs.cs new file mode 100644 index 0000000000..16a02b6ce7 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceAttributeArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceAttribute must have exactly one field set. + /// + public class DeviceAttributeArgs : global::Pulumi.ResourceArgs + { + /// + /// BoolValue is a true/false value. + /// + [Input("bool")] + public Input? Bool { get; set; } + + /// + /// IntValue is a number. + /// + [Input("int")] + public Input? Int { get; set; } + + /// + /// StringValue is a string. Must not be longer than 64 characters. + /// + [Input("string")] + public Input? String { get; set; } + + /// + /// VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + /// + [Input("version")] + public Input? Version { get; set; } + + public DeviceAttributeArgs() + { + } + public static new DeviceAttributeArgs Empty => new DeviceAttributeArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceCapacityArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceCapacityArgs.cs new file mode 100644 index 0000000000..00bc895716 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceCapacityArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceCapacity describes a quantity associated with a device. + /// + public class DeviceCapacityArgs : global::Pulumi.ResourceArgs + { + /// + /// Value defines how much of a certain device capacity is available. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public DeviceCapacityArgs() + { + } + public static new DeviceCapacityArgs Empty => new DeviceCapacityArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimArgs.cs new file mode 100644 index 0000000000..ea96a27450 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimArgs.cs @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceClaim defines how to request devices with a ResourceClaim. + /// + public class DeviceClaimArgs : global::Pulumi.ResourceArgs + { + [Input("config")] + private InputList? _config; + + /// + /// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + /// + public InputList Config + { + get => _config ?? (_config = new InputList()); + set => _config = value; + } + + [Input("constraints")] + private InputList? _constraints; + + /// + /// These constraints must be satisfied by the set of devices that get allocated for the claim. + /// + public InputList Constraints + { + get => _constraints ?? (_constraints = new InputList()); + set => _constraints = value; + } + + [Input("requests")] + private InputList? _requests; + + /// + /// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + /// + public InputList Requests + { + get => _requests ?? (_requests = new InputList()); + set => _requests = value; + } + + public DeviceClaimArgs() + { + } + public static new DeviceClaimArgs Empty => new DeviceClaimArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimConfigurationArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimConfigurationArgs.cs new file mode 100644 index 0000000000..2b66f28e25 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimConfigurationArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + /// + public class DeviceClaimConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + [Input("opaque")] + public Input? Opaque { get; set; } + + [Input("requests")] + private InputList? _requests; + + /// + /// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + /// + public InputList Requests + { + get => _requests ?? (_requests = new InputList()); + set => _requests = value; + } + + public DeviceClaimConfigurationArgs() + { + } + public static new DeviceClaimConfigurationArgs Empty => new DeviceClaimConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimConfigurationPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimConfigurationPatchArgs.cs new file mode 100644 index 0000000000..8773ac1498 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimConfigurationPatchArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + /// + public class DeviceClaimConfigurationPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + [Input("opaque")] + public Input? Opaque { get; set; } + + [Input("requests")] + private InputList? _requests; + + /// + /// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + /// + public InputList Requests + { + get => _requests ?? (_requests = new InputList()); + set => _requests = value; + } + + public DeviceClaimConfigurationPatchArgs() + { + } + public static new DeviceClaimConfigurationPatchArgs Empty => new DeviceClaimConfigurationPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimPatchArgs.cs new file mode 100644 index 0000000000..b743dc3af1 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClaimPatchArgs.cs @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceClaim defines how to request devices with a ResourceClaim. + /// + public class DeviceClaimPatchArgs : global::Pulumi.ResourceArgs + { + [Input("config")] + private InputList? _config; + + /// + /// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + /// + public InputList Config + { + get => _config ?? (_config = new InputList()); + set => _config = value; + } + + [Input("constraints")] + private InputList? _constraints; + + /// + /// These constraints must be satisfied by the set of devices that get allocated for the claim. + /// + public InputList Constraints + { + get => _constraints ?? (_constraints = new InputList()); + set => _constraints = value; + } + + [Input("requests")] + private InputList? _requests; + + /// + /// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + /// + public InputList Requests + { + get => _requests ?? (_requests = new InputList()); + set => _requests = value; + } + + public DeviceClaimPatchArgs() + { + } + public static new DeviceClaimPatchArgs Empty => new DeviceClaimPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassArgs.cs new file mode 100644 index 0000000000..8817b3a82c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassArgs.cs @@ -0,0 +1,12 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassConfigurationArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassConfigurationArgs.cs new file mode 100644 index 0000000000..7adae1eab5 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassConfigurationArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceClassConfiguration is used in DeviceClass. + /// + public class DeviceClassConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + [Input("opaque")] + public Input? Opaque { get; set; } + + public DeviceClassConfigurationArgs() + { + } + public static new DeviceClassConfigurationArgs Empty => new DeviceClassConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassConfigurationPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassConfigurationPatchArgs.cs new file mode 100644 index 0000000000..649e3775dd --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassConfigurationPatchArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceClassConfiguration is used in DeviceClass. + /// + public class DeviceClassConfigurationPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + [Input("opaque")] + public Input? Opaque { get; set; } + + public DeviceClassConfigurationPatchArgs() + { + } + public static new DeviceClassConfigurationPatchArgs Empty => new DeviceClassConfigurationPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassSpecArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassSpecArgs.cs new file mode 100644 index 0000000000..435aa5fed0 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassSpecArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + /// + public class DeviceClassSpecArgs : global::Pulumi.ResourceArgs + { + [Input("config")] + private InputList? _config; + + /// + /// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + /// + /// They are passed to the driver, but are not considered while allocating the claim. + /// + public InputList Config + { + get => _config ?? (_config = new InputList()); + set => _config = value; + } + + [Input("selectors")] + private InputList? _selectors; + + /// + /// Each selector must be satisfied by a device which is claimed via this class. + /// + public InputList Selectors + { + get => _selectors ?? (_selectors = new InputList()); + set => _selectors = value; + } + + public DeviceClassSpecArgs() + { + } + public static new DeviceClassSpecArgs Empty => new DeviceClassSpecArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassSpecPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassSpecPatchArgs.cs new file mode 100644 index 0000000000..a61a21e8fd --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceClassSpecPatchArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + /// + public class DeviceClassSpecPatchArgs : global::Pulumi.ResourceArgs + { + [Input("config")] + private InputList? _config; + + /// + /// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + /// + /// They are passed to the driver, but are not considered while allocating the claim. + /// + public InputList Config + { + get => _config ?? (_config = new InputList()); + set => _config = value; + } + + [Input("selectors")] + private InputList? _selectors; + + /// + /// Each selector must be satisfied by a device which is claimed via this class. + /// + public InputList Selectors + { + get => _selectors ?? (_selectors = new InputList()); + set => _selectors = value; + } + + public DeviceClassSpecPatchArgs() + { + } + public static new DeviceClassSpecPatchArgs Empty => new DeviceClassSpecPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceConstraintArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceConstraintArgs.cs new file mode 100644 index 0000000000..5d3077f4c3 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceConstraintArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceConstraint must have exactly one field set besides Requests. + /// + public class DeviceConstraintArgs : global::Pulumi.ResourceArgs + { + /// + /// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + /// + /// 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. + /// + /// Must include the domain qualifier. + /// + [Input("matchAttribute")] + public Input? MatchAttribute { get; set; } + + [Input("requests")] + private InputList? _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. + /// + public InputList Requests + { + get => _requests ?? (_requests = new InputList()); + set => _requests = value; + } + + public DeviceConstraintArgs() + { + } + public static new DeviceConstraintArgs Empty => new DeviceConstraintArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceConstraintPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceConstraintPatchArgs.cs new file mode 100644 index 0000000000..26492f9e59 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceConstraintPatchArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceConstraint must have exactly one field set besides Requests. + /// + public class DeviceConstraintPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + /// + /// 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. + /// + /// Must include the domain qualifier. + /// + [Input("matchAttribute")] + public Input? MatchAttribute { get; set; } + + [Input("requests")] + private InputList? _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. + /// + public InputList Requests + { + get => _requests ?? (_requests = new InputList()); + set => _requests = value; + } + + public DeviceConstraintPatchArgs() + { + } + public static new DeviceConstraintPatchArgs Empty => new DeviceConstraintPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DevicePatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DevicePatchArgs.cs new file mode 100644 index 0000000000..225fd1cc6c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DevicePatchArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + /// + public class DevicePatchArgs : global::Pulumi.ResourceArgs + { + /// + /// Basic defines one device instance. + /// + [Input("basic")] + public Input? Basic { get; set; } + + /// + /// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + /// + [Input("name")] + public Input? Name { get; set; } + + public DevicePatchArgs() + { + } + public static new DevicePatchArgs Empty => new DevicePatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestAllocationResultArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestAllocationResultArgs.cs new file mode 100644 index 0000000000..2716c9664f --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestAllocationResultArgs.cs @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceRequestAllocationResult contains the allocation result for one request. + /// + public class DeviceRequestAllocationResultArgs : global::Pulumi.ResourceArgs + { + /// + /// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + /// + /// 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. + /// + [Input("adminAccess")] + public Input? AdminAccess { get; set; } + + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + [Input("device", required: true)] + public Input Device { get; set; } = null!; + + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + [Input("driver", required: true)] + public Input Driver { get; set; } = null!; + + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + [Input("pool", required: true)] + public Input Pool { get; set; } = null!; + + /// + /// 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. + /// + [Input("request", required: true)] + public Input Request { get; set; } = null!; + + public DeviceRequestAllocationResultArgs() + { + } + public static new DeviceRequestAllocationResultArgs Empty => new DeviceRequestAllocationResultArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestArgs.cs new file mode 100644 index 0000000000..62d6902c90 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestArgs.cs @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + /// 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. + /// + public class DeviceRequestArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + /// 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. + /// + [Input("adminAccess")] + public Input? AdminAccess { get; set; } + + /// + /// AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + /// + /// - ExactCount: This request is for a specific number of devices. + /// This is the default. The exact number is provided in the + /// count field. + /// + /// - All: This request is for all of the matching devices in a pool. + /// Allocation will fail if some devices are already allocated, + /// unless adminAccess is requested. + /// + /// 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. + /// + /// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + /// + [Input("allocationMode")] + public Input? AllocationMode { get; set; } + + /// + /// 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. + /// + [Input("count")] + public Input? Count { get; set; } + + /// + /// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + /// + /// A class is required. Which classes are available depends on the cluster. + /// + /// 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. + /// + [Input("deviceClassName", required: true)] + public Input DeviceClassName { get; set; } = null!; + + /// + /// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + /// + /// Must be a DNS label. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("selectors")] + private InputList? _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. + /// + public InputList Selectors + { + get => _selectors ?? (_selectors = new InputList()); + set => _selectors = value; + } + + public DeviceRequestArgs() + { + } + public static new DeviceRequestArgs Empty => new DeviceRequestArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestPatchArgs.cs new file mode 100644 index 0000000000..28cd30f05b --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceRequestPatchArgs.cs @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + /// 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. + /// + public class DeviceRequestPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + /// 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. + /// + [Input("adminAccess")] + public Input? AdminAccess { get; set; } + + /// + /// AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + /// + /// - ExactCount: This request is for a specific number of devices. + /// This is the default. The exact number is provided in the + /// count field. + /// + /// - All: This request is for all of the matching devices in a pool. + /// Allocation will fail if some devices are already allocated, + /// unless adminAccess is requested. + /// + /// 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. + /// + /// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + /// + [Input("allocationMode")] + public Input? AllocationMode { get; set; } + + /// + /// 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. + /// + [Input("count")] + public Input? Count { get; set; } + + /// + /// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + /// + /// A class is required. Which classes are available depends on the cluster. + /// + /// 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. + /// + [Input("deviceClassName")] + public Input? DeviceClassName { get; set; } + + /// + /// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + /// + /// Must be a DNS label. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("selectors")] + private InputList? _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. + /// + public InputList Selectors + { + get => _selectors ?? (_selectors = new InputList()); + set => _selectors = value; + } + + public DeviceRequestPatchArgs() + { + } + public static new DeviceRequestPatchArgs Empty => new DeviceRequestPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceSelectorArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceSelectorArgs.cs new file mode 100644 index 0000000000..51a945e117 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceSelectorArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceSelector must have exactly one field set. + /// + public class DeviceSelectorArgs : global::Pulumi.ResourceArgs + { + /// + /// CEL contains a CEL expression for selecting a device. + /// + [Input("cel")] + public Input? Cel { get; set; } + + public DeviceSelectorArgs() + { + } + public static new DeviceSelectorArgs Empty => new DeviceSelectorArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceSelectorPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceSelectorPatchArgs.cs new file mode 100644 index 0000000000..a41ea1715a --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/DeviceSelectorPatchArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// DeviceSelector must have exactly one field set. + /// + public class DeviceSelectorPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// CEL contains a CEL expression for selecting a device. + /// + [Input("cel")] + public Input? Cel { get; set; } + + public DeviceSelectorPatchArgs() + { + } + public static new DeviceSelectorPatchArgs Empty => new DeviceSelectorPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/NetworkDeviceDataArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/NetworkDeviceDataArgs.cs new file mode 100644 index 0000000000..e608b1a00c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/NetworkDeviceDataArgs.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + public class NetworkDeviceDataArgs : global::Pulumi.ResourceArgs + { + /// + /// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + /// + /// Must not be longer than 128 characters. + /// + [Input("hardwareAddress")] + public Input? HardwareAddress { get; set; } + + /// + /// 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. + /// + /// Must not be longer than 256 characters. + /// + [Input("interfaceName")] + public Input? InterfaceName { get; set; } + + [Input("ips")] + private InputList? _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. + /// + public InputList Ips + { + get => _ips ?? (_ips = new InputList()); + set => _ips = value; + } + + public NetworkDeviceDataArgs() + { + } + public static new NetworkDeviceDataArgs Empty => new NetworkDeviceDataArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/OpaqueDeviceConfigurationArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/OpaqueDeviceConfigurationArgs.cs new file mode 100644 index 0000000000..8fd4415b55 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/OpaqueDeviceConfigurationArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + /// + public class OpaqueDeviceConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + /// + /// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + [Input("driver", required: true)] + public Input Driver { get; set; } = null!; + + /// + /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + [Input("parameters", required: true)] + public InputJson Parameters { get; set; } = null!; + + public OpaqueDeviceConfigurationArgs() + { + } + public static new OpaqueDeviceConfigurationArgs Empty => new OpaqueDeviceConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/OpaqueDeviceConfigurationPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/OpaqueDeviceConfigurationPatchArgs.cs new file mode 100644 index 0000000000..316cb58c90 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/OpaqueDeviceConfigurationPatchArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + /// + public class OpaqueDeviceConfigurationPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + /// + /// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + [Input("driver")] + public Input? Driver { get; set; } + + /// + /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + [Input("parameters")] + public InputJson? Parameters { get; set; } + + public OpaqueDeviceConfigurationPatchArgs() + { + } + public static new OpaqueDeviceConfigurationPatchArgs Empty => new OpaqueDeviceConfigurationPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimArgs.cs new file mode 100644 index 0000000000..8817b3a82c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimArgs.cs @@ -0,0 +1,12 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimConsumerReferenceArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimConsumerReferenceArgs.cs new file mode 100644 index 0000000000..4d67f3d87f --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimConsumerReferenceArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + public class ResourceClaimConsumerReferenceArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + [Input("apiGroup")] + public Input? ApiGroup { get; set; } + + /// + /// Name is the name of resource being referenced. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// Resource is the type of resource being referenced, for example "pods". + /// + [Input("resource", required: true)] + public Input Resource { get; set; } = null!; + + /// + /// UID identifies exactly one incarnation of the resource. + /// + [Input("uid", required: true)] + public Input Uid { get; set; } = null!; + + public ResourceClaimConsumerReferenceArgs() + { + } + public static new ResourceClaimConsumerReferenceArgs Empty => new ResourceClaimConsumerReferenceArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimSpecArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimSpecArgs.cs new file mode 100644 index 0000000000..df1fd9e733 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimSpecArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + /// + public class ResourceClaimSpecArgs : global::Pulumi.ResourceArgs + { + /// + /// Devices defines how to request devices. + /// + [Input("devices")] + public Input? Devices { get; set; } + + public ResourceClaimSpecArgs() + { + } + public static new ResourceClaimSpecArgs Empty => new ResourceClaimSpecArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimSpecPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimSpecPatchArgs.cs new file mode 100644 index 0000000000..db3aa487cc --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimSpecPatchArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + /// + public class ResourceClaimSpecPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// Devices defines how to request devices. + /// + [Input("devices")] + public Input? Devices { get; set; } + + public ResourceClaimSpecPatchArgs() + { + } + public static new ResourceClaimSpecPatchArgs Empty => new ResourceClaimSpecPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimStatusArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimStatusArgs.cs new file mode 100644 index 0000000000..2f8f73ab5d --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimStatusArgs.cs @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + /// + public class ResourceClaimStatusArgs : global::Pulumi.ResourceArgs + { + /// + /// Allocation is set once the claim has been allocated successfully. + /// + [Input("allocation")] + public Input? Allocation { get; set; } + + [Input("devices")] + private InputList? _devices; + + /// + /// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + /// + public InputList Devices + { + get => _devices ?? (_devices = new InputList()); + set => _devices = value; + } + + [Input("reservedFor")] + private InputList? _reservedFor; + + /// + /// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + /// + /// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + /// + /// 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. + /// + /// There can be at most 32 such reservations. This may get increased in the future, but not reduced. + /// + public InputList ReservedFor + { + get => _reservedFor ?? (_reservedFor = new InputList()); + set => _reservedFor = value; + } + + public ResourceClaimStatusArgs() + { + } + public static new ResourceClaimStatusArgs Empty => new ResourceClaimStatusArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateArgs.cs new file mode 100644 index 0000000000..8817b3a82c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateArgs.cs @@ -0,0 +1,12 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateSpecArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateSpecArgs.cs new file mode 100644 index 0000000000..d4b0c42cf3 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateSpecArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + /// + public class ResourceClaimTemplateSpecArgs : global::Pulumi.ResourceArgs + { + /// + /// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + /// + [Input("spec", required: true)] + public Input Spec { get; set; } = null!; + + public ResourceClaimTemplateSpecArgs() + { + } + public static new ResourceClaimTemplateSpecArgs Empty => new ResourceClaimTemplateSpecArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateSpecPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateSpecPatchArgs.cs new file mode 100644 index 0000000000..73db95d1b3 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceClaimTemplateSpecPatchArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + /// + public class ResourceClaimTemplateSpecPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public ResourceClaimTemplateSpecPatchArgs() + { + } + public static new ResourceClaimTemplateSpecPatchArgs Empty => new ResourceClaimTemplateSpecPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourcePoolArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourcePoolArgs.cs new file mode 100644 index 0000000000..900bd75946 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourcePoolArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourcePool describes the pool that ResourceSlices belong to. + /// + public class ResourcePoolArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + /// Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + /// + [Input("generation", required: true)] + public Input Generation { get; set; } = null!; + + /// + /// Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + /// + /// 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. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + /// + /// Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + /// + [Input("resourceSliceCount", required: true)] + public Input ResourceSliceCount { get; set; } = null!; + + public ResourcePoolArgs() + { + } + public static new ResourcePoolArgs Empty => new ResourcePoolArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourcePoolPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourcePoolPatchArgs.cs new file mode 100644 index 0000000000..eb5a2cbbc8 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourcePoolPatchArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourcePool describes the pool that ResourceSlices belong to. + /// + public class ResourcePoolPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + /// Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + /// + [Input("generation")] + public Input? Generation { get; set; } + + /// + /// Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + /// + /// 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. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + /// + /// Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + /// + [Input("resourceSliceCount")] + public Input? ResourceSliceCount { get; set; } + + public ResourcePoolPatchArgs() + { + } + public static new ResourcePoolPatchArgs Empty => new ResourcePoolPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceArgs.cs new file mode 100644 index 0000000000..8817b3a82c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceArgs.cs @@ -0,0 +1,12 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceSpecArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceSpecArgs.cs new file mode 100644 index 0000000000..7f0a299bc3 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceSpecArgs.cs @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + /// + public class ResourceSliceSpecArgs : global::Pulumi.ResourceArgs + { + /// + /// AllNodes indicates that all nodes have access to the resources in the pool. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. + /// + [Input("allNodes")] + public Input? AllNodes { get; set; } + + [Input("devices")] + private InputList? _devices; + + /// + /// Devices lists some or all of the devices in this pool. + /// + /// Must not have more than 128 entries. + /// + public InputList Devices + { + get => _devices ?? (_devices = new InputList()); + set => _devices = value; + } + + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + /// + [Input("driver", required: true)] + public Input Driver { get; set; } = null!; + + /// + /// 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. + /// + /// 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. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + /// + [Input("nodeName")] + public Input? NodeName { get; set; } + + /// + /// NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + /// + /// Must use exactly one term. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. + /// + [Input("nodeSelector")] + public Input? NodeSelector { get; set; } + + /// + /// Pool describes the pool that this ResourceSlice belongs to. + /// + [Input("pool", required: true)] + public Input Pool { get; set; } = null!; + + public ResourceSliceSpecArgs() + { + } + public static new ResourceSliceSpecArgs Empty => new ResourceSliceSpecArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceSpecPatchArgs.cs b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceSpecPatchArgs.cs new file mode 100644 index 0000000000..b28db2fd64 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Inputs/ResourceSliceSpecPatchArgs.cs @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + /// + /// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + /// + public class ResourceSliceSpecPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// AllNodes indicates that all nodes have access to the resources in the pool. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. + /// + [Input("allNodes")] + public Input? AllNodes { get; set; } + + [Input("devices")] + private InputList? _devices; + + /// + /// Devices lists some or all of the devices in this pool. + /// + /// Must not have more than 128 entries. + /// + public InputList Devices + { + get => _devices ?? (_devices = new InputList()); + set => _devices = value; + } + + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + /// + [Input("driver")] + public Input? Driver { get; set; } + + /// + /// 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. + /// + /// 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. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + /// + [Input("nodeName")] + public Input? NodeName { get; set; } + + /// + /// NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + /// + /// Must use exactly one term. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. + /// + [Input("nodeSelector")] + public Input? NodeSelector { get; set; } + + /// + /// Pool describes the pool that this ResourceSlice belongs to. + /// + [Input("pool")] + public Input? Pool { get; set; } + + public ResourceSliceSpecPatchArgs() + { + } + public static new ResourceSliceSpecPatchArgs Empty => new ResourceSliceSpecPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/AllocatedDeviceStatus.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/AllocatedDeviceStatus.cs new file mode 100644 index 0000000000..8cfca57141 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/AllocatedDeviceStatus.cs @@ -0,0 +1,72 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + /// + [OutputType] + public sealed class AllocatedDeviceStatus + { + /// + /// 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. + /// + public readonly ImmutableArray Conditions; + /// + /// Data contains arbitrary driver-specific data. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + public readonly System.Text.Json.JsonElement Data; + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + public readonly string Device; + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + public readonly string Driver; + /// + /// NetworkData contains network-related information specific to the device. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.NetworkDeviceData NetworkData; + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + public readonly string Pool; + + [OutputConstructor] + private AllocatedDeviceStatus( + ImmutableArray conditions, + + System.Text.Json.JsonElement data, + + string device, + + string driver, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.NetworkDeviceData networkData, + + string pool) + { + Conditions = conditions; + Data = data; + Device = device; + Driver = driver; + NetworkData = networkData; + Pool = pool; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/AllocatedDeviceStatusPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/AllocatedDeviceStatusPatch.cs new file mode 100644 index 0000000000..8ece4c966a --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/AllocatedDeviceStatusPatch.cs @@ -0,0 +1,72 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + /// + [OutputType] + public sealed class AllocatedDeviceStatusPatch + { + /// + /// 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. + /// + public readonly ImmutableArray Conditions; + /// + /// Data contains arbitrary driver-specific data. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + public readonly System.Text.Json.JsonElement Data; + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + public readonly string Device; + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + public readonly string Driver; + /// + /// NetworkData contains network-related information specific to the device. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.NetworkDeviceDataPatch NetworkData; + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + public readonly string Pool; + + [OutputConstructor] + private AllocatedDeviceStatusPatch( + ImmutableArray conditions, + + System.Text.Json.JsonElement data, + + string device, + + string driver, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.NetworkDeviceDataPatch networkData, + + string pool) + { + Conditions = conditions; + Data = data; + Device = device; + Driver = driver; + NetworkData = networkData; + Pool = pool; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/AllocationResult.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/AllocationResult.cs new file mode 100644 index 0000000000..61fa712185 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/AllocationResult.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// AllocationResult contains attributes of an allocated resource. + /// + [OutputType] + public sealed class AllocationResult + { + /// + /// Devices is the result of allocating devices. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceAllocationResult Devices; + /// + /// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSelector NodeSelector; + + [OutputConstructor] + private AllocationResult( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceAllocationResult devices, + + Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSelector nodeSelector) + { + Devices = devices; + NodeSelector = nodeSelector; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/AllocationResultPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/AllocationResultPatch.cs new file mode 100644 index 0000000000..df731c80c3 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/AllocationResultPatch.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// AllocationResult contains attributes of an allocated resource. + /// + [OutputType] + public sealed class AllocationResultPatch + { + /// + /// Devices is the result of allocating devices. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceAllocationResultPatch Devices; + /// + /// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSelectorPatch NodeSelector; + + [OutputConstructor] + private AllocationResultPatch( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceAllocationResultPatch devices, + + Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSelectorPatch nodeSelector) + { + Devices = devices; + NodeSelector = nodeSelector; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/BasicDevice.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/BasicDevice.cs new file mode 100644 index 0000000000..00647b29f0 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/BasicDevice.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// BasicDevice defines one device instance. + /// + [OutputType] + public sealed class BasicDevice + { + /// + /// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + /// + /// The maximum number of attributes and capacities combined is 32. + /// + public readonly ImmutableDictionary Attributes; + /// + /// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + /// + /// The maximum number of attributes and capacities combined is 32. + /// + public readonly ImmutableDictionary Capacity; + + [OutputConstructor] + private BasicDevice( + ImmutableDictionary attributes, + + ImmutableDictionary capacity) + { + Attributes = attributes; + Capacity = capacity; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/BasicDevicePatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/BasicDevicePatch.cs new file mode 100644 index 0000000000..4811bd9e2d --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/BasicDevicePatch.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// BasicDevice defines one device instance. + /// + [OutputType] + public sealed class BasicDevicePatch + { + /// + /// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + /// + /// The maximum number of attributes and capacities combined is 32. + /// + public readonly ImmutableDictionary Attributes; + /// + /// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + /// + /// The maximum number of attributes and capacities combined is 32. + /// + public readonly ImmutableDictionary Capacity; + + [OutputConstructor] + private BasicDevicePatch( + ImmutableDictionary attributes, + + ImmutableDictionary capacity) + { + Attributes = attributes; + Capacity = capacity; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/CELDeviceSelector.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/CELDeviceSelector.cs new file mode 100644 index 0000000000..a52d16069c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/CELDeviceSelector.cs @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// CELDeviceSelector contains a CEL expression for selecting a device. + /// + [OutputType] + public sealed class CELDeviceSelector + { + /// + /// 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. + /// + /// The expression's input is an object named "device", which carries the following properties: + /// - driver (string): the name of the driver which defines this device. + /// - attributes (map[string]object): the device's attributes, grouped by prefix + /// (e.g. device.attributes["dra.example.com"] evaluates to an object with all + /// of the attributes which were prefixed by "dra.example.com". + /// - capacity (map[string]object): the device's capacities, grouped by prefix. + /// + /// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + /// + /// device.driver + /// device.attributes["dra.example.com"].model + /// device.attributes["ext.example.com"].family + /// device.capacity["dra.example.com"].modules + /// + /// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + /// + /// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + /// + /// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + /// + /// A robust expression should check for the existence of attributes before referencing them. + /// + /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + /// + /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + /// + /// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + /// + public readonly string Expression; + + [OutputConstructor] + private CELDeviceSelector(string expression) + { + Expression = expression; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/CELDeviceSelectorPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/CELDeviceSelectorPatch.cs new file mode 100644 index 0000000000..e954e157bc --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/CELDeviceSelectorPatch.cs @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// CELDeviceSelector contains a CEL expression for selecting a device. + /// + [OutputType] + public sealed class CELDeviceSelectorPatch + { + /// + /// 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. + /// + /// The expression's input is an object named "device", which carries the following properties: + /// - driver (string): the name of the driver which defines this device. + /// - attributes (map[string]object): the device's attributes, grouped by prefix + /// (e.g. device.attributes["dra.example.com"] evaluates to an object with all + /// of the attributes which were prefixed by "dra.example.com". + /// - capacity (map[string]object): the device's capacities, grouped by prefix. + /// + /// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + /// + /// device.driver + /// device.attributes["dra.example.com"].model + /// device.attributes["ext.example.com"].family + /// device.capacity["dra.example.com"].modules + /// + /// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + /// + /// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + /// + /// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + /// + /// A robust expression should check for the existence of attributes before referencing them. + /// + /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + /// + /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + /// + /// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + /// + public readonly string Expression; + + [OutputConstructor] + private CELDeviceSelectorPatch(string expression) + { + Expression = expression; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/Device.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/Device.cs new file mode 100644 index 0000000000..8aa354d6b5 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/Device.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + /// + [OutputType] + public sealed class Device + { + /// + /// Basic defines one device instance. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.BasicDevice Basic; + /// + /// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + /// + public readonly string Name; + + [OutputConstructor] + private Device( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.BasicDevice basic, + + string name) + { + Basic = basic; + Name = name; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationConfiguration.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationConfiguration.cs new file mode 100644 index 0000000000..95ca4c601a --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationConfiguration.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceAllocationConfiguration gets embedded in an AllocationResult. + /// + [OutputType] + public sealed class DeviceAllocationConfiguration + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfiguration Opaque; + /// + /// Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + /// + public readonly ImmutableArray Requests; + /// + /// 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. + /// + public readonly string Source; + + [OutputConstructor] + private DeviceAllocationConfiguration( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfiguration opaque, + + ImmutableArray requests, + + string source) + { + Opaque = opaque; + Requests = requests; + Source = source; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationConfigurationPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationConfigurationPatch.cs new file mode 100644 index 0000000000..09f9572295 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationConfigurationPatch.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceAllocationConfiguration gets embedded in an AllocationResult. + /// + [OutputType] + public sealed class DeviceAllocationConfigurationPatch + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfigurationPatch Opaque; + /// + /// Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + /// + public readonly ImmutableArray Requests; + /// + /// 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. + /// + public readonly string Source; + + [OutputConstructor] + private DeviceAllocationConfigurationPatch( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfigurationPatch opaque, + + ImmutableArray requests, + + string source) + { + Opaque = opaque; + Requests = requests; + Source = source; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationResult.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationResult.cs new file mode 100644 index 0000000000..fe20bc6351 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationResult.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceAllocationResult is the result of allocating devices. + /// + [OutputType] + public sealed class DeviceAllocationResult + { + /// + /// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + /// + /// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + /// + public readonly ImmutableArray Config; + /// + /// Results lists all allocated devices. + /// + public readonly ImmutableArray Results; + + [OutputConstructor] + private DeviceAllocationResult( + ImmutableArray config, + + ImmutableArray results) + { + Config = config; + Results = results; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationResultPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationResultPatch.cs new file mode 100644 index 0000000000..3574680332 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAllocationResultPatch.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceAllocationResult is the result of allocating devices. + /// + [OutputType] + public sealed class DeviceAllocationResultPatch + { + /// + /// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + /// + /// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + /// + public readonly ImmutableArray Config; + /// + /// Results lists all allocated devices. + /// + public readonly ImmutableArray Results; + + [OutputConstructor] + private DeviceAllocationResultPatch( + ImmutableArray config, + + ImmutableArray results) + { + Config = config; + Results = results; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAttribute.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAttribute.cs new file mode 100644 index 0000000000..d030920ed0 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceAttribute.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceAttribute must have exactly one field set. + /// + [OutputType] + public sealed class DeviceAttribute + { + /// + /// BoolValue is a true/false value. + /// + public readonly bool Bool; + /// + /// IntValue is a number. + /// + public readonly int Int; + /// + /// StringValue is a string. Must not be longer than 64 characters. + /// + public readonly string String; + /// + /// VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + /// + public readonly string Version; + + [OutputConstructor] + private DeviceAttribute( + bool @bool, + + int @int, + + string @string, + + string version) + { + Bool = @bool; + Int = @int; + String = @string; + Version = version; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceCapacity.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceCapacity.cs new file mode 100644 index 0000000000..09e5ab1330 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceCapacity.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceCapacity describes a quantity associated with a device. + /// + [OutputType] + public sealed class DeviceCapacity + { + /// + /// Value defines how much of a certain device capacity is available. + /// + public readonly string Value; + + [OutputConstructor] + private DeviceCapacity(string value) + { + Value = value; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaim.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaim.cs new file mode 100644 index 0000000000..10ed2df7fa --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaim.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceClaim defines how to request devices with a ResourceClaim. + /// + [OutputType] + public sealed class DeviceClaim + { + /// + /// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + /// + public readonly ImmutableArray Config; + /// + /// These constraints must be satisfied by the set of devices that get allocated for the claim. + /// + public readonly ImmutableArray Constraints; + /// + /// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + /// + public readonly ImmutableArray Requests; + + [OutputConstructor] + private DeviceClaim( + ImmutableArray config, + + ImmutableArray constraints, + + ImmutableArray requests) + { + Config = config; + Constraints = constraints; + Requests = requests; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimConfiguration.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimConfiguration.cs new file mode 100644 index 0000000000..8d49ac5e76 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimConfiguration.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + /// + [OutputType] + public sealed class DeviceClaimConfiguration + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfiguration Opaque; + /// + /// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + /// + public readonly ImmutableArray Requests; + + [OutputConstructor] + private DeviceClaimConfiguration( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfiguration opaque, + + ImmutableArray requests) + { + Opaque = opaque; + Requests = requests; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimConfigurationPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimConfigurationPatch.cs new file mode 100644 index 0000000000..8b4c976599 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimConfigurationPatch.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + /// + [OutputType] + public sealed class DeviceClaimConfigurationPatch + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfigurationPatch Opaque; + /// + /// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + /// + public readonly ImmutableArray Requests; + + [OutputConstructor] + private DeviceClaimConfigurationPatch( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfigurationPatch opaque, + + ImmutableArray requests) + { + Opaque = opaque; + Requests = requests; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimPatch.cs new file mode 100644 index 0000000000..089045e0c6 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClaimPatch.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceClaim defines how to request devices with a ResourceClaim. + /// + [OutputType] + public sealed class DeviceClaimPatch + { + /// + /// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + /// + public readonly ImmutableArray Config; + /// + /// These constraints must be satisfied by the set of devices that get allocated for the claim. + /// + public readonly ImmutableArray Constraints; + /// + /// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + /// + public readonly ImmutableArray Requests; + + [OutputConstructor] + private DeviceClaimPatch( + ImmutableArray config, + + ImmutableArray constraints, + + ImmutableArray requests) + { + Config = config; + Constraints = constraints; + Requests = requests; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClass.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClass.cs new file mode 100644 index 0000000000..dab9da5b42 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClass.cs @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [OutputType] + public sealed class DeviceClass + { + /// + /// 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 + /// + public readonly string ApiVersion; + /// + /// 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 + /// + public readonly string Kind; + /// + /// Standard object metadata + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// Spec defines what can be allocated and how to configure it. + /// + /// 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. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceClassSpec Spec; + + [OutputConstructor] + private DeviceClass( + string apiVersion, + + string kind, + + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceClassSpec spec) + { + ApiVersion = apiVersion; + Kind = kind; + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassConfiguration.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassConfiguration.cs new file mode 100644 index 0000000000..bb31f9ff07 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassConfiguration.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceClassConfiguration is used in DeviceClass. + /// + [OutputType] + public sealed class DeviceClassConfiguration + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfiguration Opaque; + + [OutputConstructor] + private DeviceClassConfiguration(Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfiguration opaque) + { + Opaque = opaque; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassConfigurationPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassConfigurationPatch.cs new file mode 100644 index 0000000000..ca21809411 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassConfigurationPatch.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceClassConfiguration is used in DeviceClass. + /// + [OutputType] + public sealed class DeviceClassConfigurationPatch + { + /// + /// Opaque provides driver-specific configuration parameters. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfigurationPatch Opaque; + + [OutputConstructor] + private DeviceClassConfigurationPatch(Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.OpaqueDeviceConfigurationPatch opaque) + { + Opaque = opaque; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassSpec.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassSpec.cs new file mode 100644 index 0000000000..dfca658bd2 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassSpec.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + /// + [OutputType] + public sealed class DeviceClassSpec + { + /// + /// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + /// + /// They are passed to the driver, but are not considered while allocating the claim. + /// + public readonly ImmutableArray Config; + /// + /// Each selector must be satisfied by a device which is claimed via this class. + /// + public readonly ImmutableArray Selectors; + + [OutputConstructor] + private DeviceClassSpec( + ImmutableArray config, + + ImmutableArray selectors) + { + Config = config; + Selectors = selectors; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassSpecPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassSpecPatch.cs new file mode 100644 index 0000000000..52ebbd8c73 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceClassSpecPatch.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + /// + [OutputType] + public sealed class DeviceClassSpecPatch + { + /// + /// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + /// + /// They are passed to the driver, but are not considered while allocating the claim. + /// + public readonly ImmutableArray Config; + /// + /// Each selector must be satisfied by a device which is claimed via this class. + /// + public readonly ImmutableArray Selectors; + + [OutputConstructor] + private DeviceClassSpecPatch( + ImmutableArray config, + + ImmutableArray selectors) + { + Config = config; + Selectors = selectors; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceConstraint.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceConstraint.cs new file mode 100644 index 0000000000..7eb718c4c9 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceConstraint.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceConstraint must have exactly one field set besides Requests. + /// + [OutputType] + public sealed class DeviceConstraint + { + /// + /// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + /// + /// 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. + /// + /// Must include the domain qualifier. + /// + public readonly string MatchAttribute; + /// + /// 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. + /// + public readonly ImmutableArray Requests; + + [OutputConstructor] + private DeviceConstraint( + string matchAttribute, + + ImmutableArray requests) + { + MatchAttribute = matchAttribute; + Requests = requests; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceConstraintPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceConstraintPatch.cs new file mode 100644 index 0000000000..85da30543c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceConstraintPatch.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceConstraint must have exactly one field set besides Requests. + /// + [OutputType] + public sealed class DeviceConstraintPatch + { + /// + /// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + /// + /// 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. + /// + /// Must include the domain qualifier. + /// + public readonly string MatchAttribute; + /// + /// 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. + /// + public readonly ImmutableArray Requests; + + [OutputConstructor] + private DeviceConstraintPatch( + string matchAttribute, + + ImmutableArray requests) + { + MatchAttribute = matchAttribute; + Requests = requests; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DevicePatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DevicePatch.cs new file mode 100644 index 0000000000..e44603d096 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DevicePatch.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + /// + [OutputType] + public sealed class DevicePatch + { + /// + /// Basic defines one device instance. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.BasicDevicePatch Basic; + /// + /// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + /// + public readonly string Name; + + [OutputConstructor] + private DevicePatch( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.BasicDevicePatch basic, + + string name) + { + Basic = basic; + Name = name; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequest.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequest.cs new file mode 100644 index 0000000000..b82332aabb --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequest.cs @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + /// 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. + /// + [OutputType] + public sealed class DeviceRequest + { + /// + /// 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. + /// + /// 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. + /// + public readonly bool AdminAccess; + /// + /// AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + /// + /// - ExactCount: This request is for a specific number of devices. + /// This is the default. The exact number is provided in the + /// count field. + /// + /// - All: This request is for all of the matching devices in a pool. + /// Allocation will fail if some devices are already allocated, + /// unless adminAccess is requested. + /// + /// 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. + /// + /// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + /// + public readonly string AllocationMode; + /// + /// 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. + /// + public readonly int Count; + /// + /// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + /// + /// A class is required. Which classes are available depends on the cluster. + /// + /// 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. + /// + public readonly string DeviceClassName; + /// + /// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + /// + /// Must be a DNS label. + /// + public readonly string Name; + /// + /// 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. + /// + public readonly ImmutableArray Selectors; + + [OutputConstructor] + private DeviceRequest( + bool adminAccess, + + string allocationMode, + + int count, + + string deviceClassName, + + string name, + + ImmutableArray selectors) + { + AdminAccess = adminAccess; + AllocationMode = allocationMode; + Count = count; + DeviceClassName = deviceClassName; + Name = name; + Selectors = selectors; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestAllocationResult.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestAllocationResult.cs new file mode 100644 index 0000000000..45873856c2 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestAllocationResult.cs @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceRequestAllocationResult contains the allocation result for one request. + /// + [OutputType] + public sealed class DeviceRequestAllocationResult + { + /// + /// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + /// + /// 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. + /// + public readonly bool AdminAccess; + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + public readonly string Device; + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + public readonly string Driver; + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + public readonly string Pool; + /// + /// 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. + /// + public readonly string Request; + + [OutputConstructor] + private DeviceRequestAllocationResult( + bool adminAccess, + + string device, + + string driver, + + string pool, + + string request) + { + AdminAccess = adminAccess; + Device = device; + Driver = driver; + Pool = pool; + Request = request; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestAllocationResultPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestAllocationResultPatch.cs new file mode 100644 index 0000000000..bc445a83d4 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestAllocationResultPatch.cs @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceRequestAllocationResult contains the allocation result for one request. + /// + [OutputType] + public sealed class DeviceRequestAllocationResultPatch + { + /// + /// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + /// + /// 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. + /// + public readonly bool AdminAccess; + /// + /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + /// + public readonly string Device; + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + public readonly string Driver; + /// + /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + /// + /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + /// + public readonly string Pool; + /// + /// 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. + /// + public readonly string Request; + + [OutputConstructor] + private DeviceRequestAllocationResultPatch( + bool adminAccess, + + string device, + + string driver, + + string pool, + + string request) + { + AdminAccess = adminAccess; + Device = device; + Driver = driver; + Pool = pool; + Request = request; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestPatch.cs new file mode 100644 index 0000000000..f8ca4d1e2e --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceRequestPatch.cs @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + /// 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. + /// + [OutputType] + public sealed class DeviceRequestPatch + { + /// + /// 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. + /// + /// 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. + /// + public readonly bool AdminAccess; + /// + /// AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + /// + /// - ExactCount: This request is for a specific number of devices. + /// This is the default. The exact number is provided in the + /// count field. + /// + /// - All: This request is for all of the matching devices in a pool. + /// Allocation will fail if some devices are already allocated, + /// unless adminAccess is requested. + /// + /// 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. + /// + /// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + /// + public readonly string AllocationMode; + /// + /// 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. + /// + public readonly int Count; + /// + /// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + /// + /// A class is required. Which classes are available depends on the cluster. + /// + /// 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. + /// + public readonly string DeviceClassName; + /// + /// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + /// + /// Must be a DNS label. + /// + public readonly string Name; + /// + /// 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. + /// + public readonly ImmutableArray Selectors; + + [OutputConstructor] + private DeviceRequestPatch( + bool adminAccess, + + string allocationMode, + + int count, + + string deviceClassName, + + string name, + + ImmutableArray selectors) + { + AdminAccess = adminAccess; + AllocationMode = allocationMode; + Count = count; + DeviceClassName = deviceClassName; + Name = name; + Selectors = selectors; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceSelector.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceSelector.cs new file mode 100644 index 0000000000..c403ed3a9a --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceSelector.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceSelector must have exactly one field set. + /// + [OutputType] + public sealed class DeviceSelector + { + /// + /// CEL contains a CEL expression for selecting a device. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.CELDeviceSelector Cel; + + [OutputConstructor] + private DeviceSelector(Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.CELDeviceSelector cel) + { + Cel = cel; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceSelectorPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceSelectorPatch.cs new file mode 100644 index 0000000000..6a471e17b7 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/DeviceSelectorPatch.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// DeviceSelector must have exactly one field set. + /// + [OutputType] + public sealed class DeviceSelectorPatch + { + /// + /// CEL contains a CEL expression for selecting a device. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.CELDeviceSelectorPatch Cel; + + [OutputConstructor] + private DeviceSelectorPatch(Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.CELDeviceSelectorPatch cel) + { + Cel = cel; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/NetworkDeviceData.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/NetworkDeviceData.cs new file mode 100644 index 0000000000..00c5bea19f --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/NetworkDeviceData.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + [OutputType] + public sealed class NetworkDeviceData + { + /// + /// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + /// + /// Must not be longer than 128 characters. + /// + public readonly string HardwareAddress; + /// + /// 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. + /// + /// Must not be longer than 256 characters. + /// + public readonly string InterfaceName; + /// + /// 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. + /// + public readonly ImmutableArray Ips; + + [OutputConstructor] + private NetworkDeviceData( + string hardwareAddress, + + string interfaceName, + + ImmutableArray ips) + { + HardwareAddress = hardwareAddress; + InterfaceName = interfaceName; + Ips = ips; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/NetworkDeviceDataPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/NetworkDeviceDataPatch.cs new file mode 100644 index 0000000000..38c7dc24f4 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/NetworkDeviceDataPatch.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + [OutputType] + public sealed class NetworkDeviceDataPatch + { + /// + /// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + /// + /// Must not be longer than 128 characters. + /// + public readonly string HardwareAddress; + /// + /// 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. + /// + /// Must not be longer than 256 characters. + /// + public readonly string InterfaceName; + /// + /// 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. + /// + public readonly ImmutableArray Ips; + + [OutputConstructor] + private NetworkDeviceDataPatch( + string hardwareAddress, + + string interfaceName, + + ImmutableArray ips) + { + HardwareAddress = hardwareAddress; + InterfaceName = interfaceName; + Ips = ips; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/OpaqueDeviceConfiguration.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/OpaqueDeviceConfiguration.cs new file mode 100644 index 0000000000..1bc5c98e4a --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/OpaqueDeviceConfiguration.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + /// + [OutputType] + public sealed class OpaqueDeviceConfiguration + { + /// + /// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + /// + /// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + public readonly string Driver; + /// + /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + public readonly System.Text.Json.JsonElement Parameters; + + [OutputConstructor] + private OpaqueDeviceConfiguration( + string driver, + + System.Text.Json.JsonElement parameters) + { + Driver = driver; + Parameters = parameters; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/OpaqueDeviceConfigurationPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/OpaqueDeviceConfigurationPatch.cs new file mode 100644 index 0000000000..428bc9e88f --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/OpaqueDeviceConfigurationPatch.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + /// + [OutputType] + public sealed class OpaqueDeviceConfigurationPatch + { + /// + /// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + /// + /// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + /// + public readonly string Driver; + /// + /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + /// + /// The length of the raw data must be smaller or equal to 10 Ki. + /// + public readonly System.Text.Json.JsonElement Parameters; + + [OutputConstructor] + private OpaqueDeviceConfigurationPatch( + string driver, + + System.Text.Json.JsonElement parameters) + { + Driver = driver; + Parameters = parameters; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaim.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaim.cs new file mode 100644 index 0000000000..f29647c43d --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaim.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [OutputType] + public sealed class ResourceClaim + { + /// + /// 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 + /// + public readonly string ApiVersion; + /// + /// 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 + /// + public readonly string Kind; + /// + /// Standard object metadata + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// Spec describes what is being requested and how to configure it. The spec is immutable. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimSpec Spec; + /// + /// Status describes whether the claim is ready to use and what has been allocated. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimStatus Status; + + [OutputConstructor] + private ResourceClaim( + string apiVersion, + + string kind, + + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimSpec spec, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimStatus status) + { + ApiVersion = apiVersion; + Kind = kind; + Metadata = metadata; + Spec = spec; + Status = status; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimConsumerReference.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimConsumerReference.cs new file mode 100644 index 0000000000..0c7100561e --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimConsumerReference.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + [OutputType] + public sealed class ResourceClaimConsumerReference + { + /// + /// 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. + /// + public readonly string ApiGroup; + /// + /// Name is the name of resource being referenced. + /// + public readonly string Name; + /// + /// Resource is the type of resource being referenced, for example "pods". + /// + public readonly string Resource; + /// + /// UID identifies exactly one incarnation of the resource. + /// + public readonly string Uid; + + [OutputConstructor] + private ResourceClaimConsumerReference( + string apiGroup, + + string name, + + string resource, + + string uid) + { + ApiGroup = apiGroup; + Name = name; + Resource = resource; + Uid = uid; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimConsumerReferencePatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimConsumerReferencePatch.cs new file mode 100644 index 0000000000..60f2986ab7 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimConsumerReferencePatch.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + [OutputType] + public sealed class ResourceClaimConsumerReferencePatch + { + /// + /// 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. + /// + public readonly string ApiGroup; + /// + /// Name is the name of resource being referenced. + /// + public readonly string Name; + /// + /// Resource is the type of resource being referenced, for example "pods". + /// + public readonly string Resource; + /// + /// UID identifies exactly one incarnation of the resource. + /// + public readonly string Uid; + + [OutputConstructor] + private ResourceClaimConsumerReferencePatch( + string apiGroup, + + string name, + + string resource, + + string uid) + { + ApiGroup = apiGroup; + Name = name; + Resource = resource; + Uid = uid; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimSpec.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimSpec.cs new file mode 100644 index 0000000000..8c4d570605 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimSpec.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + /// + [OutputType] + public sealed class ResourceClaimSpec + { + /// + /// Devices defines how to request devices. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceClaim Devices; + + [OutputConstructor] + private ResourceClaimSpec(Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceClaim devices) + { + Devices = devices; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimSpecPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimSpecPatch.cs new file mode 100644 index 0000000000..282e24fa7a --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimSpecPatch.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + /// + [OutputType] + public sealed class ResourceClaimSpecPatch + { + /// + /// Devices defines how to request devices. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceClaimPatch Devices; + + [OutputConstructor] + private ResourceClaimSpecPatch(Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.DeviceClaimPatch devices) + { + Devices = devices; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimStatus.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimStatus.cs new file mode 100644 index 0000000000..283d5ca136 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimStatus.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + /// + [OutputType] + public sealed class ResourceClaimStatus + { + /// + /// Allocation is set once the claim has been allocated successfully. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.AllocationResult Allocation; + /// + /// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + /// + public readonly ImmutableArray Devices; + /// + /// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + /// + /// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + /// + /// 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. + /// + /// There can be at most 32 such reservations. This may get increased in the future, but not reduced. + /// + public readonly ImmutableArray ReservedFor; + + [OutputConstructor] + private ResourceClaimStatus( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.AllocationResult allocation, + + ImmutableArray devices, + + ImmutableArray reservedFor) + { + Allocation = allocation; + Devices = devices; + ReservedFor = reservedFor; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimStatusPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimStatusPatch.cs new file mode 100644 index 0000000000..a9a03d507c --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimStatusPatch.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + /// + [OutputType] + public sealed class ResourceClaimStatusPatch + { + /// + /// Allocation is set once the claim has been allocated successfully. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.AllocationResultPatch Allocation; + /// + /// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + /// + public readonly ImmutableArray Devices; + /// + /// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + /// + /// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + /// + /// 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. + /// + /// There can be at most 32 such reservations. This may get increased in the future, but not reduced. + /// + public readonly ImmutableArray ReservedFor; + + [OutputConstructor] + private ResourceClaimStatusPatch( + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.AllocationResultPatch allocation, + + ImmutableArray devices, + + ImmutableArray reservedFor) + { + Allocation = allocation; + Devices = devices; + ReservedFor = reservedFor; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplate.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplate.cs new file mode 100644 index 0000000000..1b2a000ffa --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplate.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimTemplate is used to produce ResourceClaim objects. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [OutputType] + public sealed class ResourceClaimTemplate + { + /// + /// 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 + /// + public readonly string ApiVersion; + /// + /// 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 + /// + public readonly string Kind; + /// + /// Standard object metadata + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// Describes the ResourceClaim that is to be generated. + /// + /// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimTemplateSpec Spec; + + [OutputConstructor] + private ResourceClaimTemplate( + string apiVersion, + + string kind, + + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimTemplateSpec spec) + { + ApiVersion = apiVersion; + Kind = kind; + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplateSpec.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplateSpec.cs new file mode 100644 index 0000000000..937d510dcd --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplateSpec.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + /// + [OutputType] + public sealed class ResourceClaimTemplateSpec + { + /// + /// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimSpec Spec; + + [OutputConstructor] + private ResourceClaimTemplateSpec( + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimSpec spec) + { + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplateSpecPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplateSpecPatch.cs new file mode 100644 index 0000000000..605c6cd411 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceClaimTemplateSpecPatch.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + /// + [OutputType] + public sealed class ResourceClaimTemplateSpecPatch + { + /// + /// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMetaPatch Metadata; + /// + /// Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimSpecPatch Spec; + + [OutputConstructor] + private ResourceClaimTemplateSpecPatch( + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMetaPatch metadata, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceClaimSpecPatch spec) + { + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourcePool.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourcePool.cs new file mode 100644 index 0000000000..2f9997d7d8 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourcePool.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourcePool describes the pool that ResourceSlices belong to. + /// + [OutputType] + public sealed class ResourcePool + { + /// + /// 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. + /// + /// Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + /// + public readonly int Generation; + /// + /// Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + /// + /// 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. + /// + public readonly string Name; + /// + /// ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + /// + /// Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + /// + public readonly int ResourceSliceCount; + + [OutputConstructor] + private ResourcePool( + int generation, + + string name, + + int resourceSliceCount) + { + Generation = generation; + Name = name; + ResourceSliceCount = resourceSliceCount; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourcePoolPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourcePoolPatch.cs new file mode 100644 index 0000000000..3fbab4a655 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourcePoolPatch.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourcePool describes the pool that ResourceSlices belong to. + /// + [OutputType] + public sealed class ResourcePoolPatch + { + /// + /// 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. + /// + /// Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + /// + public readonly int Generation; + /// + /// Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + /// + /// 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. + /// + public readonly string Name; + /// + /// ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + /// + /// Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + /// + public readonly int ResourceSliceCount; + + [OutputConstructor] + private ResourcePoolPatch( + int generation, + + string name, + + int resourceSliceCount) + { + Generation = generation; + Name = name; + ResourceSliceCount = resourceSliceCount; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSlice.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSlice.cs new file mode 100644 index 0000000000..993f315d03 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSlice.cs @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// 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. + /// + /// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. + /// + /// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + /// + /// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + /// + /// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [OutputType] + public sealed class ResourceSlice + { + /// + /// 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 + /// + public readonly string ApiVersion; + /// + /// 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 + /// + public readonly string Kind; + /// + /// Standard object metadata + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta Metadata; + /// + /// Contains the information published by the driver. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceSliceSpec Spec; + + [OutputConstructor] + private ResourceSlice( + string apiVersion, + + string kind, + + Pulumi.Kubernetes.Types.Outputs.Meta.V1.ObjectMeta metadata, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourceSliceSpec spec) + { + ApiVersion = apiVersion; + Kind = kind; + Metadata = metadata; + Spec = spec; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSliceSpec.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSliceSpec.cs new file mode 100644 index 0000000000..cbd4797750 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSliceSpec.cs @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + /// + [OutputType] + public sealed class ResourceSliceSpec + { + /// + /// AllNodes indicates that all nodes have access to the resources in the pool. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. + /// + public readonly bool AllNodes; + /// + /// Devices lists some or all of the devices in this pool. + /// + /// Must not have more than 128 entries. + /// + public readonly ImmutableArray Devices; + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + /// + public readonly string Driver; + /// + /// 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. + /// + /// 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. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + /// + public readonly string NodeName; + /// + /// NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + /// + /// Must use exactly one term. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSelector NodeSelector; + /// + /// Pool describes the pool that this ResourceSlice belongs to. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourcePool Pool; + + [OutputConstructor] + private ResourceSliceSpec( + bool allNodes, + + ImmutableArray devices, + + string driver, + + string nodeName, + + Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSelector nodeSelector, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourcePool pool) + { + AllNodes = allNodes; + Devices = devices; + Driver = driver; + NodeName = nodeName; + NodeSelector = nodeSelector; + Pool = pool; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSliceSpecPatch.cs b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSliceSpecPatch.cs new file mode 100644 index 0000000000..144f3c5792 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/Outputs/ResourceSliceSpecPatch.cs @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1 +{ + + /// + /// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + /// + [OutputType] + public sealed class ResourceSliceSpecPatch + { + /// + /// AllNodes indicates that all nodes have access to the resources in the pool. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. + /// + public readonly bool AllNodes; + /// + /// Devices lists some or all of the devices in this pool. + /// + /// Must not have more than 128 entries. + /// + public readonly ImmutableArray Devices; + /// + /// 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. + /// + /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + /// + public readonly string Driver; + /// + /// 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. + /// + /// 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. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + /// + public readonly string NodeName; + /// + /// NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + /// + /// Must use exactly one term. + /// + /// Exactly one of NodeName, NodeSelector and AllNodes must be set. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSelectorPatch NodeSelector; + /// + /// Pool describes the pool that this ResourceSlice belongs to. + /// + public readonly Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourcePoolPatch Pool; + + [OutputConstructor] + private ResourceSliceSpecPatch( + bool allNodes, + + ImmutableArray devices, + + string driver, + + string nodeName, + + Pulumi.Kubernetes.Types.Outputs.Core.V1.NodeSelectorPatch nodeSelector, + + Pulumi.Kubernetes.Types.Outputs.Resource.V1Beta1.ResourcePoolPatch pool) + { + AllNodes = allNodes; + Devices = devices; + Driver = driver; + NodeName = nodeName; + NodeSelector = nodeSelector; + Pool = pool; + } + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceClaim.cs b/sdk/dotnet/Resource/V1Beta1/ResourceClaim.cs new file mode 100644 index 0000000000..5febd4b681 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceClaim.cs @@ -0,0 +1,145 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceClaim")] + public partial class ResourceClaim : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Spec describes what is being requested and how to configure it. The spec is immutable. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + /// + /// Status describes whether the claim is ready to use and what has been allocated. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + + /// + /// Create a ResourceClaim resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceClaim(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceClaim(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceClaim(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceClaim"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaim" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaim" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceClaim resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceClaim Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceClaim(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceClaimArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Spec describes what is being requested and how to configure it. The spec is immutable. + /// + [Input("spec", required: true)] + public Input Spec { get; set; } = null!; + + public ResourceClaimArgs() + { + } + public static new ResourceClaimArgs Empty => new ResourceClaimArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceClaimList.cs b/sdk/dotnet/Resource/V1Beta1/ResourceClaimList.cs new file mode 100644 index 0000000000..b9d2ff31bb --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceClaimList.cs @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// ResourceClaimList is a collection of claims. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceClaimList")] + public partial class ResourceClaimList : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// Items is the list of resource claims. + /// + [Output("items")] + public Output> Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a ResourceClaimList resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceClaimList(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimList", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceClaimList(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimList", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceClaimList(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimList", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimListArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimListArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimListArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceClaimList"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceClaimList resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceClaimList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceClaimList(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceClaimListArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + [Input("items", required: true)] + private InputList? _items; + + /// + /// Items is the list of resource claims. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + public ResourceClaimListArgs() + { + } + public static new ResourceClaimListArgs Empty => new ResourceClaimListArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceClaimPatch.cs b/sdk/dotnet/Resource/V1Beta1/ResourceClaimPatch.cs new file mode 100644 index 0000000000..e7d808afe0 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceClaimPatch.cs @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// Patch resources are used to modify existing Kubernetes resources by using + /// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + /// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + /// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + /// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch")] + public partial class ResourceClaimPatch : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Spec describes what is being requested and how to configure it. The spec is immutable. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + /// + /// Status describes whether the claim is ready to use and what has been allocated. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + + /// + /// Create a ResourceClaimPatch resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceClaimPatch(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimPatchArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceClaimPatch(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceClaimPatch(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimPatchArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimPatchArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimPatchArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceClaim"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceClaimPatch resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceClaimPatch Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceClaimPatch(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceClaimPatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Spec describes what is being requested and how to configure it. The spec is immutable. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public ResourceClaimPatchArgs() + { + } + public static new ResourceClaimPatchArgs Empty => new ResourceClaimPatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplate.cs b/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplate.cs new file mode 100644 index 0000000000..92d5dc7c66 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplate.cs @@ -0,0 +1,143 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// ResourceClaimTemplate is used to produce ResourceClaim objects. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate")] + public partial class ResourceClaimTemplate : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Describes the ResourceClaim that is to be generated. + /// + /// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a ResourceClaimTemplate resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceClaimTemplate(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplateArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceClaimTemplate(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceClaimTemplate(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplateArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplateArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplateArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceClaimTemplate"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceClaimTemplate resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceClaimTemplate Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceClaimTemplate(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceClaimTemplateArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Describes the ResourceClaim that is to be generated. + /// + /// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + /// + [Input("spec", required: true)] + public Input Spec { get; set; } = null!; + + public ResourceClaimTemplateArgs() + { + } + public static new ResourceClaimTemplateArgs Empty => new ResourceClaimTemplateArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplateList.cs b/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplateList.cs new file mode 100644 index 0000000000..ad0495f89d --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplateList.cs @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// ResourceClaimTemplateList is a collection of claim templates. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList")] + public partial class ResourceClaimTemplateList : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// Items is the list of resource claim templates. + /// + [Output("items")] + public Output> Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a ResourceClaimTemplateList resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceClaimTemplateList(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplateListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceClaimTemplateList(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceClaimTemplateList(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplateListArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplateListArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplateListArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceClaimTemplateList"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceClaimTemplateList resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceClaimTemplateList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceClaimTemplateList(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceClaimTemplateListArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + [Input("items", required: true)] + private InputList? _items; + + /// + /// Items is the list of resource claim templates. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + public ResourceClaimTemplateListArgs() + { + } + public static new ResourceClaimTemplateListArgs Empty => new ResourceClaimTemplateListArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplatePatch.cs b/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplatePatch.cs new file mode 100644 index 0000000000..003a81b19b --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceClaimTemplatePatch.cs @@ -0,0 +1,149 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// Patch resources are used to modify existing Kubernetes resources by using + /// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + /// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + /// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + /// ResourceClaimTemplate is used to produce ResourceClaim objects. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch")] + public partial class ResourceClaimTemplatePatch : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Describes the ResourceClaim that is to be generated. + /// + /// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a ResourceClaimTemplatePatch resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceClaimTemplatePatch(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplatePatchArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceClaimTemplatePatch(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceClaimTemplatePatch(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplatePatchArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplatePatchArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceClaimTemplatePatchArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceClaimTemplate"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceClaimTemplatePatch resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceClaimTemplatePatch Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceClaimTemplatePatch(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceClaimTemplatePatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Describes the ResourceClaim that is to be generated. + /// + /// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public ResourceClaimTemplatePatchArgs() + { + } + public static new ResourceClaimTemplatePatchArgs Empty => new ResourceClaimTemplatePatchArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceSlice.cs b/sdk/dotnet/Resource/V1Beta1/ResourceSlice.cs new file mode 100644 index 0000000000..d240413b8f --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceSlice.cs @@ -0,0 +1,150 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// 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. + /// + /// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. + /// + /// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + /// + /// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + /// + /// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceSlice")] + public partial class ResourceSlice : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Contains the information published by the driver. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a ResourceSlice resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceSlice(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSliceArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceSlice(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceSlice(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSliceArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSliceArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSliceArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceSlice"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceSlice" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceSlice" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceSlice resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceSlice Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceSlice(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceSliceArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Contains the information published by the driver. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + [Input("spec", required: true)] + public Input Spec { get; set; } = null!; + + public ResourceSliceArgs() + { + } + public static new ResourceSliceArgs Empty => new ResourceSliceArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceSliceList.cs b/sdk/dotnet/Resource/V1Beta1/ResourceSliceList.cs new file mode 100644 index 0000000000..1ba636ef51 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceSliceList.cs @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// ResourceSliceList is a collection of ResourceSlices. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceSliceList")] + public partial class ResourceSliceList : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// Items is the list of resource ResourceSlices. + /// + [Output("items")] + public Output> Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a ResourceSliceList resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceSliceList(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSliceListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSliceList", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceSliceList(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSliceList", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceSliceList(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSliceList", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSliceListArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSliceListArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSliceListArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceSliceList"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceSliceList resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceSliceList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceSliceList(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceSliceListArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + [Input("items", required: true)] + private InputList? _items; + + /// + /// Items is the list of resource ResourceSlices. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + public ResourceSliceListArgs() + { + } + public static new ResourceSliceListArgs Empty => new ResourceSliceListArgs(); + } +} diff --git a/sdk/dotnet/Resource/V1Beta1/ResourceSlicePatch.cs b/sdk/dotnet/Resource/V1Beta1/ResourceSlicePatch.cs new file mode 100644 index 0000000000..df0927e5b5 --- /dev/null +++ b/sdk/dotnet/Resource/V1Beta1/ResourceSlicePatch.cs @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Resource.V1Beta1 +{ + /// + /// Patch resources are used to modify existing Kubernetes resources by using + /// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + /// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + /// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + /// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + /// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + /// 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. + /// + /// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. + /// + /// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + /// + /// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + /// + /// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + /// + /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + /// + [KubernetesResourceType("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch")] + public partial class ResourceSlicePatch : KubernetesResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard object metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Contains the information published by the driver. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a ResourceSlicePatch resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResourceSlicePatch(string name, Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSlicePatchArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch", name, MakeArgs(args), MakeResourceOptions(options, "")) + { + } + internal ResourceSlicePatch(string name, ImmutableDictionary dictionary, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch", name, new DictionaryResourceArgs(dictionary), MakeResourceOptions(options, "")) + { + } + + private ResourceSlicePatch(string name, Input id, CustomResourceOptions? options = null) + : base("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch", name, null, MakeResourceOptions(options, id)) + { + } + + private static Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSlicePatchArgs? MakeArgs(Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSlicePatchArgs? args) + { + args ??= new Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1.ResourceSlicePatchArgs(); + args.ApiVersion = "resource.k8s.io/v1beta1"; + args.Kind = "ResourceSlice"; + return args; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + Aliases = + { + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch" }, + new global::Pulumi.Alias { Type = "kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch" }, + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResourceSlicePatch resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static ResourceSlicePatch Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ResourceSlicePatch(name, id, options); + } + } +} +namespace Pulumi.Kubernetes.Types.Inputs.Resource.V1Beta1 +{ + + public class ResourceSlicePatchArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard object metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Contains the information published by the driver. + /// + /// Changing the spec automatically increments the metadata.generation number. + /// + [Input("spec")] + public Input? Spec { get; set; } + + public ResourceSlicePatchArgs() + { + } + public static new ResourceSlicePatchArgs Empty => new ResourceSlicePatchArgs(); + } +} diff --git a/sdk/dotnet/Storage/V1/Inputs/VolumeAttachmentSourceArgs.cs b/sdk/dotnet/Storage/V1/Inputs/VolumeAttachmentSourceArgs.cs index 425dfdbd84..69892c8faa 100644 --- a/sdk/dotnet/Storage/V1/Inputs/VolumeAttachmentSourceArgs.cs +++ b/sdk/dotnet/Storage/V1/Inputs/VolumeAttachmentSourceArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Storage.V1 { /// - /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. /// public class VolumeAttachmentSourceArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Storage/V1/Inputs/VolumeAttachmentSourcePatchArgs.cs b/sdk/dotnet/Storage/V1/Inputs/VolumeAttachmentSourcePatchArgs.cs index eebc596be3..c92e674ba2 100644 --- a/sdk/dotnet/Storage/V1/Inputs/VolumeAttachmentSourcePatchArgs.cs +++ b/sdk/dotnet/Storage/V1/Inputs/VolumeAttachmentSourcePatchArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Inputs.Storage.V1 { /// - /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. /// public class VolumeAttachmentSourcePatchArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Storage/V1/Outputs/VolumeAttachmentSource.cs b/sdk/dotnet/Storage/V1/Outputs/VolumeAttachmentSource.cs index f5b161f790..9724c77729 100644 --- a/sdk/dotnet/Storage/V1/Outputs/VolumeAttachmentSource.cs +++ b/sdk/dotnet/Storage/V1/Outputs/VolumeAttachmentSource.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Storage.V1 { /// - /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. /// [OutputType] public sealed class VolumeAttachmentSource diff --git a/sdk/dotnet/Storage/V1/Outputs/VolumeAttachmentSourcePatch.cs b/sdk/dotnet/Storage/V1/Outputs/VolumeAttachmentSourcePatch.cs index 3b42f60b29..340e184319 100644 --- a/sdk/dotnet/Storage/V1/Outputs/VolumeAttachmentSourcePatch.cs +++ b/sdk/dotnet/Storage/V1/Outputs/VolumeAttachmentSourcePatch.cs @@ -11,7 +11,7 @@ namespace Pulumi.Kubernetes.Types.Outputs.Storage.V1 { /// - /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. /// [OutputType] public sealed class VolumeAttachmentSourcePatch diff --git a/sdk/dotnet/Yaml/Yaml.cs b/sdk/dotnet/Yaml/Yaml.cs index fefafb789d..ebe56c8f7a 100755 --- a/sdk/dotnet/Yaml/Yaml.cs +++ b/sdk/dotnet/Yaml/Yaml.cs @@ -83,6 +83,18 @@ public Output GetResource(string name, string? namespaceName = null) case var t when t == typeof(AdmissionRegistration.V1.ValidatingWebhookConfigurationList): groupVersionKind = "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList"; break; + case var t when t == typeof(AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicy): + groupVersionKind = "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy"; + break; + case var t when t == typeof(AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBinding): + groupVersionKind = "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding"; + break; + case var t when t == typeof(AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBindingList): + groupVersionKind = "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList"; + break; + case var t when t == typeof(AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyList): + groupVersionKind = "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList"; + break; case var t when t == typeof(AdmissionRegistration.V1Alpha1.ValidatingAdmissionPolicy): groupVersionKind = "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy"; break; @@ -305,6 +317,12 @@ public Output GetResource(string name, string? namespaceName = null) case var t when t == typeof(Coordination.V1Alpha1.LeaseCandidateList): groupVersionKind = "coordination.k8s.io/v1alpha1/LeaseCandidateList"; break; + case var t when t == typeof(Coordination.V1Alpha2.LeaseCandidate): + groupVersionKind = "coordination.k8s.io/v1alpha2/LeaseCandidate"; + break; + case var t when t == typeof(Coordination.V1Alpha2.LeaseCandidateList): + groupVersionKind = "coordination.k8s.io/v1alpha2/LeaseCandidateList"; + break; case var t when t == typeof(Coordination.V1Beta1.Lease): groupVersionKind = "coordination.k8s.io/v1beta1/Lease"; break; @@ -788,6 +806,33 @@ public Output GetResource(string name, string? namespaceName = null) case var t when t == typeof(Resource.V1Alpha3.ResourceSlice): groupVersionKind = "resource.k8s.io/v1alpha3/ResourceSlice"; break; + case var t when t == typeof(Resource.V1Alpha3.ResourceSliceList): + groupVersionKind = "resource.k8s.io/v1alpha3/ResourceSliceList"; + break; + case var t when t == typeof(Resource.V1Beta1.DeviceClass): + groupVersionKind = "resource.k8s.io/v1beta1/DeviceClass"; + break; + case var t when t == typeof(Resource.V1Beta1.DeviceClassList): + groupVersionKind = "resource.k8s.io/v1beta1/DeviceClassList"; + break; + case var t when t == typeof(Resource.V1Beta1.ResourceClaim): + groupVersionKind = "resource.k8s.io/v1beta1/ResourceClaim"; + break; + case var t when t == typeof(Resource.V1Beta1.ResourceClaimList): + groupVersionKind = "resource.k8s.io/v1beta1/ResourceClaimList"; + break; + case var t when t == typeof(Resource.V1Beta1.ResourceClaimTemplate): + groupVersionKind = "resource.k8s.io/v1beta1/ResourceClaimTemplate"; + break; + case var t when t == typeof(Resource.V1Beta1.ResourceClaimTemplateList): + groupVersionKind = "resource.k8s.io/v1beta1/ResourceClaimTemplateList"; + break; + case var t when t == typeof(Resource.V1Beta1.ResourceSlice): + groupVersionKind = "resource.k8s.io/v1beta1/ResourceSlice"; + break; + case var t when t == typeof(Resource.V1Beta1.ResourceSliceList): + groupVersionKind = "resource.k8s.io/v1beta1/ResourceSliceList"; + break; case var t when t == typeof(Scheduling.V1.PriorityClass): groupVersionKind = "scheduling.k8s.io/v1/PriorityClass"; break; @@ -1172,6 +1217,8 @@ internal static Output> ParseYam || gvk == "admissionregistration.k8s.io/v1/ValidatingAdmissionPolicyBindingList" || gvk == "admissionregistration.k8s.io/v1/ValidatingAdmissionPolicyList" || gvk == "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList" + || gvk == "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList" + || gvk == "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList" || gvk == "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyBindingList" || gvk == "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyList" || gvk == "admissionregistration.k8s.io/v1beta1/MutatingWebhookConfigurationList" @@ -1209,6 +1256,7 @@ internal static Output> ParseYam || gvk == "certificates.k8s.io/v1beta1/CertificateSigningRequestList" || gvk == "coordination.k8s.io/v1/LeaseList" || gvk == "coordination.k8s.io/v1alpha1/LeaseCandidateList" + || gvk == "coordination.k8s.io/v1alpha2/LeaseCandidateList" || gvk == "coordination.k8s.io/v1beta1/LeaseList" || gvk == "v1/ConfigMapList" || gvk == "v1/EndpointsList" @@ -1288,6 +1336,11 @@ internal static Output> ParseYam || gvk == "resource.k8s.io/v1alpha3/PodSchedulingContextList" || gvk == "resource.k8s.io/v1alpha3/ResourceClaimList" || gvk == "resource.k8s.io/v1alpha3/ResourceClaimTemplateList" + || gvk == "resource.k8s.io/v1alpha3/ResourceSliceList" + || gvk == "resource.k8s.io/v1beta1/DeviceClassList" + || gvk == "resource.k8s.io/v1beta1/ResourceClaimList" + || gvk == "resource.k8s.io/v1beta1/ResourceClaimTemplateList" + || gvk == "resource.k8s.io/v1beta1/ResourceSliceList" || gvk == "scheduling.k8s.io/v1/PriorityClassList" || gvk == "scheduling.k8s.io/v1alpha1/PriorityClassList" || gvk == "scheduling.k8s.io/v1beta1/PriorityClassList" @@ -1369,6 +1422,18 @@ internal static Output> ParseYam id.Apply(id => ($"admissionregistration.k8s.io/v1/ValidatingWebhookConfiguration::{id}", new AdmissionRegistration.V1.ValidatingWebhookConfiguration(id, obj!, opts) as KubernetesResource)) }; + case "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy": + return new[] + { + id.Apply(id => ($"admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy::{id}", + new AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicy(id, obj!, opts) as KubernetesResource)) + }; + case "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding": + return new[] + { + id.Apply(id => ($"admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding::{id}", + new AdmissionRegistration.V1Alpha1.MutatingAdmissionPolicyBinding(id, obj!, opts) as KubernetesResource)) + }; case "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy": return new[] { @@ -1591,6 +1656,12 @@ internal static Output> ParseYam id.Apply(id => ($"coordination.k8s.io/v1alpha1/LeaseCandidate::{id}", new Coordination.V1Alpha1.LeaseCandidate(id, obj!, opts) as KubernetesResource)) }; + case "coordination.k8s.io/v1alpha2/LeaseCandidate": + return new[] + { + id.Apply(id => ($"coordination.k8s.io/v1alpha2/LeaseCandidate::{id}", + new Coordination.V1Alpha2.LeaseCandidate(id, obj!, opts) as KubernetesResource)) + }; case "coordination.k8s.io/v1beta1/Lease": return new[] { @@ -2083,6 +2154,30 @@ internal static Output> ParseYam id.Apply(id => ($"resource.k8s.io/v1alpha3/ResourceSlice::{id}", new Resource.V1Alpha3.ResourceSlice(id, obj!, opts) as KubernetesResource)) }; + case "resource.k8s.io/v1beta1/DeviceClass": + return new[] + { + id.Apply(id => ($"resource.k8s.io/v1beta1/DeviceClass::{id}", + new Resource.V1Beta1.DeviceClass(id, obj!, opts) as KubernetesResource)) + }; + case "resource.k8s.io/v1beta1/ResourceClaim": + return new[] + { + id.Apply(id => ($"resource.k8s.io/v1beta1/ResourceClaim::{id}", + new Resource.V1Beta1.ResourceClaim(id, obj!, opts) as KubernetesResource)) + }; + case "resource.k8s.io/v1beta1/ResourceClaimTemplate": + return new[] + { + id.Apply(id => ($"resource.k8s.io/v1beta1/ResourceClaimTemplate::{id}", + new Resource.V1Beta1.ResourceClaimTemplate(id, obj!, opts) as KubernetesResource)) + }; + case "resource.k8s.io/v1beta1/ResourceSlice": + return new[] + { + id.Apply(id => ($"resource.k8s.io/v1beta1/ResourceSlice::{id}", + new Resource.V1Beta1.ResourceSlice(id, obj!, opts) as KubernetesResource)) + }; case "scheduling.k8s.io/v1/PriorityClass": return new[] { diff --git a/sdk/go/kubernetes/admissionregistration/v1/pulumiTypes.go b/sdk/go/kubernetes/admissionregistration/v1/pulumiTypes.go index 0154039dc7..c315d7c7a7 100644 --- a/sdk/go/kubernetes/admissionregistration/v1/pulumiTypes.go +++ b/sdk/go/kubernetes/admissionregistration/v1/pulumiTypes.go @@ -5138,7 +5138,7 @@ type ValidatingAdmissionPolicyBindingSpec struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5179,7 +5179,7 @@ type ValidatingAdmissionPolicyBindingSpecArgs struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5294,7 +5294,7 @@ func (o ValidatingAdmissionPolicyBindingSpecOutput) PolicyName() pulumi.StringPt // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5371,7 +5371,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPtrOutput) PolicyName() pulumi.Strin // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5407,7 +5407,7 @@ type ValidatingAdmissionPolicyBindingSpecPatch struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5448,7 +5448,7 @@ type ValidatingAdmissionPolicyBindingSpecPatchArgs struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5563,7 +5563,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPatchOutput) PolicyName() pulumi.Str // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5640,7 +5640,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPatchPtrOutput) PolicyName() pulumi. // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/init.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/init.go index 5fb7140487..25c97dd132 100644 --- a/sdk/go/kubernetes/admissionregistration/v1alpha1/init.go +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/init.go @@ -21,6 +21,18 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy": + r = &MutatingAdmissionPolicy{} + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding": + r = &MutatingAdmissionPolicyBinding{} + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList": + r = &MutatingAdmissionPolicyBindingList{} + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch": + r = &MutatingAdmissionPolicyBindingPatch{} + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList": + r = &MutatingAdmissionPolicyList{} + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch": + r = &MutatingAdmissionPolicyPatch{} case "kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicy": r = &ValidatingAdmissionPolicy{} case "kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBinding": diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicy.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicy.go new file mode 100644 index 0000000000..1cad45fae9 --- /dev/null +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicy.go @@ -0,0 +1,247 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicy struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecOutput `pulumi:"spec"` +} + +// NewMutatingAdmissionPolicy registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicy(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicy, error) { + if args == nil { + args = &MutatingAdmissionPolicyArgs{} + } + + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicy") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicy + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicy gets an existing MutatingAdmissionPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicy, error) { + var resource MutatingAdmissionPolicy + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicy resources. +type mutatingAdmissionPolicyState struct { +} + +type MutatingAdmissionPolicyState struct { +} + +func (MutatingAdmissionPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyState)(nil)).Elem() +} + +type mutatingAdmissionPolicyArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec *MutatingAdmissionPolicySpec `pulumi:"spec"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicy resource. +type MutatingAdmissionPolicyArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPtrInput + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPtrInput +} + +func (MutatingAdmissionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyOutput() MutatingAdmissionPolicyOutput + ToMutatingAdmissionPolicyOutputWithContext(ctx context.Context) MutatingAdmissionPolicyOutput +} + +func (*MutatingAdmissionPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicy)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicy) ToMutatingAdmissionPolicyOutput() MutatingAdmissionPolicyOutput { + return i.ToMutatingAdmissionPolicyOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicy) ToMutatingAdmissionPolicyOutputWithContext(ctx context.Context) MutatingAdmissionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyOutput) +} + +// MutatingAdmissionPolicyArrayInput is an input type that accepts MutatingAdmissionPolicyArray and MutatingAdmissionPolicyArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyArrayInput` via: +// +// MutatingAdmissionPolicyArray{ MutatingAdmissionPolicyArgs{...} } +type MutatingAdmissionPolicyArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyArrayOutput() MutatingAdmissionPolicyArrayOutput + ToMutatingAdmissionPolicyArrayOutputWithContext(context.Context) MutatingAdmissionPolicyArrayOutput +} + +type MutatingAdmissionPolicyArray []MutatingAdmissionPolicyInput + +func (MutatingAdmissionPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicy)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyArray) ToMutatingAdmissionPolicyArrayOutput() MutatingAdmissionPolicyArrayOutput { + return i.ToMutatingAdmissionPolicyArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyArray) ToMutatingAdmissionPolicyArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyArrayOutput) +} + +// MutatingAdmissionPolicyMapInput is an input type that accepts MutatingAdmissionPolicyMap and MutatingAdmissionPolicyMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyMapInput` via: +// +// MutatingAdmissionPolicyMap{ "key": MutatingAdmissionPolicyArgs{...} } +type MutatingAdmissionPolicyMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyMapOutput() MutatingAdmissionPolicyMapOutput + ToMutatingAdmissionPolicyMapOutputWithContext(context.Context) MutatingAdmissionPolicyMapOutput +} + +type MutatingAdmissionPolicyMap map[string]MutatingAdmissionPolicyInput + +func (MutatingAdmissionPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicy)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyMap) ToMutatingAdmissionPolicyMapOutput() MutatingAdmissionPolicyMapOutput { + return i.ToMutatingAdmissionPolicyMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyMap) ToMutatingAdmissionPolicyMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyMapOutput) +} + +type MutatingAdmissionPolicyOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicy)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyOutput) ToMutatingAdmissionPolicyOutput() MutatingAdmissionPolicyOutput { + return o +} + +func (o MutatingAdmissionPolicyOutput) ToMutatingAdmissionPolicyOutputWithContext(ctx context.Context) MutatingAdmissionPolicyOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicy) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// 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 +func (o MutatingAdmissionPolicyOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicy) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicy) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicy. +func (o MutatingAdmissionPolicyOutput) Spec() MutatingAdmissionPolicySpecOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicy) MutatingAdmissionPolicySpecOutput { return v.Spec }).(MutatingAdmissionPolicySpecOutput) +} + +type MutatingAdmissionPolicyArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicy)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyArrayOutput) ToMutatingAdmissionPolicyArrayOutput() MutatingAdmissionPolicyArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyArrayOutput) ToMutatingAdmissionPolicyArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicy { + return vs[0].([]*MutatingAdmissionPolicy)[vs[1].(int)] + }).(MutatingAdmissionPolicyOutput) +} + +type MutatingAdmissionPolicyMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicy)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyMapOutput) ToMutatingAdmissionPolicyMapOutput() MutatingAdmissionPolicyMapOutput { + return o +} + +func (o MutatingAdmissionPolicyMapOutput) ToMutatingAdmissionPolicyMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyMapOutput { + return o +} + +func (o MutatingAdmissionPolicyMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicy { + return vs[0].(map[string]*MutatingAdmissionPolicy)[vs[1].(string)] + }).(MutatingAdmissionPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyInput)(nil)).Elem(), &MutatingAdmissionPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyArrayInput)(nil)).Elem(), MutatingAdmissionPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyMapInput)(nil)).Elem(), MutatingAdmissionPolicyMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyMapOutput{}) +} diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.go new file mode 100644 index 0000000000..4bb69a7cf5 --- /dev/null +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBinding struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecOutput `pulumi:"spec"` +} + +// NewMutatingAdmissionPolicyBinding registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyBinding(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyBindingArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBinding, error) { + if args == nil { + args = &MutatingAdmissionPolicyBindingArgs{} + } + + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyBinding") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyBinding + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyBinding gets an existing MutatingAdmissionPolicyBinding resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyBinding(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyBindingState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBinding, error) { + var resource MutatingAdmissionPolicyBinding + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyBinding resources. +type mutatingAdmissionPolicyBindingState struct { +} + +type MutatingAdmissionPolicyBindingState struct { +} + +func (MutatingAdmissionPolicyBindingState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingState)(nil)).Elem() +} + +type mutatingAdmissionPolicyBindingArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec *MutatingAdmissionPolicyBindingSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyBinding resource. +type MutatingAdmissionPolicyBindingArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPtrInput + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPtrInput +} + +func (MutatingAdmissionPolicyBindingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyBindingInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingOutput() MutatingAdmissionPolicyBindingOutput + ToMutatingAdmissionPolicyBindingOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingOutput +} + +func (*MutatingAdmissionPolicyBinding) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyBinding) ToMutatingAdmissionPolicyBindingOutput() MutatingAdmissionPolicyBindingOutput { + return i.ToMutatingAdmissionPolicyBindingOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyBinding) ToMutatingAdmissionPolicyBindingOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingOutput) +} + +// MutatingAdmissionPolicyBindingArrayInput is an input type that accepts MutatingAdmissionPolicyBindingArray and MutatingAdmissionPolicyBindingArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingArrayInput` via: +// +// MutatingAdmissionPolicyBindingArray{ MutatingAdmissionPolicyBindingArgs{...} } +type MutatingAdmissionPolicyBindingArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingArrayOutput() MutatingAdmissionPolicyBindingArrayOutput + ToMutatingAdmissionPolicyBindingArrayOutputWithContext(context.Context) MutatingAdmissionPolicyBindingArrayOutput +} + +type MutatingAdmissionPolicyBindingArray []MutatingAdmissionPolicyBindingInput + +func (MutatingAdmissionPolicyBindingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingArray) ToMutatingAdmissionPolicyBindingArrayOutput() MutatingAdmissionPolicyBindingArrayOutput { + return i.ToMutatingAdmissionPolicyBindingArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingArray) ToMutatingAdmissionPolicyBindingArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingArrayOutput) +} + +// MutatingAdmissionPolicyBindingMapInput is an input type that accepts MutatingAdmissionPolicyBindingMap and MutatingAdmissionPolicyBindingMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingMapInput` via: +// +// MutatingAdmissionPolicyBindingMap{ "key": MutatingAdmissionPolicyBindingArgs{...} } +type MutatingAdmissionPolicyBindingMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingMapOutput() MutatingAdmissionPolicyBindingMapOutput + ToMutatingAdmissionPolicyBindingMapOutputWithContext(context.Context) MutatingAdmissionPolicyBindingMapOutput +} + +type MutatingAdmissionPolicyBindingMap map[string]MutatingAdmissionPolicyBindingInput + +func (MutatingAdmissionPolicyBindingMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingMap) ToMutatingAdmissionPolicyBindingMapOutput() MutatingAdmissionPolicyBindingMapOutput { + return i.ToMutatingAdmissionPolicyBindingMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingMap) ToMutatingAdmissionPolicyBindingMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingMapOutput) +} + +type MutatingAdmissionPolicyBindingOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingOutput) ToMutatingAdmissionPolicyBindingOutput() MutatingAdmissionPolicyBindingOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingOutput) ToMutatingAdmissionPolicyBindingOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyBindingOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBinding) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// 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 +func (o MutatingAdmissionPolicyBindingOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBinding) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyBindingOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBinding) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. +func (o MutatingAdmissionPolicyBindingOutput) Spec() MutatingAdmissionPolicyBindingSpecOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBinding) MutatingAdmissionPolicyBindingSpecOutput { return v.Spec }).(MutatingAdmissionPolicyBindingSpecOutput) +} + +type MutatingAdmissionPolicyBindingArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingArrayOutput) ToMutatingAdmissionPolicyBindingArrayOutput() MutatingAdmissionPolicyBindingArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingArrayOutput) ToMutatingAdmissionPolicyBindingArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyBindingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBinding { + return vs[0].([]*MutatingAdmissionPolicyBinding)[vs[1].(int)] + }).(MutatingAdmissionPolicyBindingOutput) +} + +type MutatingAdmissionPolicyBindingMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingMapOutput) ToMutatingAdmissionPolicyBindingMapOutput() MutatingAdmissionPolicyBindingMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingMapOutput) ToMutatingAdmissionPolicyBindingMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyBindingOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBinding { + return vs[0].(map[string]*MutatingAdmissionPolicyBinding)[vs[1].(string)] + }).(MutatingAdmissionPolicyBindingOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingInput)(nil)).Elem(), &MutatingAdmissionPolicyBinding{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingArrayInput)(nil)).Elem(), MutatingAdmissionPolicyBindingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingMapInput)(nil)).Elem(), MutatingAdmissionPolicyBindingMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingMapOutput{}) +} diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.go new file mode 100644 index 0000000000..bdfc5812eb --- /dev/null +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.go @@ -0,0 +1,253 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingList struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // List of PolicyBinding. + Items MutatingAdmissionPolicyBindingTypeArrayOutput `pulumi:"items"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewMutatingAdmissionPolicyBindingList registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyBindingList(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyBindingListArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBindingList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyBindingList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyBindingList + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyBindingList gets an existing MutatingAdmissionPolicyBindingList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyBindingList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyBindingListState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBindingList, error) { + var resource MutatingAdmissionPolicyBindingList + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyBindingList resources. +type mutatingAdmissionPolicyBindingListState struct { +} + +type MutatingAdmissionPolicyBindingListState struct { +} + +func (MutatingAdmissionPolicyBindingListState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingListState)(nil)).Elem() +} + +type mutatingAdmissionPolicyBindingListArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // List of PolicyBinding. + Items []MutatingAdmissionPolicyBindingType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyBindingList resource. +type MutatingAdmissionPolicyBindingListArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // List of PolicyBinding. + Items MutatingAdmissionPolicyBindingTypeArrayInput + // 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 + Kind pulumi.StringPtrInput + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaPtrInput +} + +func (MutatingAdmissionPolicyBindingListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingListArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyBindingListInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingListOutput() MutatingAdmissionPolicyBindingListOutput + ToMutatingAdmissionPolicyBindingListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListOutput +} + +func (*MutatingAdmissionPolicyBindingList) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyBindingList) ToMutatingAdmissionPolicyBindingListOutput() MutatingAdmissionPolicyBindingListOutput { + return i.ToMutatingAdmissionPolicyBindingListOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyBindingList) ToMutatingAdmissionPolicyBindingListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingListOutput) +} + +// MutatingAdmissionPolicyBindingListArrayInput is an input type that accepts MutatingAdmissionPolicyBindingListArray and MutatingAdmissionPolicyBindingListArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingListArrayInput` via: +// +// MutatingAdmissionPolicyBindingListArray{ MutatingAdmissionPolicyBindingListArgs{...} } +type MutatingAdmissionPolicyBindingListArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingListArrayOutput() MutatingAdmissionPolicyBindingListArrayOutput + ToMutatingAdmissionPolicyBindingListArrayOutputWithContext(context.Context) MutatingAdmissionPolicyBindingListArrayOutput +} + +type MutatingAdmissionPolicyBindingListArray []MutatingAdmissionPolicyBindingListInput + +func (MutatingAdmissionPolicyBindingListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingListArray) ToMutatingAdmissionPolicyBindingListArrayOutput() MutatingAdmissionPolicyBindingListArrayOutput { + return i.ToMutatingAdmissionPolicyBindingListArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingListArray) ToMutatingAdmissionPolicyBindingListArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingListArrayOutput) +} + +// MutatingAdmissionPolicyBindingListMapInput is an input type that accepts MutatingAdmissionPolicyBindingListMap and MutatingAdmissionPolicyBindingListMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingListMapInput` via: +// +// MutatingAdmissionPolicyBindingListMap{ "key": MutatingAdmissionPolicyBindingListArgs{...} } +type MutatingAdmissionPolicyBindingListMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingListMapOutput() MutatingAdmissionPolicyBindingListMapOutput + ToMutatingAdmissionPolicyBindingListMapOutputWithContext(context.Context) MutatingAdmissionPolicyBindingListMapOutput +} + +type MutatingAdmissionPolicyBindingListMap map[string]MutatingAdmissionPolicyBindingListInput + +func (MutatingAdmissionPolicyBindingListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingListMap) ToMutatingAdmissionPolicyBindingListMapOutput() MutatingAdmissionPolicyBindingListMapOutput { + return i.ToMutatingAdmissionPolicyBindingListMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingListMap) ToMutatingAdmissionPolicyBindingListMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingListMapOutput) +} + +type MutatingAdmissionPolicyBindingListOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingListOutput) ToMutatingAdmissionPolicyBindingListOutput() MutatingAdmissionPolicyBindingListOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListOutput) ToMutatingAdmissionPolicyBindingListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyBindingListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// List of PolicyBinding. +func (o MutatingAdmissionPolicyBindingListOutput) Items() MutatingAdmissionPolicyBindingTypeArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingList) MutatingAdmissionPolicyBindingTypeArrayOutput { + return v.Items + }).(MutatingAdmissionPolicyBindingTypeArrayOutput) +} + +// 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 +func (o MutatingAdmissionPolicyBindingListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type MutatingAdmissionPolicyBindingListArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingListArrayOutput) ToMutatingAdmissionPolicyBindingListArrayOutput() MutatingAdmissionPolicyBindingListArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListArrayOutput) ToMutatingAdmissionPolicyBindingListArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyBindingListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBindingList { + return vs[0].([]*MutatingAdmissionPolicyBindingList)[vs[1].(int)] + }).(MutatingAdmissionPolicyBindingListOutput) +} + +type MutatingAdmissionPolicyBindingListMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingListMapOutput) ToMutatingAdmissionPolicyBindingListMapOutput() MutatingAdmissionPolicyBindingListMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListMapOutput) ToMutatingAdmissionPolicyBindingListMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyBindingListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBindingList { + return vs[0].(map[string]*MutatingAdmissionPolicyBindingList)[vs[1].(string)] + }).(MutatingAdmissionPolicyBindingListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingListInput)(nil)).Elem(), &MutatingAdmissionPolicyBindingList{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingListArrayInput)(nil)).Elem(), MutatingAdmissionPolicyBindingListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingListMapInput)(nil)).Elem(), MutatingAdmissionPolicyBindingListMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingListOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingListArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingListMapOutput{}) +} diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.go new file mode 100644 index 0000000000..053bf06390 --- /dev/null +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.go @@ -0,0 +1,259 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingPatch struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPatchPtrOutput `pulumi:"spec"` +} + +// NewMutatingAdmissionPolicyBindingPatch registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyBindingPatch(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyBindingPatchArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBindingPatch, error) { + if args == nil { + args = &MutatingAdmissionPolicyBindingPatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyBinding") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyBindingPatch + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyBindingPatch gets an existing MutatingAdmissionPolicyBindingPatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyBindingPatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyBindingPatchState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBindingPatch, error) { + var resource MutatingAdmissionPolicyBindingPatch + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyBindingPatch resources. +type mutatingAdmissionPolicyBindingPatchState struct { +} + +type MutatingAdmissionPolicyBindingPatchState struct { +} + +func (MutatingAdmissionPolicyBindingPatchState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingPatchState)(nil)).Elem() +} + +type mutatingAdmissionPolicyBindingPatchArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec *MutatingAdmissionPolicyBindingSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyBindingPatch resource. +type MutatingAdmissionPolicyBindingPatchArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrInput + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPatchPtrInput +} + +func (MutatingAdmissionPolicyBindingPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingPatchArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyBindingPatchInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingPatchOutput() MutatingAdmissionPolicyBindingPatchOutput + ToMutatingAdmissionPolicyBindingPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchOutput +} + +func (*MutatingAdmissionPolicyBindingPatch) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyBindingPatch) ToMutatingAdmissionPolicyBindingPatchOutput() MutatingAdmissionPolicyBindingPatchOutput { + return i.ToMutatingAdmissionPolicyBindingPatchOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyBindingPatch) ToMutatingAdmissionPolicyBindingPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingPatchOutput) +} + +// MutatingAdmissionPolicyBindingPatchArrayInput is an input type that accepts MutatingAdmissionPolicyBindingPatchArray and MutatingAdmissionPolicyBindingPatchArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingPatchArrayInput` via: +// +// MutatingAdmissionPolicyBindingPatchArray{ MutatingAdmissionPolicyBindingPatchArgs{...} } +type MutatingAdmissionPolicyBindingPatchArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingPatchArrayOutput() MutatingAdmissionPolicyBindingPatchArrayOutput + ToMutatingAdmissionPolicyBindingPatchArrayOutputWithContext(context.Context) MutatingAdmissionPolicyBindingPatchArrayOutput +} + +type MutatingAdmissionPolicyBindingPatchArray []MutatingAdmissionPolicyBindingPatchInput + +func (MutatingAdmissionPolicyBindingPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingPatchArray) ToMutatingAdmissionPolicyBindingPatchArrayOutput() MutatingAdmissionPolicyBindingPatchArrayOutput { + return i.ToMutatingAdmissionPolicyBindingPatchArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingPatchArray) ToMutatingAdmissionPolicyBindingPatchArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingPatchArrayOutput) +} + +// MutatingAdmissionPolicyBindingPatchMapInput is an input type that accepts MutatingAdmissionPolicyBindingPatchMap and MutatingAdmissionPolicyBindingPatchMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingPatchMapInput` via: +// +// MutatingAdmissionPolicyBindingPatchMap{ "key": MutatingAdmissionPolicyBindingPatchArgs{...} } +type MutatingAdmissionPolicyBindingPatchMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingPatchMapOutput() MutatingAdmissionPolicyBindingPatchMapOutput + ToMutatingAdmissionPolicyBindingPatchMapOutputWithContext(context.Context) MutatingAdmissionPolicyBindingPatchMapOutput +} + +type MutatingAdmissionPolicyBindingPatchMap map[string]MutatingAdmissionPolicyBindingPatchInput + +func (MutatingAdmissionPolicyBindingPatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingPatchMap) ToMutatingAdmissionPolicyBindingPatchMapOutput() MutatingAdmissionPolicyBindingPatchMapOutput { + return i.ToMutatingAdmissionPolicyBindingPatchMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingPatchMap) ToMutatingAdmissionPolicyBindingPatchMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingPatchMapOutput) +} + +type MutatingAdmissionPolicyBindingPatchOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingPatchOutput) ToMutatingAdmissionPolicyBindingPatchOutput() MutatingAdmissionPolicyBindingPatchOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchOutput) ToMutatingAdmissionPolicyBindingPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyBindingPatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingPatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o MutatingAdmissionPolicyBindingPatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingPatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyBindingPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. +func (o MutatingAdmissionPolicyBindingPatchOutput) Spec() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingPatch) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return v.Spec + }).(MutatingAdmissionPolicyBindingSpecPatchPtrOutput) +} + +type MutatingAdmissionPolicyBindingPatchArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingPatchArrayOutput) ToMutatingAdmissionPolicyBindingPatchArrayOutput() MutatingAdmissionPolicyBindingPatchArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchArrayOutput) ToMutatingAdmissionPolicyBindingPatchArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyBindingPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBindingPatch { + return vs[0].([]*MutatingAdmissionPolicyBindingPatch)[vs[1].(int)] + }).(MutatingAdmissionPolicyBindingPatchOutput) +} + +type MutatingAdmissionPolicyBindingPatchMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingPatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingPatchMapOutput) ToMutatingAdmissionPolicyBindingPatchMapOutput() MutatingAdmissionPolicyBindingPatchMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchMapOutput) ToMutatingAdmissionPolicyBindingPatchMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyBindingPatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBindingPatch { + return vs[0].(map[string]*MutatingAdmissionPolicyBindingPatch)[vs[1].(string)] + }).(MutatingAdmissionPolicyBindingPatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchInput)(nil)).Elem(), &MutatingAdmissionPolicyBindingPatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchArrayInput)(nil)).Elem(), MutatingAdmissionPolicyBindingPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchMapInput)(nil)).Elem(), MutatingAdmissionPolicyBindingPatchMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingPatchOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingPatchArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingPatchMapOutput{}) +} diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyList.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyList.go new file mode 100644 index 0000000000..9ed25d9ee9 --- /dev/null +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. +type MutatingAdmissionPolicyList struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // List of ValidatingAdmissionPolicy. + Items MutatingAdmissionPolicyTypeArrayOutput `pulumi:"items"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewMutatingAdmissionPolicyList registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyList(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyListArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyList + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyList gets an existing MutatingAdmissionPolicyList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyListState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyList, error) { + var resource MutatingAdmissionPolicyList + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyList resources. +type mutatingAdmissionPolicyListState struct { +} + +type MutatingAdmissionPolicyListState struct { +} + +func (MutatingAdmissionPolicyListState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyListState)(nil)).Elem() +} + +type mutatingAdmissionPolicyListArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // List of ValidatingAdmissionPolicy. + Items []MutatingAdmissionPolicyType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyList resource. +type MutatingAdmissionPolicyListArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // List of ValidatingAdmissionPolicy. + Items MutatingAdmissionPolicyTypeArrayInput + // 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 + Kind pulumi.StringPtrInput + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaPtrInput +} + +func (MutatingAdmissionPolicyListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyListArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyListInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyListOutput() MutatingAdmissionPolicyListOutput + ToMutatingAdmissionPolicyListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListOutput +} + +func (*MutatingAdmissionPolicyList) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyList) ToMutatingAdmissionPolicyListOutput() MutatingAdmissionPolicyListOutput { + return i.ToMutatingAdmissionPolicyListOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyList) ToMutatingAdmissionPolicyListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyListOutput) +} + +// MutatingAdmissionPolicyListArrayInput is an input type that accepts MutatingAdmissionPolicyListArray and MutatingAdmissionPolicyListArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyListArrayInput` via: +// +// MutatingAdmissionPolicyListArray{ MutatingAdmissionPolicyListArgs{...} } +type MutatingAdmissionPolicyListArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyListArrayOutput() MutatingAdmissionPolicyListArrayOutput + ToMutatingAdmissionPolicyListArrayOutputWithContext(context.Context) MutatingAdmissionPolicyListArrayOutput +} + +type MutatingAdmissionPolicyListArray []MutatingAdmissionPolicyListInput + +func (MutatingAdmissionPolicyListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyListArray) ToMutatingAdmissionPolicyListArrayOutput() MutatingAdmissionPolicyListArrayOutput { + return i.ToMutatingAdmissionPolicyListArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyListArray) ToMutatingAdmissionPolicyListArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyListArrayOutput) +} + +// MutatingAdmissionPolicyListMapInput is an input type that accepts MutatingAdmissionPolicyListMap and MutatingAdmissionPolicyListMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyListMapInput` via: +// +// MutatingAdmissionPolicyListMap{ "key": MutatingAdmissionPolicyListArgs{...} } +type MutatingAdmissionPolicyListMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyListMapOutput() MutatingAdmissionPolicyListMapOutput + ToMutatingAdmissionPolicyListMapOutputWithContext(context.Context) MutatingAdmissionPolicyListMapOutput +} + +type MutatingAdmissionPolicyListMap map[string]MutatingAdmissionPolicyListInput + +func (MutatingAdmissionPolicyListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyListMap) ToMutatingAdmissionPolicyListMapOutput() MutatingAdmissionPolicyListMapOutput { + return i.ToMutatingAdmissionPolicyListMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyListMap) ToMutatingAdmissionPolicyListMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyListMapOutput) +} + +type MutatingAdmissionPolicyListOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyListOutput) ToMutatingAdmissionPolicyListOutput() MutatingAdmissionPolicyListOutput { + return o +} + +func (o MutatingAdmissionPolicyListOutput) ToMutatingAdmissionPolicyListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// List of ValidatingAdmissionPolicy. +func (o MutatingAdmissionPolicyListOutput) Items() MutatingAdmissionPolicyTypeArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyList) MutatingAdmissionPolicyTypeArrayOutput { return v.Items }).(MutatingAdmissionPolicyTypeArrayOutput) +} + +// 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 +func (o MutatingAdmissionPolicyListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type MutatingAdmissionPolicyListArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyListArrayOutput) ToMutatingAdmissionPolicyListArrayOutput() MutatingAdmissionPolicyListArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyListArrayOutput) ToMutatingAdmissionPolicyListArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyListArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyList { + return vs[0].([]*MutatingAdmissionPolicyList)[vs[1].(int)] + }).(MutatingAdmissionPolicyListOutput) +} + +type MutatingAdmissionPolicyListMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyListMapOutput) ToMutatingAdmissionPolicyListMapOutput() MutatingAdmissionPolicyListMapOutput { + return o +} + +func (o MutatingAdmissionPolicyListMapOutput) ToMutatingAdmissionPolicyListMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListMapOutput { + return o +} + +func (o MutatingAdmissionPolicyListMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyList { + return vs[0].(map[string]*MutatingAdmissionPolicyList)[vs[1].(string)] + }).(MutatingAdmissionPolicyListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyListInput)(nil)).Elem(), &MutatingAdmissionPolicyList{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyListArrayInput)(nil)).Elem(), MutatingAdmissionPolicyListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyListMapInput)(nil)).Elem(), MutatingAdmissionPolicyListMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyListOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyListArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyListMapOutput{}) +} diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.go new file mode 100644 index 0000000000..9fce46e889 --- /dev/null +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.go @@ -0,0 +1,253 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyPatch struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPatchPtrOutput `pulumi:"spec"` +} + +// NewMutatingAdmissionPolicyPatch registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyPatch(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyPatchArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyPatch, error) { + if args == nil { + args = &MutatingAdmissionPolicyPatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicy") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyPatch + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyPatch gets an existing MutatingAdmissionPolicyPatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyPatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyPatchState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyPatch, error) { + var resource MutatingAdmissionPolicyPatch + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyPatch resources. +type mutatingAdmissionPolicyPatchState struct { +} + +type MutatingAdmissionPolicyPatchState struct { +} + +func (MutatingAdmissionPolicyPatchState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyPatchState)(nil)).Elem() +} + +type mutatingAdmissionPolicyPatchArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec *MutatingAdmissionPolicySpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyPatch resource. +type MutatingAdmissionPolicyPatchArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrInput + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPatchPtrInput +} + +func (MutatingAdmissionPolicyPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyPatchArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyPatchInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyPatchOutput() MutatingAdmissionPolicyPatchOutput + ToMutatingAdmissionPolicyPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchOutput +} + +func (*MutatingAdmissionPolicyPatch) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyPatch) ToMutatingAdmissionPolicyPatchOutput() MutatingAdmissionPolicyPatchOutput { + return i.ToMutatingAdmissionPolicyPatchOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyPatch) ToMutatingAdmissionPolicyPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyPatchOutput) +} + +// MutatingAdmissionPolicyPatchArrayInput is an input type that accepts MutatingAdmissionPolicyPatchArray and MutatingAdmissionPolicyPatchArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyPatchArrayInput` via: +// +// MutatingAdmissionPolicyPatchArray{ MutatingAdmissionPolicyPatchArgs{...} } +type MutatingAdmissionPolicyPatchArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyPatchArrayOutput() MutatingAdmissionPolicyPatchArrayOutput + ToMutatingAdmissionPolicyPatchArrayOutputWithContext(context.Context) MutatingAdmissionPolicyPatchArrayOutput +} + +type MutatingAdmissionPolicyPatchArray []MutatingAdmissionPolicyPatchInput + +func (MutatingAdmissionPolicyPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyPatchArray) ToMutatingAdmissionPolicyPatchArrayOutput() MutatingAdmissionPolicyPatchArrayOutput { + return i.ToMutatingAdmissionPolicyPatchArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyPatchArray) ToMutatingAdmissionPolicyPatchArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyPatchArrayOutput) +} + +// MutatingAdmissionPolicyPatchMapInput is an input type that accepts MutatingAdmissionPolicyPatchMap and MutatingAdmissionPolicyPatchMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyPatchMapInput` via: +// +// MutatingAdmissionPolicyPatchMap{ "key": MutatingAdmissionPolicyPatchArgs{...} } +type MutatingAdmissionPolicyPatchMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyPatchMapOutput() MutatingAdmissionPolicyPatchMapOutput + ToMutatingAdmissionPolicyPatchMapOutputWithContext(context.Context) MutatingAdmissionPolicyPatchMapOutput +} + +type MutatingAdmissionPolicyPatchMap map[string]MutatingAdmissionPolicyPatchInput + +func (MutatingAdmissionPolicyPatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyPatchMap) ToMutatingAdmissionPolicyPatchMapOutput() MutatingAdmissionPolicyPatchMapOutput { + return i.ToMutatingAdmissionPolicyPatchMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyPatchMap) ToMutatingAdmissionPolicyPatchMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyPatchMapOutput) +} + +type MutatingAdmissionPolicyPatchOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyPatchOutput) ToMutatingAdmissionPolicyPatchOutput() MutatingAdmissionPolicyPatchOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchOutput) ToMutatingAdmissionPolicyPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyPatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyPatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o MutatingAdmissionPolicyPatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyPatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicy. +func (o MutatingAdmissionPolicyPatchOutput) Spec() MutatingAdmissionPolicySpecPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyPatch) MutatingAdmissionPolicySpecPatchPtrOutput { return v.Spec }).(MutatingAdmissionPolicySpecPatchPtrOutput) +} + +type MutatingAdmissionPolicyPatchArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyPatchArrayOutput) ToMutatingAdmissionPolicyPatchArrayOutput() MutatingAdmissionPolicyPatchArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchArrayOutput) ToMutatingAdmissionPolicyPatchArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyPatch { + return vs[0].([]*MutatingAdmissionPolicyPatch)[vs[1].(int)] + }).(MutatingAdmissionPolicyPatchOutput) +} + +type MutatingAdmissionPolicyPatchMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyPatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyPatchMapOutput) ToMutatingAdmissionPolicyPatchMapOutput() MutatingAdmissionPolicyPatchMapOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchMapOutput) ToMutatingAdmissionPolicyPatchMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchMapOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyPatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyPatch { + return vs[0].(map[string]*MutatingAdmissionPolicyPatch)[vs[1].(string)] + }).(MutatingAdmissionPolicyPatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyPatchInput)(nil)).Elem(), &MutatingAdmissionPolicyPatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyPatchArrayInput)(nil)).Elem(), MutatingAdmissionPolicyPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyPatchMapInput)(nil)).Elem(), MutatingAdmissionPolicyPatchMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyPatchOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyPatchArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyPatchMapOutput{}) +} diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/pulumiTypes.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/pulumiTypes.go index 5ac7600e5a..41f50659b6 100644 --- a/sdk/go/kubernetes/admissionregistration/v1alpha1/pulumiTypes.go +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/pulumiTypes.go @@ -14,1500 +14,4576 @@ import ( var _ = utilities.GetEnvOrDefault -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotation struct { - // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfiguration struct { + // expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // - // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // - // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // Object{ + // spec: Object.spec{ + // serviceAccountName: "example" + // } + // } // - // Required. - Key string `pulumi:"key"` - // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // - // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // CEL expressions have access to the object types needed to create apply configurations: // - // Required. - ValueExpression string `pulumi:"valueExpression"` + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression *string `pulumi:"expression"` } -// AuditAnnotationInput is an input type that accepts AuditAnnotationArgs and AuditAnnotationOutput values. -// You can construct a concrete instance of `AuditAnnotationInput` via: +// ApplyConfigurationInput is an input type that accepts ApplyConfigurationArgs and ApplyConfigurationOutput values. +// You can construct a concrete instance of `ApplyConfigurationInput` via: // -// AuditAnnotationArgs{...} -type AuditAnnotationInput interface { +// ApplyConfigurationArgs{...} +type ApplyConfigurationInput interface { pulumi.Input - ToAuditAnnotationOutput() AuditAnnotationOutput - ToAuditAnnotationOutputWithContext(context.Context) AuditAnnotationOutput + ToApplyConfigurationOutput() ApplyConfigurationOutput + ToApplyConfigurationOutputWithContext(context.Context) ApplyConfigurationOutput } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationArgs struct { - // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationArgs struct { + // expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // - // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // - // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // Object{ + // spec: Object.spec{ + // serviceAccountName: "example" + // } + // } // - // Required. - Key pulumi.StringInput `pulumi:"key"` - // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // - // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // CEL expressions have access to the object types needed to create apply configurations: // - // Required. - ValueExpression pulumi.StringInput `pulumi:"valueExpression"` + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` } -func (AuditAnnotationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AuditAnnotation)(nil)).Elem() +func (ApplyConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplyConfiguration)(nil)).Elem() } -func (i AuditAnnotationArgs) ToAuditAnnotationOutput() AuditAnnotationOutput { - return i.ToAuditAnnotationOutputWithContext(context.Background()) +func (i ApplyConfigurationArgs) ToApplyConfigurationOutput() ApplyConfigurationOutput { + return i.ToApplyConfigurationOutputWithContext(context.Background()) } -func (i AuditAnnotationArgs) ToAuditAnnotationOutputWithContext(ctx context.Context) AuditAnnotationOutput { - return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationOutput) +func (i ApplyConfigurationArgs) ToApplyConfigurationOutputWithContext(ctx context.Context) ApplyConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationOutput) } -// AuditAnnotationArrayInput is an input type that accepts AuditAnnotationArray and AuditAnnotationArrayOutput values. -// You can construct a concrete instance of `AuditAnnotationArrayInput` via: +func (i ApplyConfigurationArgs) ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput { + return i.ToApplyConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ApplyConfigurationArgs) ToApplyConfigurationPtrOutputWithContext(ctx context.Context) ApplyConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationOutput).ToApplyConfigurationPtrOutputWithContext(ctx) +} + +// ApplyConfigurationPtrInput is an input type that accepts ApplyConfigurationArgs, ApplyConfigurationPtr and ApplyConfigurationPtrOutput values. +// You can construct a concrete instance of `ApplyConfigurationPtrInput` via: // -// AuditAnnotationArray{ AuditAnnotationArgs{...} } -type AuditAnnotationArrayInput interface { +// ApplyConfigurationArgs{...} +// +// or: +// +// nil +type ApplyConfigurationPtrInput interface { pulumi.Input - ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput - ToAuditAnnotationArrayOutputWithContext(context.Context) AuditAnnotationArrayOutput + ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput + ToApplyConfigurationPtrOutputWithContext(context.Context) ApplyConfigurationPtrOutput } -type AuditAnnotationArray []AuditAnnotationInput +type applyConfigurationPtrType ApplyConfigurationArgs -func (AuditAnnotationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]AuditAnnotation)(nil)).Elem() +func ApplyConfigurationPtr(v *ApplyConfigurationArgs) ApplyConfigurationPtrInput { + return (*applyConfigurationPtrType)(v) } -func (i AuditAnnotationArray) ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput { - return i.ToAuditAnnotationArrayOutputWithContext(context.Background()) +func (*applyConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplyConfiguration)(nil)).Elem() } -func (i AuditAnnotationArray) ToAuditAnnotationArrayOutputWithContext(ctx context.Context) AuditAnnotationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationArrayOutput) +func (i *applyConfigurationPtrType) ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput { + return i.ToApplyConfigurationPtrOutputWithContext(context.Background()) } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationOutput struct{ *pulumi.OutputState } +func (i *applyConfigurationPtrType) ToApplyConfigurationPtrOutputWithContext(ctx context.Context) ApplyConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationPtrOutput) +} -func (AuditAnnotationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AuditAnnotation)(nil)).Elem() +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationOutput struct{ *pulumi.OutputState } + +func (ApplyConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplyConfiguration)(nil)).Elem() } -func (o AuditAnnotationOutput) ToAuditAnnotationOutput() AuditAnnotationOutput { +func (o ApplyConfigurationOutput) ToApplyConfigurationOutput() ApplyConfigurationOutput { return o } -func (o AuditAnnotationOutput) ToAuditAnnotationOutputWithContext(ctx context.Context) AuditAnnotationOutput { +func (o ApplyConfigurationOutput) ToApplyConfigurationOutputWithContext(ctx context.Context) ApplyConfigurationOutput { return o } -// key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +func (o ApplyConfigurationOutput) ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput { + return o.ToApplyConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ApplyConfigurationOutput) ToApplyConfigurationPtrOutputWithContext(ctx context.Context) ApplyConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplyConfiguration) *ApplyConfiguration { + return &v + }).(ApplyConfigurationPtrOutput) +} + +// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // -// The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". +// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // -// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. +// Object{ +// spec: Object.spec{ +// serviceAccountName: "example" +// } +// } // -// Required. -func (o AuditAnnotationOutput) Key() pulumi.StringOutput { - return o.ApplyT(func(v AuditAnnotation) string { return v.Key }).(pulumi.StringOutput) -} - -// valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. +// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // -// If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. +// CEL expressions have access to the object types needed to create apply configurations: // -// Required. -func (o AuditAnnotationOutput) ValueExpression() pulumi.StringOutput { - return o.ApplyT(func(v AuditAnnotation) string { return v.ValueExpression }).(pulumi.StringOutput) +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o ApplyConfigurationOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplyConfiguration) *string { return v.Expression }).(pulumi.StringPtrOutput) } -type AuditAnnotationArrayOutput struct{ *pulumi.OutputState } +type ApplyConfigurationPtrOutput struct{ *pulumi.OutputState } -func (AuditAnnotationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AuditAnnotation)(nil)).Elem() +func (ApplyConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplyConfiguration)(nil)).Elem() } -func (o AuditAnnotationArrayOutput) ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput { +func (o ApplyConfigurationPtrOutput) ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput { return o } -func (o AuditAnnotationArrayOutput) ToAuditAnnotationArrayOutputWithContext(ctx context.Context) AuditAnnotationArrayOutput { +func (o ApplyConfigurationPtrOutput) ToApplyConfigurationPtrOutputWithContext(ctx context.Context) ApplyConfigurationPtrOutput { return o } -func (o AuditAnnotationArrayOutput) Index(i pulumi.IntInput) AuditAnnotationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditAnnotation { - return vs[0].([]AuditAnnotation)[vs[1].(int)] - }).(AuditAnnotationOutput) +func (o ApplyConfigurationPtrOutput) Elem() ApplyConfigurationOutput { + return o.ApplyT(func(v *ApplyConfiguration) ApplyConfiguration { + if v != nil { + return *v + } + var ret ApplyConfiguration + return ret + }).(ApplyConfigurationOutput) } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationPatch struct { - // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec +// +// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: +// +// Object{ +// spec: Object.spec{ +// serviceAccountName: "example" +// } +// } +// +// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. +// +// CEL expressions have access to the object types needed to create apply configurations: +// +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o ApplyConfigurationPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplyConfiguration) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) +} + +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationPatch struct { + // expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // - // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // - // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // Object{ + // spec: Object.spec{ + // serviceAccountName: "example" + // } + // } // - // Required. - Key *string `pulumi:"key"` - // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // - // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // CEL expressions have access to the object types needed to create apply configurations: // - // Required. - ValueExpression *string `pulumi:"valueExpression"` + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression *string `pulumi:"expression"` } -// AuditAnnotationPatchInput is an input type that accepts AuditAnnotationPatchArgs and AuditAnnotationPatchOutput values. -// You can construct a concrete instance of `AuditAnnotationPatchInput` via: +// ApplyConfigurationPatchInput is an input type that accepts ApplyConfigurationPatchArgs and ApplyConfigurationPatchOutput values. +// You can construct a concrete instance of `ApplyConfigurationPatchInput` via: // -// AuditAnnotationPatchArgs{...} -type AuditAnnotationPatchInput interface { +// ApplyConfigurationPatchArgs{...} +type ApplyConfigurationPatchInput interface { pulumi.Input - ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput - ToAuditAnnotationPatchOutputWithContext(context.Context) AuditAnnotationPatchOutput + ToApplyConfigurationPatchOutput() ApplyConfigurationPatchOutput + ToApplyConfigurationPatchOutputWithContext(context.Context) ApplyConfigurationPatchOutput } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationPatchArgs struct { - // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationPatchArgs struct { + // expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // - // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // - // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // Object{ + // spec: Object.spec{ + // serviceAccountName: "example" + // } + // } // - // Required. - Key pulumi.StringPtrInput `pulumi:"key"` - // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // - // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // CEL expressions have access to the object types needed to create apply configurations: // - // Required. - ValueExpression pulumi.StringPtrInput `pulumi:"valueExpression"` + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` } -func (AuditAnnotationPatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AuditAnnotationPatch)(nil)).Elem() +func (ApplyConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplyConfigurationPatch)(nil)).Elem() } -func (i AuditAnnotationPatchArgs) ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput { - return i.ToAuditAnnotationPatchOutputWithContext(context.Background()) +func (i ApplyConfigurationPatchArgs) ToApplyConfigurationPatchOutput() ApplyConfigurationPatchOutput { + return i.ToApplyConfigurationPatchOutputWithContext(context.Background()) } -func (i AuditAnnotationPatchArgs) ToAuditAnnotationPatchOutputWithContext(ctx context.Context) AuditAnnotationPatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationPatchOutput) +func (i ApplyConfigurationPatchArgs) ToApplyConfigurationPatchOutputWithContext(ctx context.Context) ApplyConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationPatchOutput) } -// AuditAnnotationPatchArrayInput is an input type that accepts AuditAnnotationPatchArray and AuditAnnotationPatchArrayOutput values. -// You can construct a concrete instance of `AuditAnnotationPatchArrayInput` via: +func (i ApplyConfigurationPatchArgs) ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput { + return i.ToApplyConfigurationPatchPtrOutputWithContext(context.Background()) +} + +func (i ApplyConfigurationPatchArgs) ToApplyConfigurationPatchPtrOutputWithContext(ctx context.Context) ApplyConfigurationPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationPatchOutput).ToApplyConfigurationPatchPtrOutputWithContext(ctx) +} + +// ApplyConfigurationPatchPtrInput is an input type that accepts ApplyConfigurationPatchArgs, ApplyConfigurationPatchPtr and ApplyConfigurationPatchPtrOutput values. +// You can construct a concrete instance of `ApplyConfigurationPatchPtrInput` via: // -// AuditAnnotationPatchArray{ AuditAnnotationPatchArgs{...} } -type AuditAnnotationPatchArrayInput interface { +// ApplyConfigurationPatchArgs{...} +// +// or: +// +// nil +type ApplyConfigurationPatchPtrInput interface { pulumi.Input - ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput - ToAuditAnnotationPatchArrayOutputWithContext(context.Context) AuditAnnotationPatchArrayOutput + ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput + ToApplyConfigurationPatchPtrOutputWithContext(context.Context) ApplyConfigurationPatchPtrOutput } -type AuditAnnotationPatchArray []AuditAnnotationPatchInput +type applyConfigurationPatchPtrType ApplyConfigurationPatchArgs -func (AuditAnnotationPatchArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]AuditAnnotationPatch)(nil)).Elem() +func ApplyConfigurationPatchPtr(v *ApplyConfigurationPatchArgs) ApplyConfigurationPatchPtrInput { + return (*applyConfigurationPatchPtrType)(v) } -func (i AuditAnnotationPatchArray) ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput { - return i.ToAuditAnnotationPatchArrayOutputWithContext(context.Background()) +func (*applyConfigurationPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplyConfigurationPatch)(nil)).Elem() } -func (i AuditAnnotationPatchArray) ToAuditAnnotationPatchArrayOutputWithContext(ctx context.Context) AuditAnnotationPatchArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationPatchArrayOutput) +func (i *applyConfigurationPatchPtrType) ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput { + return i.ToApplyConfigurationPatchPtrOutputWithContext(context.Background()) } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationPatchOutput struct{ *pulumi.OutputState } +func (i *applyConfigurationPatchPtrType) ToApplyConfigurationPatchPtrOutputWithContext(ctx context.Context) ApplyConfigurationPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationPatchPtrOutput) +} -func (AuditAnnotationPatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AuditAnnotationPatch)(nil)).Elem() +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (ApplyConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplyConfigurationPatch)(nil)).Elem() } -func (o AuditAnnotationPatchOutput) ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput { +func (o ApplyConfigurationPatchOutput) ToApplyConfigurationPatchOutput() ApplyConfigurationPatchOutput { return o } -func (o AuditAnnotationPatchOutput) ToAuditAnnotationPatchOutputWithContext(ctx context.Context) AuditAnnotationPatchOutput { +func (o ApplyConfigurationPatchOutput) ToApplyConfigurationPatchOutputWithContext(ctx context.Context) ApplyConfigurationPatchOutput { return o } -// key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +func (o ApplyConfigurationPatchOutput) ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput { + return o.ToApplyConfigurationPatchPtrOutputWithContext(context.Background()) +} + +func (o ApplyConfigurationPatchOutput) ToApplyConfigurationPatchPtrOutputWithContext(ctx context.Context) ApplyConfigurationPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplyConfigurationPatch) *ApplyConfigurationPatch { + return &v + }).(ApplyConfigurationPatchPtrOutput) +} + +// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // -// The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". +// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // -// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. +// Object{ +// spec: Object.spec{ +// serviceAccountName: "example" +// } +// } // -// Required. -func (o AuditAnnotationPatchOutput) Key() pulumi.StringPtrOutput { - return o.ApplyT(func(v AuditAnnotationPatch) *string { return v.Key }).(pulumi.StringPtrOutput) -} - -// valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. +// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // -// If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. +// CEL expressions have access to the object types needed to create apply configurations: // -// Required. -func (o AuditAnnotationPatchOutput) ValueExpression() pulumi.StringPtrOutput { - return o.ApplyT(func(v AuditAnnotationPatch) *string { return v.ValueExpression }).(pulumi.StringPtrOutput) +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o ApplyConfigurationPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplyConfigurationPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) } -type AuditAnnotationPatchArrayOutput struct{ *pulumi.OutputState } +type ApplyConfigurationPatchPtrOutput struct{ *pulumi.OutputState } -func (AuditAnnotationPatchArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AuditAnnotationPatch)(nil)).Elem() +func (ApplyConfigurationPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplyConfigurationPatch)(nil)).Elem() } -func (o AuditAnnotationPatchArrayOutput) ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput { +func (o ApplyConfigurationPatchPtrOutput) ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput { return o } -func (o AuditAnnotationPatchArrayOutput) ToAuditAnnotationPatchArrayOutputWithContext(ctx context.Context) AuditAnnotationPatchArrayOutput { +func (o ApplyConfigurationPatchPtrOutput) ToApplyConfigurationPatchPtrOutputWithContext(ctx context.Context) ApplyConfigurationPatchPtrOutput { return o } -func (o AuditAnnotationPatchArrayOutput) Index(i pulumi.IntInput) AuditAnnotationPatchOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditAnnotationPatch { - return vs[0].([]AuditAnnotationPatch)[vs[1].(int)] - }).(AuditAnnotationPatchOutput) +func (o ApplyConfigurationPatchPtrOutput) Elem() ApplyConfigurationPatchOutput { + return o.ApplyT(func(v *ApplyConfigurationPatch) ApplyConfigurationPatch { + if v != nil { + return *v + } + var ret ApplyConfigurationPatch + return ret + }).(ApplyConfigurationPatchOutput) } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarning struct { - // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" - FieldRef string `pulumi:"fieldRef"` - // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. - Warning string `pulumi:"warning"` +// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec +// +// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: +// +// Object{ +// spec: Object.spec{ +// serviceAccountName: "example" +// } +// } +// +// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. +// +// CEL expressions have access to the object types needed to create apply configurations: +// +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o ApplyConfigurationPatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplyConfigurationPatch) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) } -// ExpressionWarningInput is an input type that accepts ExpressionWarningArgs and ExpressionWarningOutput values. -// You can construct a concrete instance of `ExpressionWarningInput` via: +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotation struct { + // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + // + // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // + // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // + // Required. + Key string `pulumi:"key"` + // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // + // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // + // Required. + ValueExpression string `pulumi:"valueExpression"` +} + +// AuditAnnotationInput is an input type that accepts AuditAnnotationArgs and AuditAnnotationOutput values. +// You can construct a concrete instance of `AuditAnnotationInput` via: // -// ExpressionWarningArgs{...} -type ExpressionWarningInput interface { +// AuditAnnotationArgs{...} +type AuditAnnotationInput interface { pulumi.Input - ToExpressionWarningOutput() ExpressionWarningOutput - ToExpressionWarningOutputWithContext(context.Context) ExpressionWarningOutput + ToAuditAnnotationOutput() AuditAnnotationOutput + ToAuditAnnotationOutputWithContext(context.Context) AuditAnnotationOutput } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningArgs struct { - // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" - FieldRef pulumi.StringInput `pulumi:"fieldRef"` - // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. - Warning pulumi.StringInput `pulumi:"warning"` +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationArgs struct { + // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + // + // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // + // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // + // Required. + Key pulumi.StringInput `pulumi:"key"` + // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // + // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // + // Required. + ValueExpression pulumi.StringInput `pulumi:"valueExpression"` } -func (ExpressionWarningArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ExpressionWarning)(nil)).Elem() +func (AuditAnnotationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AuditAnnotation)(nil)).Elem() } -func (i ExpressionWarningArgs) ToExpressionWarningOutput() ExpressionWarningOutput { - return i.ToExpressionWarningOutputWithContext(context.Background()) +func (i AuditAnnotationArgs) ToAuditAnnotationOutput() AuditAnnotationOutput { + return i.ToAuditAnnotationOutputWithContext(context.Background()) } -func (i ExpressionWarningArgs) ToExpressionWarningOutputWithContext(ctx context.Context) ExpressionWarningOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningOutput) +func (i AuditAnnotationArgs) ToAuditAnnotationOutputWithContext(ctx context.Context) AuditAnnotationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationOutput) } -// ExpressionWarningArrayInput is an input type that accepts ExpressionWarningArray and ExpressionWarningArrayOutput values. -// You can construct a concrete instance of `ExpressionWarningArrayInput` via: +// AuditAnnotationArrayInput is an input type that accepts AuditAnnotationArray and AuditAnnotationArrayOutput values. +// You can construct a concrete instance of `AuditAnnotationArrayInput` via: // -// ExpressionWarningArray{ ExpressionWarningArgs{...} } -type ExpressionWarningArrayInput interface { +// AuditAnnotationArray{ AuditAnnotationArgs{...} } +type AuditAnnotationArrayInput interface { pulumi.Input - ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput - ToExpressionWarningArrayOutputWithContext(context.Context) ExpressionWarningArrayOutput + ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput + ToAuditAnnotationArrayOutputWithContext(context.Context) AuditAnnotationArrayOutput } -type ExpressionWarningArray []ExpressionWarningInput +type AuditAnnotationArray []AuditAnnotationInput -func (ExpressionWarningArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ExpressionWarning)(nil)).Elem() +func (AuditAnnotationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AuditAnnotation)(nil)).Elem() } -func (i ExpressionWarningArray) ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput { - return i.ToExpressionWarningArrayOutputWithContext(context.Background()) +func (i AuditAnnotationArray) ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput { + return i.ToAuditAnnotationArrayOutputWithContext(context.Background()) } -func (i ExpressionWarningArray) ToExpressionWarningArrayOutputWithContext(ctx context.Context) ExpressionWarningArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningArrayOutput) +func (i AuditAnnotationArray) ToAuditAnnotationArrayOutputWithContext(ctx context.Context) AuditAnnotationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationArrayOutput) } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningOutput struct{ *pulumi.OutputState } +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationOutput struct{ *pulumi.OutputState } -func (ExpressionWarningOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ExpressionWarning)(nil)).Elem() +func (AuditAnnotationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AuditAnnotation)(nil)).Elem() } -func (o ExpressionWarningOutput) ToExpressionWarningOutput() ExpressionWarningOutput { +func (o AuditAnnotationOutput) ToAuditAnnotationOutput() AuditAnnotationOutput { return o } -func (o ExpressionWarningOutput) ToExpressionWarningOutputWithContext(ctx context.Context) ExpressionWarningOutput { +func (o AuditAnnotationOutput) ToAuditAnnotationOutputWithContext(ctx context.Context) AuditAnnotationOutput { return o } -// The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" -func (o ExpressionWarningOutput) FieldRef() pulumi.StringOutput { - return o.ApplyT(func(v ExpressionWarning) string { return v.FieldRef }).(pulumi.StringOutput) +// key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// +// The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". +// +// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. +// +// Required. +func (o AuditAnnotationOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v AuditAnnotation) string { return v.Key }).(pulumi.StringOutput) } -// The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. -func (o ExpressionWarningOutput) Warning() pulumi.StringOutput { - return o.ApplyT(func(v ExpressionWarning) string { return v.Warning }).(pulumi.StringOutput) +// valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. +// +// If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. +// +// Required. +func (o AuditAnnotationOutput) ValueExpression() pulumi.StringOutput { + return o.ApplyT(func(v AuditAnnotation) string { return v.ValueExpression }).(pulumi.StringOutput) } -type ExpressionWarningArrayOutput struct{ *pulumi.OutputState } +type AuditAnnotationArrayOutput struct{ *pulumi.OutputState } -func (ExpressionWarningArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ExpressionWarning)(nil)).Elem() +func (AuditAnnotationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AuditAnnotation)(nil)).Elem() } -func (o ExpressionWarningArrayOutput) ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput { +func (o AuditAnnotationArrayOutput) ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput { return o } -func (o ExpressionWarningArrayOutput) ToExpressionWarningArrayOutputWithContext(ctx context.Context) ExpressionWarningArrayOutput { +func (o AuditAnnotationArrayOutput) ToAuditAnnotationArrayOutputWithContext(ctx context.Context) AuditAnnotationArrayOutput { return o } -func (o ExpressionWarningArrayOutput) Index(i pulumi.IntInput) ExpressionWarningOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressionWarning { - return vs[0].([]ExpressionWarning)[vs[1].(int)] - }).(ExpressionWarningOutput) +func (o AuditAnnotationArrayOutput) Index(i pulumi.IntInput) AuditAnnotationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditAnnotation { + return vs[0].([]AuditAnnotation)[vs[1].(int)] + }).(AuditAnnotationOutput) } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningPatch struct { - // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" - FieldRef *string `pulumi:"fieldRef"` - // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. - Warning *string `pulumi:"warning"` +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationPatch struct { + // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + // + // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // + // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // + // Required. + Key *string `pulumi:"key"` + // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // + // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // + // Required. + ValueExpression *string `pulumi:"valueExpression"` } -// ExpressionWarningPatchInput is an input type that accepts ExpressionWarningPatchArgs and ExpressionWarningPatchOutput values. -// You can construct a concrete instance of `ExpressionWarningPatchInput` via: +// AuditAnnotationPatchInput is an input type that accepts AuditAnnotationPatchArgs and AuditAnnotationPatchOutput values. +// You can construct a concrete instance of `AuditAnnotationPatchInput` via: // -// ExpressionWarningPatchArgs{...} -type ExpressionWarningPatchInput interface { +// AuditAnnotationPatchArgs{...} +type AuditAnnotationPatchInput interface { pulumi.Input - ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput - ToExpressionWarningPatchOutputWithContext(context.Context) ExpressionWarningPatchOutput + ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput + ToAuditAnnotationPatchOutputWithContext(context.Context) AuditAnnotationPatchOutput } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningPatchArgs struct { - // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" - FieldRef pulumi.StringPtrInput `pulumi:"fieldRef"` - // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. - Warning pulumi.StringPtrInput `pulumi:"warning"` +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationPatchArgs struct { + // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + // + // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // + // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // + // Required. + Key pulumi.StringPtrInput `pulumi:"key"` + // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // + // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // + // Required. + ValueExpression pulumi.StringPtrInput `pulumi:"valueExpression"` } -func (ExpressionWarningPatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ExpressionWarningPatch)(nil)).Elem() +func (AuditAnnotationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AuditAnnotationPatch)(nil)).Elem() } -func (i ExpressionWarningPatchArgs) ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput { - return i.ToExpressionWarningPatchOutputWithContext(context.Background()) +func (i AuditAnnotationPatchArgs) ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput { + return i.ToAuditAnnotationPatchOutputWithContext(context.Background()) } -func (i ExpressionWarningPatchArgs) ToExpressionWarningPatchOutputWithContext(ctx context.Context) ExpressionWarningPatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningPatchOutput) +func (i AuditAnnotationPatchArgs) ToAuditAnnotationPatchOutputWithContext(ctx context.Context) AuditAnnotationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationPatchOutput) } -// ExpressionWarningPatchArrayInput is an input type that accepts ExpressionWarningPatchArray and ExpressionWarningPatchArrayOutput values. -// You can construct a concrete instance of `ExpressionWarningPatchArrayInput` via: +// AuditAnnotationPatchArrayInput is an input type that accepts AuditAnnotationPatchArray and AuditAnnotationPatchArrayOutput values. +// You can construct a concrete instance of `AuditAnnotationPatchArrayInput` via: // -// ExpressionWarningPatchArray{ ExpressionWarningPatchArgs{...} } -type ExpressionWarningPatchArrayInput interface { +// AuditAnnotationPatchArray{ AuditAnnotationPatchArgs{...} } +type AuditAnnotationPatchArrayInput interface { pulumi.Input - ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput - ToExpressionWarningPatchArrayOutputWithContext(context.Context) ExpressionWarningPatchArrayOutput + ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput + ToAuditAnnotationPatchArrayOutputWithContext(context.Context) AuditAnnotationPatchArrayOutput } -type ExpressionWarningPatchArray []ExpressionWarningPatchInput +type AuditAnnotationPatchArray []AuditAnnotationPatchInput -func (ExpressionWarningPatchArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ExpressionWarningPatch)(nil)).Elem() +func (AuditAnnotationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AuditAnnotationPatch)(nil)).Elem() } -func (i ExpressionWarningPatchArray) ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput { - return i.ToExpressionWarningPatchArrayOutputWithContext(context.Background()) +func (i AuditAnnotationPatchArray) ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput { + return i.ToAuditAnnotationPatchArrayOutputWithContext(context.Background()) } -func (i ExpressionWarningPatchArray) ToExpressionWarningPatchArrayOutputWithContext(ctx context.Context) ExpressionWarningPatchArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningPatchArrayOutput) +func (i AuditAnnotationPatchArray) ToAuditAnnotationPatchArrayOutputWithContext(ctx context.Context) AuditAnnotationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationPatchArrayOutput) } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningPatchOutput struct{ *pulumi.OutputState } +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationPatchOutput struct{ *pulumi.OutputState } -func (ExpressionWarningPatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ExpressionWarningPatch)(nil)).Elem() +func (AuditAnnotationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AuditAnnotationPatch)(nil)).Elem() } -func (o ExpressionWarningPatchOutput) ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput { +func (o AuditAnnotationPatchOutput) ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput { return o } -func (o ExpressionWarningPatchOutput) ToExpressionWarningPatchOutputWithContext(ctx context.Context) ExpressionWarningPatchOutput { +func (o AuditAnnotationPatchOutput) ToAuditAnnotationPatchOutputWithContext(ctx context.Context) AuditAnnotationPatchOutput { return o } -// The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" -func (o ExpressionWarningPatchOutput) FieldRef() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExpressionWarningPatch) *string { return v.FieldRef }).(pulumi.StringPtrOutput) +// key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// +// The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". +// +// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. +// +// Required. +func (o AuditAnnotationPatchOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v AuditAnnotationPatch) *string { return v.Key }).(pulumi.StringPtrOutput) } -// The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. -func (o ExpressionWarningPatchOutput) Warning() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExpressionWarningPatch) *string { return v.Warning }).(pulumi.StringPtrOutput) +// valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. +// +// If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. +// +// Required. +func (o AuditAnnotationPatchOutput) ValueExpression() pulumi.StringPtrOutput { + return o.ApplyT(func(v AuditAnnotationPatch) *string { return v.ValueExpression }).(pulumi.StringPtrOutput) } -type ExpressionWarningPatchArrayOutput struct{ *pulumi.OutputState } +type AuditAnnotationPatchArrayOutput struct{ *pulumi.OutputState } -func (ExpressionWarningPatchArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ExpressionWarningPatch)(nil)).Elem() +func (AuditAnnotationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AuditAnnotationPatch)(nil)).Elem() } -func (o ExpressionWarningPatchArrayOutput) ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput { +func (o AuditAnnotationPatchArrayOutput) ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput { return o } -func (o ExpressionWarningPatchArrayOutput) ToExpressionWarningPatchArrayOutputWithContext(ctx context.Context) ExpressionWarningPatchArrayOutput { +func (o AuditAnnotationPatchArrayOutput) ToAuditAnnotationPatchArrayOutputWithContext(ctx context.Context) AuditAnnotationPatchArrayOutput { return o } -func (o ExpressionWarningPatchArrayOutput) Index(i pulumi.IntInput) ExpressionWarningPatchOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressionWarningPatch { - return vs[0].([]ExpressionWarningPatch)[vs[1].(int)] - }).(ExpressionWarningPatchOutput) +func (o AuditAnnotationPatchArrayOutput) Index(i pulumi.IntInput) AuditAnnotationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditAnnotationPatch { + return vs[0].([]AuditAnnotationPatch)[vs[1].(int)] + }).(AuditAnnotationPatchOutput) } -type MatchCondition struct { - // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: - // - // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. - // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - // - // Required. - Expression string `pulumi:"expression"` - // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - // - // Required. - Name string `pulumi:"name"` +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarning struct { + // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" + FieldRef string `pulumi:"fieldRef"` + // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. + Warning string `pulumi:"warning"` } -// MatchConditionInput is an input type that accepts MatchConditionArgs and MatchConditionOutput values. -// You can construct a concrete instance of `MatchConditionInput` via: +// ExpressionWarningInput is an input type that accepts ExpressionWarningArgs and ExpressionWarningOutput values. +// You can construct a concrete instance of `ExpressionWarningInput` via: // -// MatchConditionArgs{...} -type MatchConditionInput interface { +// ExpressionWarningArgs{...} +type ExpressionWarningInput interface { pulumi.Input - ToMatchConditionOutput() MatchConditionOutput - ToMatchConditionOutputWithContext(context.Context) MatchConditionOutput + ToExpressionWarningOutput() ExpressionWarningOutput + ToExpressionWarningOutputWithContext(context.Context) ExpressionWarningOutput } -type MatchConditionArgs struct { - // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: - // - // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. - // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - // - // Required. - Expression pulumi.StringInput `pulumi:"expression"` - // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - // - // Required. - Name pulumi.StringInput `pulumi:"name"` +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningArgs struct { + // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" + FieldRef pulumi.StringInput `pulumi:"fieldRef"` + // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. + Warning pulumi.StringInput `pulumi:"warning"` } -func (MatchConditionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MatchCondition)(nil)).Elem() +func (ExpressionWarningArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressionWarning)(nil)).Elem() } -func (i MatchConditionArgs) ToMatchConditionOutput() MatchConditionOutput { - return i.ToMatchConditionOutputWithContext(context.Background()) +func (i ExpressionWarningArgs) ToExpressionWarningOutput() ExpressionWarningOutput { + return i.ToExpressionWarningOutputWithContext(context.Background()) } -func (i MatchConditionArgs) ToMatchConditionOutputWithContext(ctx context.Context) MatchConditionOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchConditionOutput) +func (i ExpressionWarningArgs) ToExpressionWarningOutputWithContext(ctx context.Context) ExpressionWarningOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningOutput) } -// MatchConditionArrayInput is an input type that accepts MatchConditionArray and MatchConditionArrayOutput values. -// You can construct a concrete instance of `MatchConditionArrayInput` via: +// ExpressionWarningArrayInput is an input type that accepts ExpressionWarningArray and ExpressionWarningArrayOutput values. +// You can construct a concrete instance of `ExpressionWarningArrayInput` via: // -// MatchConditionArray{ MatchConditionArgs{...} } -type MatchConditionArrayInput interface { +// ExpressionWarningArray{ ExpressionWarningArgs{...} } +type ExpressionWarningArrayInput interface { pulumi.Input - ToMatchConditionArrayOutput() MatchConditionArrayOutput - ToMatchConditionArrayOutputWithContext(context.Context) MatchConditionArrayOutput + ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput + ToExpressionWarningArrayOutputWithContext(context.Context) ExpressionWarningArrayOutput } -type MatchConditionArray []MatchConditionInput +type ExpressionWarningArray []ExpressionWarningInput -func (MatchConditionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]MatchCondition)(nil)).Elem() +func (ExpressionWarningArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressionWarning)(nil)).Elem() } -func (i MatchConditionArray) ToMatchConditionArrayOutput() MatchConditionArrayOutput { - return i.ToMatchConditionArrayOutputWithContext(context.Background()) +func (i ExpressionWarningArray) ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput { + return i.ToExpressionWarningArrayOutputWithContext(context.Background()) } -func (i MatchConditionArray) ToMatchConditionArrayOutputWithContext(ctx context.Context) MatchConditionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchConditionArrayOutput) +func (i ExpressionWarningArray) ToExpressionWarningArrayOutputWithContext(ctx context.Context) ExpressionWarningArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningArrayOutput) } -type MatchConditionOutput struct{ *pulumi.OutputState } +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningOutput struct{ *pulumi.OutputState } -func (MatchConditionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MatchCondition)(nil)).Elem() +func (ExpressionWarningOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressionWarning)(nil)).Elem() } -func (o MatchConditionOutput) ToMatchConditionOutput() MatchConditionOutput { +func (o ExpressionWarningOutput) ToExpressionWarningOutput() ExpressionWarningOutput { return o } -func (o MatchConditionOutput) ToMatchConditionOutputWithContext(ctx context.Context) MatchConditionOutput { +func (o ExpressionWarningOutput) ToExpressionWarningOutputWithContext(ctx context.Context) ExpressionWarningOutput { return o } -// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: -// -// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. -// -// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz -// -// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the -// -// request resource. -// -// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ -// -// Required. -func (o MatchConditionOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v MatchCondition) string { return v.Expression }).(pulumi.StringOutput) +// The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" +func (o ExpressionWarningOutput) FieldRef() pulumi.StringOutput { + return o.ApplyT(func(v ExpressionWarning) string { return v.FieldRef }).(pulumi.StringOutput) } -// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') -// -// Required. -func (o MatchConditionOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v MatchCondition) string { return v.Name }).(pulumi.StringOutput) +// The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. +func (o ExpressionWarningOutput) Warning() pulumi.StringOutput { + return o.ApplyT(func(v ExpressionWarning) string { return v.Warning }).(pulumi.StringOutput) } -type MatchConditionArrayOutput struct{ *pulumi.OutputState } +type ExpressionWarningArrayOutput struct{ *pulumi.OutputState } -func (MatchConditionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]MatchCondition)(nil)).Elem() +func (ExpressionWarningArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressionWarning)(nil)).Elem() } -func (o MatchConditionArrayOutput) ToMatchConditionArrayOutput() MatchConditionArrayOutput { +func (o ExpressionWarningArrayOutput) ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput { return o } -func (o MatchConditionArrayOutput) ToMatchConditionArrayOutputWithContext(ctx context.Context) MatchConditionArrayOutput { +func (o ExpressionWarningArrayOutput) ToExpressionWarningArrayOutputWithContext(ctx context.Context) ExpressionWarningArrayOutput { return o } -func (o MatchConditionArrayOutput) Index(i pulumi.IntInput) MatchConditionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) MatchCondition { - return vs[0].([]MatchCondition)[vs[1].(int)] - }).(MatchConditionOutput) -} - -type MatchConditionPatch struct { - // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: - // - // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. - // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - // - // Required. - Expression *string `pulumi:"expression"` - // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - // - // Required. - Name *string `pulumi:"name"` +func (o ExpressionWarningArrayOutput) Index(i pulumi.IntInput) ExpressionWarningOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressionWarning { + return vs[0].([]ExpressionWarning)[vs[1].(int)] + }).(ExpressionWarningOutput) } -// MatchConditionPatchInput is an input type that accepts MatchConditionPatchArgs and MatchConditionPatchOutput values. -// You can construct a concrete instance of `MatchConditionPatchInput` via: +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningPatch struct { + // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" + FieldRef *string `pulumi:"fieldRef"` + // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. + Warning *string `pulumi:"warning"` +} + +// ExpressionWarningPatchInput is an input type that accepts ExpressionWarningPatchArgs and ExpressionWarningPatchOutput values. +// You can construct a concrete instance of `ExpressionWarningPatchInput` via: // -// MatchConditionPatchArgs{...} -type MatchConditionPatchInput interface { +// ExpressionWarningPatchArgs{...} +type ExpressionWarningPatchInput interface { pulumi.Input - ToMatchConditionPatchOutput() MatchConditionPatchOutput - ToMatchConditionPatchOutputWithContext(context.Context) MatchConditionPatchOutput + ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput + ToExpressionWarningPatchOutputWithContext(context.Context) ExpressionWarningPatchOutput } -type MatchConditionPatchArgs struct { - // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: - // - // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. - // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - // - // Required. - Expression pulumi.StringPtrInput `pulumi:"expression"` - // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - // - // Required. - Name pulumi.StringPtrInput `pulumi:"name"` +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningPatchArgs struct { + // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" + FieldRef pulumi.StringPtrInput `pulumi:"fieldRef"` + // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. + Warning pulumi.StringPtrInput `pulumi:"warning"` } -func (MatchConditionPatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MatchConditionPatch)(nil)).Elem() +func (ExpressionWarningPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressionWarningPatch)(nil)).Elem() } -func (i MatchConditionPatchArgs) ToMatchConditionPatchOutput() MatchConditionPatchOutput { - return i.ToMatchConditionPatchOutputWithContext(context.Background()) +func (i ExpressionWarningPatchArgs) ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput { + return i.ToExpressionWarningPatchOutputWithContext(context.Background()) } -func (i MatchConditionPatchArgs) ToMatchConditionPatchOutputWithContext(ctx context.Context) MatchConditionPatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchConditionPatchOutput) +func (i ExpressionWarningPatchArgs) ToExpressionWarningPatchOutputWithContext(ctx context.Context) ExpressionWarningPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningPatchOutput) } -// MatchConditionPatchArrayInput is an input type that accepts MatchConditionPatchArray and MatchConditionPatchArrayOutput values. -// You can construct a concrete instance of `MatchConditionPatchArrayInput` via: +// ExpressionWarningPatchArrayInput is an input type that accepts ExpressionWarningPatchArray and ExpressionWarningPatchArrayOutput values. +// You can construct a concrete instance of `ExpressionWarningPatchArrayInput` via: // -// MatchConditionPatchArray{ MatchConditionPatchArgs{...} } -type MatchConditionPatchArrayInput interface { +// ExpressionWarningPatchArray{ ExpressionWarningPatchArgs{...} } +type ExpressionWarningPatchArrayInput interface { pulumi.Input - ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput - ToMatchConditionPatchArrayOutputWithContext(context.Context) MatchConditionPatchArrayOutput + ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput + ToExpressionWarningPatchArrayOutputWithContext(context.Context) ExpressionWarningPatchArrayOutput } -type MatchConditionPatchArray []MatchConditionPatchInput +type ExpressionWarningPatchArray []ExpressionWarningPatchInput -func (MatchConditionPatchArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]MatchConditionPatch)(nil)).Elem() +func (ExpressionWarningPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressionWarningPatch)(nil)).Elem() } -func (i MatchConditionPatchArray) ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput { - return i.ToMatchConditionPatchArrayOutputWithContext(context.Background()) +func (i ExpressionWarningPatchArray) ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput { + return i.ToExpressionWarningPatchArrayOutputWithContext(context.Background()) } -func (i MatchConditionPatchArray) ToMatchConditionPatchArrayOutputWithContext(ctx context.Context) MatchConditionPatchArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchConditionPatchArrayOutput) +func (i ExpressionWarningPatchArray) ToExpressionWarningPatchArrayOutputWithContext(ctx context.Context) ExpressionWarningPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningPatchArrayOutput) } -type MatchConditionPatchOutput struct{ *pulumi.OutputState } +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningPatchOutput struct{ *pulumi.OutputState } -func (MatchConditionPatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MatchConditionPatch)(nil)).Elem() +func (ExpressionWarningPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressionWarningPatch)(nil)).Elem() } -func (o MatchConditionPatchOutput) ToMatchConditionPatchOutput() MatchConditionPatchOutput { +func (o ExpressionWarningPatchOutput) ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput { return o } -func (o MatchConditionPatchOutput) ToMatchConditionPatchOutputWithContext(ctx context.Context) MatchConditionPatchOutput { +func (o ExpressionWarningPatchOutput) ToExpressionWarningPatchOutputWithContext(ctx context.Context) ExpressionWarningPatchOutput { return o } -// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: -// -// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. -// -// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz -// -// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the -// -// request resource. -// -// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ -// -// Required. -func (o MatchConditionPatchOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v MatchConditionPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +// The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" +func (o ExpressionWarningPatchOutput) FieldRef() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExpressionWarningPatch) *string { return v.FieldRef }).(pulumi.StringPtrOutput) } -// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') -// -// Required. -func (o MatchConditionPatchOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v MatchConditionPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +// The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. +func (o ExpressionWarningPatchOutput) Warning() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExpressionWarningPatch) *string { return v.Warning }).(pulumi.StringPtrOutput) } -type MatchConditionPatchArrayOutput struct{ *pulumi.OutputState } +type ExpressionWarningPatchArrayOutput struct{ *pulumi.OutputState } -func (MatchConditionPatchArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]MatchConditionPatch)(nil)).Elem() +func (ExpressionWarningPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressionWarningPatch)(nil)).Elem() } -func (o MatchConditionPatchArrayOutput) ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput { +func (o ExpressionWarningPatchArrayOutput) ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput { return o } -func (o MatchConditionPatchArrayOutput) ToMatchConditionPatchArrayOutputWithContext(ctx context.Context) MatchConditionPatchArrayOutput { +func (o ExpressionWarningPatchArrayOutput) ToExpressionWarningPatchArrayOutputWithContext(ctx context.Context) ExpressionWarningPatchArrayOutput { return o } -func (o MatchConditionPatchArrayOutput) Index(i pulumi.IntInput) MatchConditionPatchOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) MatchConditionPatch { - return vs[0].([]MatchConditionPatch)[vs[1].(int)] - }).(MatchConditionPatchOutput) +func (o ExpressionWarningPatchArrayOutput) Index(i pulumi.IntInput) ExpressionWarningPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressionWarningPatch { + return vs[0].([]ExpressionWarningPatch)[vs[1].(int)] + }).(ExpressionWarningPatchOutput) } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResources struct { - // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - ExcludeResourceRules []NamedRuleWithOperations `pulumi:"excludeResourceRules"` - // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// JSONPatch defines a JSON Patch. +type JSONPatch struct { + // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec // - // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // expression must return an array of JSONPatch values. // - // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // For example, this CEL expression returns a JSON patch to conditionally modify a value: // - // Defaults to "Equivalent" - MatchPolicy *string `pulumi:"matchPolicy"` - // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // [ + // JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + // JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + // ] // - // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "runlevel", - // "operator": "NotIn", - // "values": [ - // "0", - // "1" + // To define an object for the patch value, use Object types. For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/spec/selector", + // value: Object.spec.selector{matchLabels: {"environment": "test"}} + // } // ] - // } - // ] - // } // - // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "environment", - // "operator": "In", - // "values": [ - // "prod", - // "staging" + // To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + // value: "test" + // }, // ] - // } - // ] - // } // - // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // CEL expressions have access to the types needed to create JSON patches and objects: // - // Default to the empty LabelSelector, which matches everything. - NamespaceSelector *metav1.LabelSelector `pulumi:"namespaceSelector"` - // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - ObjectSelector *metav1.LabelSelector `pulumi:"objectSelector"` - // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. - ResourceRules []NamedRuleWithOperations `pulumi:"resourceRules"` + // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + // See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + // integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + // [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + // function may be used to escape path keys containing '/' and '~'. + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + // + // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression *string `pulumi:"expression"` } -// MatchResourcesInput is an input type that accepts MatchResourcesArgs and MatchResourcesOutput values. -// You can construct a concrete instance of `MatchResourcesInput` via: +// JSONPatchInput is an input type that accepts JSONPatchArgs and JSONPatchOutput values. +// You can construct a concrete instance of `JSONPatchInput` via: // -// MatchResourcesArgs{...} -type MatchResourcesInput interface { +// JSONPatchArgs{...} +type JSONPatchInput interface { pulumi.Input - ToMatchResourcesOutput() MatchResourcesOutput - ToMatchResourcesOutputWithContext(context.Context) MatchResourcesOutput + ToJSONPatchOutput() JSONPatchOutput + ToJSONPatchOutputWithContext(context.Context) JSONPatchOutput } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesArgs struct { - // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - ExcludeResourceRules NamedRuleWithOperationsArrayInput `pulumi:"excludeResourceRules"` - // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// JSONPatch defines a JSON Patch. +type JSONPatchArgs struct { + // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec // - // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // expression must return an array of JSONPatch values. // - // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // For example, this CEL expression returns a JSON patch to conditionally modify a value: // - // Defaults to "Equivalent" - MatchPolicy pulumi.StringPtrInput `pulumi:"matchPolicy"` - // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // [ + // JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + // JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + // ] // - // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "runlevel", - // "operator": "NotIn", - // "values": [ - // "0", - // "1" + // To define an object for the patch value, use Object types. For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/spec/selector", + // value: Object.spec.selector{matchLabels: {"environment": "test"}} + // } // ] - // } - // ] - // } // - // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "environment", - // "operator": "In", - // "values": [ - // "prod", - // "staging" + // To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + // value: "test" + // }, // ] - // } - // ] - // } // - // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // CEL expressions have access to the types needed to create JSON patches and objects: // - // Default to the empty LabelSelector, which matches everything. - NamespaceSelector metav1.LabelSelectorPtrInput `pulumi:"namespaceSelector"` - // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - ObjectSelector metav1.LabelSelectorPtrInput `pulumi:"objectSelector"` - // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. - ResourceRules NamedRuleWithOperationsArrayInput `pulumi:"resourceRules"` + // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + // See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + // integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + // [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + // function may be used to escape path keys containing '/' and '~'. + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + // + // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` } -func (MatchResourcesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MatchResources)(nil)).Elem() +func (JSONPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatch)(nil)).Elem() } -func (i MatchResourcesArgs) ToMatchResourcesOutput() MatchResourcesOutput { - return i.ToMatchResourcesOutputWithContext(context.Background()) +func (i JSONPatchArgs) ToJSONPatchOutput() JSONPatchOutput { + return i.ToJSONPatchOutputWithContext(context.Background()) } -func (i MatchResourcesArgs) ToMatchResourcesOutputWithContext(ctx context.Context) MatchResourcesOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesOutput) +func (i JSONPatchArgs) ToJSONPatchOutputWithContext(ctx context.Context) JSONPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchOutput) } -func (i MatchResourcesArgs) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { - return i.ToMatchResourcesPtrOutputWithContext(context.Background()) +func (i JSONPatchArgs) ToJSONPatchPtrOutput() JSONPatchPtrOutput { + return i.ToJSONPatchPtrOutputWithContext(context.Background()) } -func (i MatchResourcesArgs) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesOutput).ToMatchResourcesPtrOutputWithContext(ctx) +func (i JSONPatchArgs) ToJSONPatchPtrOutputWithContext(ctx context.Context) JSONPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchOutput).ToJSONPatchPtrOutputWithContext(ctx) } -// MatchResourcesPtrInput is an input type that accepts MatchResourcesArgs, MatchResourcesPtr and MatchResourcesPtrOutput values. -// You can construct a concrete instance of `MatchResourcesPtrInput` via: +// JSONPatchPtrInput is an input type that accepts JSONPatchArgs, JSONPatchPtr and JSONPatchPtrOutput values. +// You can construct a concrete instance of `JSONPatchPtrInput` via: // -// MatchResourcesArgs{...} +// JSONPatchArgs{...} // // or: // // nil -type MatchResourcesPtrInput interface { +type JSONPatchPtrInput interface { pulumi.Input - ToMatchResourcesPtrOutput() MatchResourcesPtrOutput - ToMatchResourcesPtrOutputWithContext(context.Context) MatchResourcesPtrOutput + ToJSONPatchPtrOutput() JSONPatchPtrOutput + ToJSONPatchPtrOutputWithContext(context.Context) JSONPatchPtrOutput } -type matchResourcesPtrType MatchResourcesArgs +type jsonpatchPtrType JSONPatchArgs -func MatchResourcesPtr(v *MatchResourcesArgs) MatchResourcesPtrInput { - return (*matchResourcesPtrType)(v) +func JSONPatchPtr(v *JSONPatchArgs) JSONPatchPtrInput { + return (*jsonpatchPtrType)(v) } -func (*matchResourcesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MatchResources)(nil)).Elem() +func (*jsonpatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**JSONPatch)(nil)).Elem() } -func (i *matchResourcesPtrType) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { - return i.ToMatchResourcesPtrOutputWithContext(context.Background()) +func (i *jsonpatchPtrType) ToJSONPatchPtrOutput() JSONPatchPtrOutput { + return i.ToJSONPatchPtrOutputWithContext(context.Background()) } -func (i *matchResourcesPtrType) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPtrOutput) +func (i *jsonpatchPtrType) ToJSONPatchPtrOutputWithContext(ctx context.Context) JSONPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchPtrOutput) } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesOutput struct{ *pulumi.OutputState } +// JSONPatch defines a JSON Patch. +type JSONPatchOutput struct{ *pulumi.OutputState } -func (MatchResourcesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MatchResources)(nil)).Elem() +func (JSONPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatch)(nil)).Elem() } -func (o MatchResourcesOutput) ToMatchResourcesOutput() MatchResourcesOutput { +func (o JSONPatchOutput) ToJSONPatchOutput() JSONPatchOutput { return o } -func (o MatchResourcesOutput) ToMatchResourcesOutputWithContext(ctx context.Context) MatchResourcesOutput { +func (o JSONPatchOutput) ToJSONPatchOutputWithContext(ctx context.Context) JSONPatchOutput { return o } -func (o MatchResourcesOutput) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { - return o.ToMatchResourcesPtrOutputWithContext(context.Background()) +func (o JSONPatchOutput) ToJSONPatchPtrOutput() JSONPatchPtrOutput { + return o.ToJSONPatchPtrOutputWithContext(context.Background()) } -func (o MatchResourcesOutput) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v MatchResources) *MatchResources { +func (o JSONPatchOutput) ToJSONPatchPtrOutputWithContext(ctx context.Context) JSONPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v JSONPatch) *JSONPatch { return &v - }).(MatchResourcesPtrOutput) -} - -// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -func (o MatchResourcesOutput) ExcludeResourceRules() NamedRuleWithOperationsArrayOutput { - return o.ApplyT(func(v MatchResources) []NamedRuleWithOperations { return v.ExcludeResourceRules }).(NamedRuleWithOperationsArrayOutput) + }).(JSONPatchPtrOutput) } -// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec // -// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// expression must return an array of JSONPatch values. // -// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// For example, this CEL expression returns a JSON patch to conditionally modify a value: // -// Defaults to "Equivalent" -func (o MatchResourcesOutput) MatchPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v MatchResources) *string { return v.MatchPolicy }).(pulumi.StringPtrOutput) -} - -// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// [ +// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, +// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} +// ] // -// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "runlevel", -// "operator": "NotIn", -// "values": [ -// "0", -// "1" -// ] -// } -// ] -// } +// To define an object for the patch value, use Object types. For example: // -// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "environment", -// "operator": "In", -// "values": [ -// "prod", -// "staging" -// ] -// } -// ] -// } +// [ +// JSONPatch{ +// op: "add", +// path: "/spec/selector", +// value: Object.spec.selector{matchLabels: {"environment": "test"}} +// } +// ] // -// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: // -// Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesOutput) NamespaceSelector() metav1.LabelSelectorPtrOutput { - return o.ApplyT(func(v MatchResources) *metav1.LabelSelector { return v.NamespaceSelector }).(metav1.LabelSelectorPtrOutput) -} - -// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesOutput) ObjectSelector() metav1.LabelSelectorPtrOutput { - return o.ApplyT(func(v MatchResources) *metav1.LabelSelector { return v.ObjectSelector }).(metav1.LabelSelectorPtrOutput) -} - -// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. -func (o MatchResourcesOutput) ResourceRules() NamedRuleWithOperationsArrayOutput { - return o.ApplyT(func(v MatchResources) []NamedRuleWithOperations { return v.ResourceRules }).(NamedRuleWithOperationsArrayOutput) +// [ +// JSONPatch{ +// op: "add", +// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), +// value: "test" +// }, +// ] +// +// CEL expressions have access to the types needed to create JSON patches and objects: +// +// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. +// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, +// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a +// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL +// function may be used to escape path keys containing '/' and '~'. +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: +// +// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o JSONPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v JSONPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) } -type MatchResourcesPtrOutput struct{ *pulumi.OutputState } +type JSONPatchPtrOutput struct{ *pulumi.OutputState } -func (MatchResourcesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MatchResources)(nil)).Elem() +func (JSONPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**JSONPatch)(nil)).Elem() } -func (o MatchResourcesPtrOutput) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { +func (o JSONPatchPtrOutput) ToJSONPatchPtrOutput() JSONPatchPtrOutput { return o } -func (o MatchResourcesPtrOutput) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { +func (o JSONPatchPtrOutput) ToJSONPatchPtrOutputWithContext(ctx context.Context) JSONPatchPtrOutput { return o } -func (o MatchResourcesPtrOutput) Elem() MatchResourcesOutput { - return o.ApplyT(func(v *MatchResources) MatchResources { +func (o JSONPatchPtrOutput) Elem() JSONPatchOutput { + return o.ApplyT(func(v *JSONPatch) JSONPatch { if v != nil { return *v } - var ret MatchResources + var ret JSONPatch return ret - }).(MatchResourcesOutput) -} - -// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -func (o MatchResourcesPtrOutput) ExcludeResourceRules() NamedRuleWithOperationsArrayOutput { - return o.ApplyT(func(v *MatchResources) []NamedRuleWithOperations { - if v == nil { - return nil - } - return v.ExcludeResourceRules - }).(NamedRuleWithOperationsArrayOutput) + }).(JSONPatchOutput) } -// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec // -// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// expression must return an array of JSONPatch values. // -// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// For example, this CEL expression returns a JSON patch to conditionally modify a value: // -// Defaults to "Equivalent" -func (o MatchResourcesPtrOutput) MatchPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MatchResources) *string { - if v == nil { - return nil - } - return v.MatchPolicy - }).(pulumi.StringPtrOutput) -} - -// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// [ +// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, +// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} +// ] // -// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "runlevel", -// "operator": "NotIn", -// "values": [ -// "0", -// "1" -// ] -// } -// ] -// } +// To define an object for the patch value, use Object types. For example: // -// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "environment", -// "operator": "In", -// "values": [ -// "prod", -// "staging" -// ] -// } -// ] -// } +// [ +// JSONPatch{ +// op: "add", +// path: "/spec/selector", +// value: Object.spec.selector{matchLabels: {"environment": "test"}} +// } +// ] // -// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: // -// Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPtrOutput) NamespaceSelector() metav1.LabelSelectorPtrOutput { - return o.ApplyT(func(v *MatchResources) *metav1.LabelSelector { - if v == nil { - return nil - } - return v.NamespaceSelector - }).(metav1.LabelSelectorPtrOutput) -} - -// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPtrOutput) ObjectSelector() metav1.LabelSelectorPtrOutput { - return o.ApplyT(func(v *MatchResources) *metav1.LabelSelector { - if v == nil { - return nil - } - return v.ObjectSelector - }).(metav1.LabelSelectorPtrOutput) -} - -// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. -func (o MatchResourcesPtrOutput) ResourceRules() NamedRuleWithOperationsArrayOutput { - return o.ApplyT(func(v *MatchResources) []NamedRuleWithOperations { +// [ +// JSONPatch{ +// op: "add", +// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), +// value: "test" +// }, +// ] +// +// CEL expressions have access to the types needed to create JSON patches and objects: +// +// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. +// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, +// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a +// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL +// function may be used to escape path keys containing '/' and '~'. +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: +// +// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o JSONPatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *JSONPatch) *string { if v == nil { return nil } - return v.ResourceRules - }).(NamedRuleWithOperationsArrayOutput) + return v.Expression + }).(pulumi.StringPtrOutput) } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesPatch struct { - // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - ExcludeResourceRules []NamedRuleWithOperationsPatch `pulumi:"excludeResourceRules"` - // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// JSONPatch defines a JSON Patch. +type JSONPatchPatch struct { + // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec // - // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // expression must return an array of JSONPatch values. // - // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // For example, this CEL expression returns a JSON patch to conditionally modify a value: // - // Defaults to "Equivalent" - MatchPolicy *string `pulumi:"matchPolicy"` - // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // [ + // JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + // JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + // ] // - // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "runlevel", - // "operator": "NotIn", - // "values": [ - // "0", - // "1" + // To define an object for the patch value, use Object types. For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/spec/selector", + // value: Object.spec.selector{matchLabels: {"environment": "test"}} + // } // ] - // } - // ] - // } // - // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "environment", - // "operator": "In", - // "values": [ - // "prod", - // "staging" + // To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + // value: "test" + // }, // ] - // } - // ] - // } // - // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // CEL expressions have access to the types needed to create JSON patches and objects: // - // Default to the empty LabelSelector, which matches everything. - NamespaceSelector *metav1.LabelSelectorPatch `pulumi:"namespaceSelector"` - // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - ObjectSelector *metav1.LabelSelectorPatch `pulumi:"objectSelector"` - // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. - ResourceRules []NamedRuleWithOperationsPatch `pulumi:"resourceRules"` + // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + // See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + // integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + // [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + // function may be used to escape path keys containing '/' and '~'. + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + // + // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression *string `pulumi:"expression"` } -// MatchResourcesPatchInput is an input type that accepts MatchResourcesPatchArgs and MatchResourcesPatchOutput values. -// You can construct a concrete instance of `MatchResourcesPatchInput` via: +// JSONPatchPatchInput is an input type that accepts JSONPatchPatchArgs and JSONPatchPatchOutput values. +// You can construct a concrete instance of `JSONPatchPatchInput` via: // -// MatchResourcesPatchArgs{...} -type MatchResourcesPatchInput interface { +// JSONPatchPatchArgs{...} +type JSONPatchPatchInput interface { pulumi.Input - ToMatchResourcesPatchOutput() MatchResourcesPatchOutput - ToMatchResourcesPatchOutputWithContext(context.Context) MatchResourcesPatchOutput + ToJSONPatchPatchOutput() JSONPatchPatchOutput + ToJSONPatchPatchOutputWithContext(context.Context) JSONPatchPatchOutput } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesPatchArgs struct { - // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - ExcludeResourceRules NamedRuleWithOperationsPatchArrayInput `pulumi:"excludeResourceRules"` - // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// JSONPatch defines a JSON Patch. +type JSONPatchPatchArgs struct { + // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec // - // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // expression must return an array of JSONPatch values. // - // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // For example, this CEL expression returns a JSON patch to conditionally modify a value: // - // Defaults to "Equivalent" - MatchPolicy pulumi.StringPtrInput `pulumi:"matchPolicy"` - // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // [ + // JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + // JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + // ] // - // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "runlevel", - // "operator": "NotIn", - // "values": [ - // "0", - // "1" + // To define an object for the patch value, use Object types. For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/spec/selector", + // value: Object.spec.selector{matchLabels: {"environment": "test"}} + // } // ] - // } - // ] - // } // - // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "environment", - // "operator": "In", - // "values": [ - // "prod", - // "staging" + // To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + // value: "test" + // }, // ] - // } - // ] - // } // - // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // CEL expressions have access to the types needed to create JSON patches and objects: // - // Default to the empty LabelSelector, which matches everything. - NamespaceSelector metav1.LabelSelectorPatchPtrInput `pulumi:"namespaceSelector"` - // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - ObjectSelector metav1.LabelSelectorPatchPtrInput `pulumi:"objectSelector"` - // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. - ResourceRules NamedRuleWithOperationsPatchArrayInput `pulumi:"resourceRules"` + // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + // See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + // integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + // [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + // function may be used to escape path keys containing '/' and '~'. + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + // + // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` } -func (MatchResourcesPatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MatchResourcesPatch)(nil)).Elem() +func (JSONPatchPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatchPatch)(nil)).Elem() } -func (i MatchResourcesPatchArgs) ToMatchResourcesPatchOutput() MatchResourcesPatchOutput { - return i.ToMatchResourcesPatchOutputWithContext(context.Background()) +func (i JSONPatchPatchArgs) ToJSONPatchPatchOutput() JSONPatchPatchOutput { + return i.ToJSONPatchPatchOutputWithContext(context.Background()) } -func (i MatchResourcesPatchArgs) ToMatchResourcesPatchOutputWithContext(ctx context.Context) MatchResourcesPatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchOutput) +func (i JSONPatchPatchArgs) ToJSONPatchPatchOutputWithContext(ctx context.Context) JSONPatchPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchPatchOutput) } -func (i MatchResourcesPatchArgs) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { - return i.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +func (i JSONPatchPatchArgs) ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput { + return i.ToJSONPatchPatchPtrOutputWithContext(context.Background()) } -func (i MatchResourcesPatchArgs) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchOutput).ToMatchResourcesPatchPtrOutputWithContext(ctx) +func (i JSONPatchPatchArgs) ToJSONPatchPatchPtrOutputWithContext(ctx context.Context) JSONPatchPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchPatchOutput).ToJSONPatchPatchPtrOutputWithContext(ctx) } -// MatchResourcesPatchPtrInput is an input type that accepts MatchResourcesPatchArgs, MatchResourcesPatchPtr and MatchResourcesPatchPtrOutput values. -// You can construct a concrete instance of `MatchResourcesPatchPtrInput` via: +// JSONPatchPatchPtrInput is an input type that accepts JSONPatchPatchArgs, JSONPatchPatchPtr and JSONPatchPatchPtrOutput values. +// You can construct a concrete instance of `JSONPatchPatchPtrInput` via: // -// MatchResourcesPatchArgs{...} +// JSONPatchPatchArgs{...} // // or: // // nil -type MatchResourcesPatchPtrInput interface { +type JSONPatchPatchPtrInput interface { pulumi.Input - ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput - ToMatchResourcesPatchPtrOutputWithContext(context.Context) MatchResourcesPatchPtrOutput + ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput + ToJSONPatchPatchPtrOutputWithContext(context.Context) JSONPatchPatchPtrOutput } -type matchResourcesPatchPtrType MatchResourcesPatchArgs +type jsonpatchPatchPtrType JSONPatchPatchArgs -func MatchResourcesPatchPtr(v *MatchResourcesPatchArgs) MatchResourcesPatchPtrInput { - return (*matchResourcesPatchPtrType)(v) +func JSONPatchPatchPtr(v *JSONPatchPatchArgs) JSONPatchPatchPtrInput { + return (*jsonpatchPatchPtrType)(v) } -func (*matchResourcesPatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MatchResourcesPatch)(nil)).Elem() +func (*jsonpatchPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**JSONPatchPatch)(nil)).Elem() } -func (i *matchResourcesPatchPtrType) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { - return i.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +func (i *jsonpatchPatchPtrType) ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput { + return i.ToJSONPatchPatchPtrOutputWithContext(context.Background()) } -func (i *matchResourcesPatchPtrType) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchPtrOutput) +func (i *jsonpatchPatchPtrType) ToJSONPatchPatchPtrOutputWithContext(ctx context.Context) JSONPatchPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchPatchPtrOutput) } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesPatchOutput struct{ *pulumi.OutputState } +// JSONPatch defines a JSON Patch. +type JSONPatchPatchOutput struct{ *pulumi.OutputState } -func (MatchResourcesPatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MatchResourcesPatch)(nil)).Elem() +func (JSONPatchPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatchPatch)(nil)).Elem() } -func (o MatchResourcesPatchOutput) ToMatchResourcesPatchOutput() MatchResourcesPatchOutput { +func (o JSONPatchPatchOutput) ToJSONPatchPatchOutput() JSONPatchPatchOutput { return o } -func (o MatchResourcesPatchOutput) ToMatchResourcesPatchOutputWithContext(ctx context.Context) MatchResourcesPatchOutput { +func (o JSONPatchPatchOutput) ToJSONPatchPatchOutputWithContext(ctx context.Context) JSONPatchPatchOutput { return o } -func (o MatchResourcesPatchOutput) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { - return o.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +func (o JSONPatchPatchOutput) ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput { + return o.ToJSONPatchPatchPtrOutputWithContext(context.Background()) +} + +func (o JSONPatchPatchOutput) ToJSONPatchPatchPtrOutputWithContext(ctx context.Context) JSONPatchPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v JSONPatchPatch) *JSONPatchPatch { + return &v + }).(JSONPatchPatchPtrOutput) +} + +// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec +// +// expression must return an array of JSONPatch values. +// +// For example, this CEL expression returns a JSON patch to conditionally modify a value: +// +// [ +// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, +// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} +// ] +// +// To define an object for the patch value, use Object types. For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/spec/selector", +// value: Object.spec.selector{matchLabels: {"environment": "test"}} +// } +// ] +// +// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), +// value: "test" +// }, +// ] +// +// CEL expressions have access to the types needed to create JSON patches and objects: +// +// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. +// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, +// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a +// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL +// function may be used to escape path keys containing '/' and '~'. +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: +// +// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o JSONPatchPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v JSONPatchPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +type JSONPatchPatchPtrOutput struct{ *pulumi.OutputState } + +func (JSONPatchPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**JSONPatchPatch)(nil)).Elem() +} + +func (o JSONPatchPatchPtrOutput) ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput { + return o +} + +func (o JSONPatchPatchPtrOutput) ToJSONPatchPatchPtrOutputWithContext(ctx context.Context) JSONPatchPatchPtrOutput { + return o +} + +func (o JSONPatchPatchPtrOutput) Elem() JSONPatchPatchOutput { + return o.ApplyT(func(v *JSONPatchPatch) JSONPatchPatch { + if v != nil { + return *v + } + var ret JSONPatchPatch + return ret + }).(JSONPatchPatchOutput) +} + +// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec +// +// expression must return an array of JSONPatch values. +// +// For example, this CEL expression returns a JSON patch to conditionally modify a value: +// +// [ +// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, +// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} +// ] +// +// To define an object for the patch value, use Object types. For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/spec/selector", +// value: Object.spec.selector{matchLabels: {"environment": "test"}} +// } +// ] +// +// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), +// value: "test" +// }, +// ] +// +// CEL expressions have access to the types needed to create JSON patches and objects: +// +// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. +// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, +// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a +// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL +// function may be used to escape path keys containing '/' and '~'. +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: +// +// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o JSONPatchPatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *JSONPatchPatch) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) +} + +type MatchCondition struct { + // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + // + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + // + // Required. + Expression string `pulumi:"expression"` + // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + // + // Required. + Name string `pulumi:"name"` +} + +// MatchConditionInput is an input type that accepts MatchConditionArgs and MatchConditionOutput values. +// You can construct a concrete instance of `MatchConditionInput` via: +// +// MatchConditionArgs{...} +type MatchConditionInput interface { + pulumi.Input + + ToMatchConditionOutput() MatchConditionOutput + ToMatchConditionOutputWithContext(context.Context) MatchConditionOutput +} + +type MatchConditionArgs struct { + // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + // + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + // + // Required. + Expression pulumi.StringInput `pulumi:"expression"` + // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + // + // Required. + Name pulumi.StringInput `pulumi:"name"` +} + +func (MatchConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MatchCondition)(nil)).Elem() +} + +func (i MatchConditionArgs) ToMatchConditionOutput() MatchConditionOutput { + return i.ToMatchConditionOutputWithContext(context.Background()) +} + +func (i MatchConditionArgs) ToMatchConditionOutputWithContext(ctx context.Context) MatchConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchConditionOutput) +} + +// MatchConditionArrayInput is an input type that accepts MatchConditionArray and MatchConditionArrayOutput values. +// You can construct a concrete instance of `MatchConditionArrayInput` via: +// +// MatchConditionArray{ MatchConditionArgs{...} } +type MatchConditionArrayInput interface { + pulumi.Input + + ToMatchConditionArrayOutput() MatchConditionArrayOutput + ToMatchConditionArrayOutputWithContext(context.Context) MatchConditionArrayOutput +} + +type MatchConditionArray []MatchConditionInput + +func (MatchConditionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MatchCondition)(nil)).Elem() +} + +func (i MatchConditionArray) ToMatchConditionArrayOutput() MatchConditionArrayOutput { + return i.ToMatchConditionArrayOutputWithContext(context.Background()) +} + +func (i MatchConditionArray) ToMatchConditionArrayOutputWithContext(ctx context.Context) MatchConditionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchConditionArrayOutput) +} + +type MatchConditionOutput struct{ *pulumi.OutputState } + +func (MatchConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MatchCondition)(nil)).Elem() +} + +func (o MatchConditionOutput) ToMatchConditionOutput() MatchConditionOutput { + return o +} + +func (o MatchConditionOutput) ToMatchConditionOutputWithContext(ctx context.Context) MatchConditionOutput { + return o +} + +// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: +// +// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// +// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// +// request resource. +// +// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ +// +// Required. +func (o MatchConditionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v MatchCondition) string { return v.Expression }).(pulumi.StringOutput) +} + +// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') +// +// Required. +func (o MatchConditionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v MatchCondition) string { return v.Name }).(pulumi.StringOutput) +} + +type MatchConditionArrayOutput struct{ *pulumi.OutputState } + +func (MatchConditionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MatchCondition)(nil)).Elem() +} + +func (o MatchConditionArrayOutput) ToMatchConditionArrayOutput() MatchConditionArrayOutput { + return o +} + +func (o MatchConditionArrayOutput) ToMatchConditionArrayOutputWithContext(ctx context.Context) MatchConditionArrayOutput { + return o +} + +func (o MatchConditionArrayOutput) Index(i pulumi.IntInput) MatchConditionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MatchCondition { + return vs[0].([]MatchCondition)[vs[1].(int)] + }).(MatchConditionOutput) +} + +type MatchConditionPatch struct { + // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + // + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + // + // Required. + Expression *string `pulumi:"expression"` + // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + // + // Required. + Name *string `pulumi:"name"` +} + +// MatchConditionPatchInput is an input type that accepts MatchConditionPatchArgs and MatchConditionPatchOutput values. +// You can construct a concrete instance of `MatchConditionPatchInput` via: +// +// MatchConditionPatchArgs{...} +type MatchConditionPatchInput interface { + pulumi.Input + + ToMatchConditionPatchOutput() MatchConditionPatchOutput + ToMatchConditionPatchOutputWithContext(context.Context) MatchConditionPatchOutput +} + +type MatchConditionPatchArgs struct { + // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + // + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + // + // Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` + // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + // + // Required. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (MatchConditionPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MatchConditionPatch)(nil)).Elem() +} + +func (i MatchConditionPatchArgs) ToMatchConditionPatchOutput() MatchConditionPatchOutput { + return i.ToMatchConditionPatchOutputWithContext(context.Background()) +} + +func (i MatchConditionPatchArgs) ToMatchConditionPatchOutputWithContext(ctx context.Context) MatchConditionPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchConditionPatchOutput) +} + +// MatchConditionPatchArrayInput is an input type that accepts MatchConditionPatchArray and MatchConditionPatchArrayOutput values. +// You can construct a concrete instance of `MatchConditionPatchArrayInput` via: +// +// MatchConditionPatchArray{ MatchConditionPatchArgs{...} } +type MatchConditionPatchArrayInput interface { + pulumi.Input + + ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput + ToMatchConditionPatchArrayOutputWithContext(context.Context) MatchConditionPatchArrayOutput +} + +type MatchConditionPatchArray []MatchConditionPatchInput + +func (MatchConditionPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MatchConditionPatch)(nil)).Elem() +} + +func (i MatchConditionPatchArray) ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput { + return i.ToMatchConditionPatchArrayOutputWithContext(context.Background()) +} + +func (i MatchConditionPatchArray) ToMatchConditionPatchArrayOutputWithContext(ctx context.Context) MatchConditionPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchConditionPatchArrayOutput) +} + +type MatchConditionPatchOutput struct{ *pulumi.OutputState } + +func (MatchConditionPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MatchConditionPatch)(nil)).Elem() +} + +func (o MatchConditionPatchOutput) ToMatchConditionPatchOutput() MatchConditionPatchOutput { + return o +} + +func (o MatchConditionPatchOutput) ToMatchConditionPatchOutputWithContext(ctx context.Context) MatchConditionPatchOutput { + return o +} + +// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: +// +// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// +// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// +// request resource. +// +// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ +// +// Required. +func (o MatchConditionPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v MatchConditionPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') +// +// Required. +func (o MatchConditionPatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v MatchConditionPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type MatchConditionPatchArrayOutput struct{ *pulumi.OutputState } + +func (MatchConditionPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MatchConditionPatch)(nil)).Elem() +} + +func (o MatchConditionPatchArrayOutput) ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput { + return o +} + +func (o MatchConditionPatchArrayOutput) ToMatchConditionPatchArrayOutputWithContext(ctx context.Context) MatchConditionPatchArrayOutput { + return o +} + +func (o MatchConditionPatchArrayOutput) Index(i pulumi.IntInput) MatchConditionPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MatchConditionPatch { + return vs[0].([]MatchConditionPatch)[vs[1].(int)] + }).(MatchConditionPatchOutput) +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResources struct { + // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + ExcludeResourceRules []NamedRuleWithOperations `pulumi:"excludeResourceRules"` + // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + // + // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // + // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // + // Defaults to "Equivalent" + MatchPolicy *string `pulumi:"matchPolicy"` + // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // + // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + NamespaceSelector *metav1.LabelSelector `pulumi:"namespaceSelector"` + // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + ObjectSelector *metav1.LabelSelector `pulumi:"objectSelector"` + // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + ResourceRules []NamedRuleWithOperations `pulumi:"resourceRules"` +} + +// MatchResourcesInput is an input type that accepts MatchResourcesArgs and MatchResourcesOutput values. +// You can construct a concrete instance of `MatchResourcesInput` via: +// +// MatchResourcesArgs{...} +type MatchResourcesInput interface { + pulumi.Input + + ToMatchResourcesOutput() MatchResourcesOutput + ToMatchResourcesOutputWithContext(context.Context) MatchResourcesOutput +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesArgs struct { + // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + ExcludeResourceRules NamedRuleWithOperationsArrayInput `pulumi:"excludeResourceRules"` + // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + // + // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // + // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // + // Defaults to "Equivalent" + MatchPolicy pulumi.StringPtrInput `pulumi:"matchPolicy"` + // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // + // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + NamespaceSelector metav1.LabelSelectorPtrInput `pulumi:"namespaceSelector"` + // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + ObjectSelector metav1.LabelSelectorPtrInput `pulumi:"objectSelector"` + // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + ResourceRules NamedRuleWithOperationsArrayInput `pulumi:"resourceRules"` +} + +func (MatchResourcesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MatchResources)(nil)).Elem() +} + +func (i MatchResourcesArgs) ToMatchResourcesOutput() MatchResourcesOutput { + return i.ToMatchResourcesOutputWithContext(context.Background()) +} + +func (i MatchResourcesArgs) ToMatchResourcesOutputWithContext(ctx context.Context) MatchResourcesOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesOutput) +} + +func (i MatchResourcesArgs) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { + return i.ToMatchResourcesPtrOutputWithContext(context.Background()) +} + +func (i MatchResourcesArgs) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesOutput).ToMatchResourcesPtrOutputWithContext(ctx) +} + +// MatchResourcesPtrInput is an input type that accepts MatchResourcesArgs, MatchResourcesPtr and MatchResourcesPtrOutput values. +// You can construct a concrete instance of `MatchResourcesPtrInput` via: +// +// MatchResourcesArgs{...} +// +// or: +// +// nil +type MatchResourcesPtrInput interface { + pulumi.Input + + ToMatchResourcesPtrOutput() MatchResourcesPtrOutput + ToMatchResourcesPtrOutputWithContext(context.Context) MatchResourcesPtrOutput +} + +type matchResourcesPtrType MatchResourcesArgs + +func MatchResourcesPtr(v *MatchResourcesArgs) MatchResourcesPtrInput { + return (*matchResourcesPtrType)(v) +} + +func (*matchResourcesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MatchResources)(nil)).Elem() +} + +func (i *matchResourcesPtrType) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { + return i.ToMatchResourcesPtrOutputWithContext(context.Background()) +} + +func (i *matchResourcesPtrType) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPtrOutput) +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesOutput struct{ *pulumi.OutputState } + +func (MatchResourcesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MatchResources)(nil)).Elem() +} + +func (o MatchResourcesOutput) ToMatchResourcesOutput() MatchResourcesOutput { + return o +} + +func (o MatchResourcesOutput) ToMatchResourcesOutputWithContext(ctx context.Context) MatchResourcesOutput { + return o +} + +func (o MatchResourcesOutput) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { + return o.ToMatchResourcesPtrOutputWithContext(context.Background()) +} + +func (o MatchResourcesOutput) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MatchResources) *MatchResources { + return &v + }).(MatchResourcesPtrOutput) +} + +// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +func (o MatchResourcesOutput) ExcludeResourceRules() NamedRuleWithOperationsArrayOutput { + return o.ApplyT(func(v MatchResources) []NamedRuleWithOperations { return v.ExcludeResourceRules }).(NamedRuleWithOperationsArrayOutput) +} + +// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// +// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// +// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// +// Defaults to "Equivalent" +func (o MatchResourcesOutput) MatchPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MatchResources) *string { return v.MatchPolicy }).(pulumi.StringPtrOutput) +} + +// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// +// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "runlevel", +// "operator": "NotIn", +// "values": [ +// "0", +// "1" +// ] +// } +// ] +// } +// +// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "environment", +// "operator": "In", +// "values": [ +// "prod", +// "staging" +// ] +// } +// ] +// } +// +// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// +// Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesOutput) NamespaceSelector() metav1.LabelSelectorPtrOutput { + return o.ApplyT(func(v MatchResources) *metav1.LabelSelector { return v.NamespaceSelector }).(metav1.LabelSelectorPtrOutput) +} + +// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesOutput) ObjectSelector() metav1.LabelSelectorPtrOutput { + return o.ApplyT(func(v MatchResources) *metav1.LabelSelector { return v.ObjectSelector }).(metav1.LabelSelectorPtrOutput) +} + +// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. +func (o MatchResourcesOutput) ResourceRules() NamedRuleWithOperationsArrayOutput { + return o.ApplyT(func(v MatchResources) []NamedRuleWithOperations { return v.ResourceRules }).(NamedRuleWithOperationsArrayOutput) +} + +type MatchResourcesPtrOutput struct{ *pulumi.OutputState } + +func (MatchResourcesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MatchResources)(nil)).Elem() +} + +func (o MatchResourcesPtrOutput) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { + return o +} + +func (o MatchResourcesPtrOutput) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { + return o +} + +func (o MatchResourcesPtrOutput) Elem() MatchResourcesOutput { + return o.ApplyT(func(v *MatchResources) MatchResources { + if v != nil { + return *v + } + var ret MatchResources + return ret + }).(MatchResourcesOutput) +} + +// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +func (o MatchResourcesPtrOutput) ExcludeResourceRules() NamedRuleWithOperationsArrayOutput { + return o.ApplyT(func(v *MatchResources) []NamedRuleWithOperations { + if v == nil { + return nil + } + return v.ExcludeResourceRules + }).(NamedRuleWithOperationsArrayOutput) +} + +// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// +// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// +// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// +// Defaults to "Equivalent" +func (o MatchResourcesPtrOutput) MatchPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MatchResources) *string { + if v == nil { + return nil + } + return v.MatchPolicy + }).(pulumi.StringPtrOutput) +} + +// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// +// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "runlevel", +// "operator": "NotIn", +// "values": [ +// "0", +// "1" +// ] +// } +// ] +// } +// +// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "environment", +// "operator": "In", +// "values": [ +// "prod", +// "staging" +// ] +// } +// ] +// } +// +// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// +// Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPtrOutput) NamespaceSelector() metav1.LabelSelectorPtrOutput { + return o.ApplyT(func(v *MatchResources) *metav1.LabelSelector { + if v == nil { + return nil + } + return v.NamespaceSelector + }).(metav1.LabelSelectorPtrOutput) +} + +// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPtrOutput) ObjectSelector() metav1.LabelSelectorPtrOutput { + return o.ApplyT(func(v *MatchResources) *metav1.LabelSelector { + if v == nil { + return nil + } + return v.ObjectSelector + }).(metav1.LabelSelectorPtrOutput) +} + +// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. +func (o MatchResourcesPtrOutput) ResourceRules() NamedRuleWithOperationsArrayOutput { + return o.ApplyT(func(v *MatchResources) []NamedRuleWithOperations { + if v == nil { + return nil + } + return v.ResourceRules + }).(NamedRuleWithOperationsArrayOutput) +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesPatch struct { + // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + ExcludeResourceRules []NamedRuleWithOperationsPatch `pulumi:"excludeResourceRules"` + // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + // + // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // + // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // + // Defaults to "Equivalent" + MatchPolicy *string `pulumi:"matchPolicy"` + // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // + // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + NamespaceSelector *metav1.LabelSelectorPatch `pulumi:"namespaceSelector"` + // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + ObjectSelector *metav1.LabelSelectorPatch `pulumi:"objectSelector"` + // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + ResourceRules []NamedRuleWithOperationsPatch `pulumi:"resourceRules"` +} + +// MatchResourcesPatchInput is an input type that accepts MatchResourcesPatchArgs and MatchResourcesPatchOutput values. +// You can construct a concrete instance of `MatchResourcesPatchInput` via: +// +// MatchResourcesPatchArgs{...} +type MatchResourcesPatchInput interface { + pulumi.Input + + ToMatchResourcesPatchOutput() MatchResourcesPatchOutput + ToMatchResourcesPatchOutputWithContext(context.Context) MatchResourcesPatchOutput +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesPatchArgs struct { + // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + ExcludeResourceRules NamedRuleWithOperationsPatchArrayInput `pulumi:"excludeResourceRules"` + // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + // + // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // + // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // + // Defaults to "Equivalent" + MatchPolicy pulumi.StringPtrInput `pulumi:"matchPolicy"` + // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // + // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + NamespaceSelector metav1.LabelSelectorPatchPtrInput `pulumi:"namespaceSelector"` + // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + ObjectSelector metav1.LabelSelectorPatchPtrInput `pulumi:"objectSelector"` + // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + ResourceRules NamedRuleWithOperationsPatchArrayInput `pulumi:"resourceRules"` +} + +func (MatchResourcesPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MatchResourcesPatch)(nil)).Elem() +} + +func (i MatchResourcesPatchArgs) ToMatchResourcesPatchOutput() MatchResourcesPatchOutput { + return i.ToMatchResourcesPatchOutputWithContext(context.Background()) +} + +func (i MatchResourcesPatchArgs) ToMatchResourcesPatchOutputWithContext(ctx context.Context) MatchResourcesPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchOutput) +} + +func (i MatchResourcesPatchArgs) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { + return i.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +} + +func (i MatchResourcesPatchArgs) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchOutput).ToMatchResourcesPatchPtrOutputWithContext(ctx) +} + +// MatchResourcesPatchPtrInput is an input type that accepts MatchResourcesPatchArgs, MatchResourcesPatchPtr and MatchResourcesPatchPtrOutput values. +// You can construct a concrete instance of `MatchResourcesPatchPtrInput` via: +// +// MatchResourcesPatchArgs{...} +// +// or: +// +// nil +type MatchResourcesPatchPtrInput interface { + pulumi.Input + + ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput + ToMatchResourcesPatchPtrOutputWithContext(context.Context) MatchResourcesPatchPtrOutput +} + +type matchResourcesPatchPtrType MatchResourcesPatchArgs + +func MatchResourcesPatchPtr(v *MatchResourcesPatchArgs) MatchResourcesPatchPtrInput { + return (*matchResourcesPatchPtrType)(v) +} + +func (*matchResourcesPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MatchResourcesPatch)(nil)).Elem() +} + +func (i *matchResourcesPatchPtrType) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { + return i.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +} + +func (i *matchResourcesPatchPtrType) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchPtrOutput) +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesPatchOutput struct{ *pulumi.OutputState } + +func (MatchResourcesPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MatchResourcesPatch)(nil)).Elem() +} + +func (o MatchResourcesPatchOutput) ToMatchResourcesPatchOutput() MatchResourcesPatchOutput { + return o +} + +func (o MatchResourcesPatchOutput) ToMatchResourcesPatchOutputWithContext(ctx context.Context) MatchResourcesPatchOutput { + return o +} + +func (o MatchResourcesPatchOutput) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { + return o.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +} + +func (o MatchResourcesPatchOutput) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MatchResourcesPatch) *MatchResourcesPatch { + return &v + }).(MatchResourcesPatchPtrOutput) +} + +// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +func (o MatchResourcesPatchOutput) ExcludeResourceRules() NamedRuleWithOperationsPatchArrayOutput { + return o.ApplyT(func(v MatchResourcesPatch) []NamedRuleWithOperationsPatch { return v.ExcludeResourceRules }).(NamedRuleWithOperationsPatchArrayOutput) +} + +// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// +// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// +// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// +// Defaults to "Equivalent" +func (o MatchResourcesPatchOutput) MatchPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MatchResourcesPatch) *string { return v.MatchPolicy }).(pulumi.StringPtrOutput) +} + +// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// +// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "runlevel", +// "operator": "NotIn", +// "values": [ +// "0", +// "1" +// ] +// } +// ] +// } +// +// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "environment", +// "operator": "In", +// "values": [ +// "prod", +// "staging" +// ] +// } +// ] +// } +// +// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// +// Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPatchOutput) NamespaceSelector() metav1.LabelSelectorPatchPtrOutput { + return o.ApplyT(func(v MatchResourcesPatch) *metav1.LabelSelectorPatch { return v.NamespaceSelector }).(metav1.LabelSelectorPatchPtrOutput) +} + +// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPatchOutput) ObjectSelector() metav1.LabelSelectorPatchPtrOutput { + return o.ApplyT(func(v MatchResourcesPatch) *metav1.LabelSelectorPatch { return v.ObjectSelector }).(metav1.LabelSelectorPatchPtrOutput) +} + +// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. +func (o MatchResourcesPatchOutput) ResourceRules() NamedRuleWithOperationsPatchArrayOutput { + return o.ApplyT(func(v MatchResourcesPatch) []NamedRuleWithOperationsPatch { return v.ResourceRules }).(NamedRuleWithOperationsPatchArrayOutput) +} + +type MatchResourcesPatchPtrOutput struct{ *pulumi.OutputState } + +func (MatchResourcesPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MatchResourcesPatch)(nil)).Elem() +} + +func (o MatchResourcesPatchPtrOutput) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { + return o +} + +func (o MatchResourcesPatchPtrOutput) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { + return o +} + +func (o MatchResourcesPatchPtrOutput) Elem() MatchResourcesPatchOutput { + return o.ApplyT(func(v *MatchResourcesPatch) MatchResourcesPatch { + if v != nil { + return *v + } + var ret MatchResourcesPatch + return ret + }).(MatchResourcesPatchOutput) +} + +// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +func (o MatchResourcesPatchPtrOutput) ExcludeResourceRules() NamedRuleWithOperationsPatchArrayOutput { + return o.ApplyT(func(v *MatchResourcesPatch) []NamedRuleWithOperationsPatch { + if v == nil { + return nil + } + return v.ExcludeResourceRules + }).(NamedRuleWithOperationsPatchArrayOutput) +} + +// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// +// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// +// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// +// Defaults to "Equivalent" +func (o MatchResourcesPatchPtrOutput) MatchPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MatchResourcesPatch) *string { + if v == nil { + return nil + } + return v.MatchPolicy + }).(pulumi.StringPtrOutput) +} + +// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// +// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "runlevel", +// "operator": "NotIn", +// "values": [ +// "0", +// "1" +// ] +// } +// ] +// } +// +// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "environment", +// "operator": "In", +// "values": [ +// "prod", +// "staging" +// ] +// } +// ] +// } +// +// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// +// Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPatchPtrOutput) NamespaceSelector() metav1.LabelSelectorPatchPtrOutput { + return o.ApplyT(func(v *MatchResourcesPatch) *metav1.LabelSelectorPatch { + if v == nil { + return nil + } + return v.NamespaceSelector + }).(metav1.LabelSelectorPatchPtrOutput) +} + +// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPatchPtrOutput) ObjectSelector() metav1.LabelSelectorPatchPtrOutput { + return o.ApplyT(func(v *MatchResourcesPatch) *metav1.LabelSelectorPatch { + if v == nil { + return nil + } + return v.ObjectSelector + }).(metav1.LabelSelectorPatchPtrOutput) +} + +// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. +func (o MatchResourcesPatchPtrOutput) ResourceRules() NamedRuleWithOperationsPatchArrayOutput { + return o.ApplyT(func(v *MatchResourcesPatch) []NamedRuleWithOperationsPatch { + if v == nil { + return nil + } + return v.ResourceRules + }).(NamedRuleWithOperationsPatchArrayOutput) +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec *MutatingAdmissionPolicySpec `pulumi:"spec"` +} + +// MutatingAdmissionPolicyTypeInput is an input type that accepts MutatingAdmissionPolicyTypeArgs and MutatingAdmissionPolicyTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyTypeInput` via: +// +// MutatingAdmissionPolicyTypeArgs{...} +type MutatingAdmissionPolicyTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyTypeOutput() MutatingAdmissionPolicyTypeOutput + ToMutatingAdmissionPolicyTypeOutputWithContext(context.Context) MutatingAdmissionPolicyTypeOutput +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPtrInput `pulumi:"spec"` +} + +func (MutatingAdmissionPolicyTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyTypeArgs) ToMutatingAdmissionPolicyTypeOutput() MutatingAdmissionPolicyTypeOutput { + return i.ToMutatingAdmissionPolicyTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyTypeArgs) ToMutatingAdmissionPolicyTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyTypeOutput) +} + +// MutatingAdmissionPolicyTypeArrayInput is an input type that accepts MutatingAdmissionPolicyTypeArray and MutatingAdmissionPolicyTypeArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyTypeArrayInput` via: +// +// MutatingAdmissionPolicyTypeArray{ MutatingAdmissionPolicyTypeArgs{...} } +type MutatingAdmissionPolicyTypeArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyTypeArrayOutput() MutatingAdmissionPolicyTypeArrayOutput + ToMutatingAdmissionPolicyTypeArrayOutputWithContext(context.Context) MutatingAdmissionPolicyTypeArrayOutput +} + +type MutatingAdmissionPolicyTypeArray []MutatingAdmissionPolicyTypeInput + +func (MutatingAdmissionPolicyTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutatingAdmissionPolicyType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyTypeArray) ToMutatingAdmissionPolicyTypeArrayOutput() MutatingAdmissionPolicyTypeArrayOutput { + return i.ToMutatingAdmissionPolicyTypeArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyTypeArray) ToMutatingAdmissionPolicyTypeArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyTypeArrayOutput) +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyTypeOutput) ToMutatingAdmissionPolicyTypeOutput() MutatingAdmissionPolicyTypeOutput { + return o +} + +func (o MutatingAdmissionPolicyTypeOutput) ToMutatingAdmissionPolicyTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyTypeOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o MutatingAdmissionPolicyTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicy. +func (o MutatingAdmissionPolicyTypeOutput) Spec() MutatingAdmissionPolicySpecPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyType) *MutatingAdmissionPolicySpec { return v.Spec }).(MutatingAdmissionPolicySpecPtrOutput) +} + +type MutatingAdmissionPolicyTypeArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutatingAdmissionPolicyType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyTypeArrayOutput) ToMutatingAdmissionPolicyTypeArrayOutput() MutatingAdmissionPolicyTypeArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyTypeArrayOutput) ToMutatingAdmissionPolicyTypeArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyTypeArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyTypeArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MutatingAdmissionPolicyType { + return vs[0].([]MutatingAdmissionPolicyType)[vs[1].(int)] + }).(MutatingAdmissionPolicyTypeOutput) +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec *MutatingAdmissionPolicyBindingSpec `pulumi:"spec"` +} + +// MutatingAdmissionPolicyBindingTypeInput is an input type that accepts MutatingAdmissionPolicyBindingTypeArgs and MutatingAdmissionPolicyBindingTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingTypeInput` via: +// +// MutatingAdmissionPolicyBindingTypeArgs{...} +type MutatingAdmissionPolicyBindingTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingTypeOutput() MutatingAdmissionPolicyBindingTypeOutput + ToMutatingAdmissionPolicyBindingTypeOutputWithContext(context.Context) MutatingAdmissionPolicyBindingTypeOutput +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPtrInput `pulumi:"spec"` +} + +func (MutatingAdmissionPolicyBindingTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingTypeArgs) ToMutatingAdmissionPolicyBindingTypeOutput() MutatingAdmissionPolicyBindingTypeOutput { + return i.ToMutatingAdmissionPolicyBindingTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingTypeArgs) ToMutatingAdmissionPolicyBindingTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingTypeOutput) +} + +// MutatingAdmissionPolicyBindingTypeArrayInput is an input type that accepts MutatingAdmissionPolicyBindingTypeArray and MutatingAdmissionPolicyBindingTypeArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingTypeArrayInput` via: +// +// MutatingAdmissionPolicyBindingTypeArray{ MutatingAdmissionPolicyBindingTypeArgs{...} } +type MutatingAdmissionPolicyBindingTypeArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingTypeArrayOutput() MutatingAdmissionPolicyBindingTypeArrayOutput + ToMutatingAdmissionPolicyBindingTypeArrayOutputWithContext(context.Context) MutatingAdmissionPolicyBindingTypeArrayOutput +} + +type MutatingAdmissionPolicyBindingTypeArray []MutatingAdmissionPolicyBindingTypeInput + +func (MutatingAdmissionPolicyBindingTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutatingAdmissionPolicyBindingType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingTypeArray) ToMutatingAdmissionPolicyBindingTypeArrayOutput() MutatingAdmissionPolicyBindingTypeArrayOutput { + return i.ToMutatingAdmissionPolicyBindingTypeArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingTypeArray) ToMutatingAdmissionPolicyBindingTypeArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingTypeArrayOutput) +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingTypeOutput) ToMutatingAdmissionPolicyBindingTypeOutput() MutatingAdmissionPolicyBindingTypeOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingTypeOutput) ToMutatingAdmissionPolicyBindingTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingTypeOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyBindingTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o MutatingAdmissionPolicyBindingTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyBindingTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. +func (o MutatingAdmissionPolicyBindingTypeOutput) Spec() MutatingAdmissionPolicyBindingSpecPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingType) *MutatingAdmissionPolicyBindingSpec { return v.Spec }).(MutatingAdmissionPolicyBindingSpecPtrOutput) +} + +type MutatingAdmissionPolicyBindingTypeArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutatingAdmissionPolicyBindingType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingTypeArrayOutput) ToMutatingAdmissionPolicyBindingTypeArrayOutput() MutatingAdmissionPolicyBindingTypeArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingTypeArrayOutput) ToMutatingAdmissionPolicyBindingTypeArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingTypeArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingTypeArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyBindingTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MutatingAdmissionPolicyBindingType { + return vs[0].([]MutatingAdmissionPolicyBindingType)[vs[1].(int)] + }).(MutatingAdmissionPolicyBindingTypeOutput) +} + +// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingListType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // List of PolicyBinding. + Items []MutatingAdmissionPolicyBindingType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// MutatingAdmissionPolicyBindingListTypeInput is an input type that accepts MutatingAdmissionPolicyBindingListTypeArgs and MutatingAdmissionPolicyBindingListTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingListTypeInput` via: +// +// MutatingAdmissionPolicyBindingListTypeArgs{...} +type MutatingAdmissionPolicyBindingListTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingListTypeOutput() MutatingAdmissionPolicyBindingListTypeOutput + ToMutatingAdmissionPolicyBindingListTypeOutputWithContext(context.Context) MutatingAdmissionPolicyBindingListTypeOutput +} + +// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingListTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // List of PolicyBinding. + Items MutatingAdmissionPolicyBindingTypeArrayInput `pulumi:"items"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (MutatingAdmissionPolicyBindingListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingListType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingListTypeArgs) ToMutatingAdmissionPolicyBindingListTypeOutput() MutatingAdmissionPolicyBindingListTypeOutput { + return i.ToMutatingAdmissionPolicyBindingListTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingListTypeArgs) ToMutatingAdmissionPolicyBindingListTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingListTypeOutput) +} + +// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingListTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingListType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingListTypeOutput) ToMutatingAdmissionPolicyBindingListTypeOutput() MutatingAdmissionPolicyBindingListTypeOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListTypeOutput) ToMutatingAdmissionPolicyBindingListTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListTypeOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyBindingListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// List of PolicyBinding. +func (o MutatingAdmissionPolicyBindingListTypeOutput) Items() MutatingAdmissionPolicyBindingTypeArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingListType) []MutatingAdmissionPolicyBindingType { return v.Items }).(MutatingAdmissionPolicyBindingTypeArrayOutput) +} + +// 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 +func (o MutatingAdmissionPolicyBindingListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingPatchType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec *MutatingAdmissionPolicyBindingSpecPatch `pulumi:"spec"` +} + +// MutatingAdmissionPolicyBindingPatchTypeInput is an input type that accepts MutatingAdmissionPolicyBindingPatchTypeArgs and MutatingAdmissionPolicyBindingPatchTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingPatchTypeInput` via: +// +// MutatingAdmissionPolicyBindingPatchTypeArgs{...} +type MutatingAdmissionPolicyBindingPatchTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingPatchTypeOutput() MutatingAdmissionPolicyBindingPatchTypeOutput + ToMutatingAdmissionPolicyBindingPatchTypeOutputWithContext(context.Context) MutatingAdmissionPolicyBindingPatchTypeOutput +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingPatchTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPatchPtrInput `pulumi:"spec"` +} + +func (MutatingAdmissionPolicyBindingPatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingPatchTypeArgs) ToMutatingAdmissionPolicyBindingPatchTypeOutput() MutatingAdmissionPolicyBindingPatchTypeOutput { + return i.ToMutatingAdmissionPolicyBindingPatchTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingPatchTypeArgs) ToMutatingAdmissionPolicyBindingPatchTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingPatchTypeOutput) +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingPatchTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingPatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) ToMutatingAdmissionPolicyBindingPatchTypeOutput() MutatingAdmissionPolicyBindingPatchTypeOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) ToMutatingAdmissionPolicyBindingPatchTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchTypeOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingPatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingPatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) Spec() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingPatchType) *MutatingAdmissionPolicyBindingSpecPatch { + return v.Spec + }).(MutatingAdmissionPolicyBindingSpecPatchPtrOutput) +} + +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpec struct { + // matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + MatchResources *MatchResources `pulumi:"matchResources"` + // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef *ParamRef `pulumi:"paramRef"` + // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + PolicyName *string `pulumi:"policyName"` +} + +// MutatingAdmissionPolicyBindingSpecInput is an input type that accepts MutatingAdmissionPolicyBindingSpecArgs and MutatingAdmissionPolicyBindingSpecOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingSpecInput` via: +// +// MutatingAdmissionPolicyBindingSpecArgs{...} +type MutatingAdmissionPolicyBindingSpecInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingSpecOutput() MutatingAdmissionPolicyBindingSpecOutput + ToMutatingAdmissionPolicyBindingSpecOutputWithContext(context.Context) MutatingAdmissionPolicyBindingSpecOutput +} + +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecArgs struct { + // matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + MatchResources MatchResourcesPtrInput `pulumi:"matchResources"` + // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef ParamRefPtrInput `pulumi:"paramRef"` + // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + PolicyName pulumi.StringPtrInput `pulumi:"policyName"` +} + +func (MutatingAdmissionPolicyBindingSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingSpec)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingSpecArgs) ToMutatingAdmissionPolicyBindingSpecOutput() MutatingAdmissionPolicyBindingSpecOutput { + return i.ToMutatingAdmissionPolicyBindingSpecOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingSpecArgs) ToMutatingAdmissionPolicyBindingSpecOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecOutput) +} + +func (i MutatingAdmissionPolicyBindingSpecArgs) ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingSpecArgs) ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecOutput).ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx) +} + +// MutatingAdmissionPolicyBindingSpecPtrInput is an input type that accepts MutatingAdmissionPolicyBindingSpecArgs, MutatingAdmissionPolicyBindingSpecPtr and MutatingAdmissionPolicyBindingSpecPtrOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingSpecPtrInput` via: +// +// MutatingAdmissionPolicyBindingSpecArgs{...} +// +// or: +// +// nil +type MutatingAdmissionPolicyBindingSpecPtrInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput + ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput +} + +type mutatingAdmissionPolicyBindingSpecPtrType MutatingAdmissionPolicyBindingSpecArgs + +func MutatingAdmissionPolicyBindingSpecPtr(v *MutatingAdmissionPolicyBindingSpecArgs) MutatingAdmissionPolicyBindingSpecPtrInput { + return (*mutatingAdmissionPolicyBindingSpecPtrType)(v) +} + +func (*mutatingAdmissionPolicyBindingSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingSpec)(nil)).Elem() +} + +func (i *mutatingAdmissionPolicyBindingSpecPtrType) ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(context.Background()) +} + +func (i *mutatingAdmissionPolicyBindingSpecPtrType) ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecPtrOutput) +} + +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingSpec)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingSpecOutput) ToMutatingAdmissionPolicyBindingSpecOutput() MutatingAdmissionPolicyBindingSpecOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingSpecOutput) ToMutatingAdmissionPolicyBindingSpecOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingSpecOutput) ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput { + return o.ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(context.Background()) +} + +func (o MutatingAdmissionPolicyBindingSpecOutput) ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MutatingAdmissionPolicyBindingSpec) *MutatingAdmissionPolicyBindingSpec { + return &v + }).(MutatingAdmissionPolicyBindingSpecPtrOutput) +} + +// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. +func (o MutatingAdmissionPolicyBindingSpecOutput) MatchResources() MatchResourcesPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpec) *MatchResources { return v.MatchResources }).(MatchResourcesPtrOutput) +} + +// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +func (o MutatingAdmissionPolicyBindingSpecOutput) ParamRef() ParamRefPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpec) *ParamRef { return v.ParamRef }).(ParamRefPtrOutput) +} + +// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. +func (o MutatingAdmissionPolicyBindingSpecOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpec) *string { return v.PolicyName }).(pulumi.StringPtrOutput) +} + +type MutatingAdmissionPolicyBindingSpecPtrOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingSpec)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) Elem() MutatingAdmissionPolicyBindingSpecOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpec) MutatingAdmissionPolicyBindingSpec { + if v != nil { + return *v + } + var ret MutatingAdmissionPolicyBindingSpec + return ret + }).(MutatingAdmissionPolicyBindingSpecOutput) +} + +// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) MatchResources() MatchResourcesPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpec) *MatchResources { + if v == nil { + return nil + } + return v.MatchResources + }).(MatchResourcesPtrOutput) +} + +// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) ParamRef() ParamRefPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpec) *ParamRef { + if v == nil { + return nil + } + return v.ParamRef + }).(ParamRefPtrOutput) +} + +// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpec) *string { + if v == nil { + return nil + } + return v.PolicyName + }).(pulumi.StringPtrOutput) +} + +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecPatch struct { + // matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + MatchResources *MatchResourcesPatch `pulumi:"matchResources"` + // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef *ParamRefPatch `pulumi:"paramRef"` + // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + PolicyName *string `pulumi:"policyName"` +} + +// MutatingAdmissionPolicyBindingSpecPatchInput is an input type that accepts MutatingAdmissionPolicyBindingSpecPatchArgs and MutatingAdmissionPolicyBindingSpecPatchOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingSpecPatchInput` via: +// +// MutatingAdmissionPolicyBindingSpecPatchArgs{...} +type MutatingAdmissionPolicyBindingSpecPatchInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingSpecPatchOutput() MutatingAdmissionPolicyBindingSpecPatchOutput + ToMutatingAdmissionPolicyBindingSpecPatchOutputWithContext(context.Context) MutatingAdmissionPolicyBindingSpecPatchOutput +} + +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecPatchArgs struct { + // matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + MatchResources MatchResourcesPatchPtrInput `pulumi:"matchResources"` + // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef ParamRefPatchPtrInput `pulumi:"paramRef"` + // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + PolicyName pulumi.StringPtrInput `pulumi:"policyName"` +} + +func (MutatingAdmissionPolicyBindingSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingSpecPatchArgs) ToMutatingAdmissionPolicyBindingSpecPatchOutput() MutatingAdmissionPolicyBindingSpecPatchOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPatchOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingSpecPatchArgs) ToMutatingAdmissionPolicyBindingSpecPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecPatchOutput) +} + +func (i MutatingAdmissionPolicyBindingSpecPatchArgs) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingSpecPatchArgs) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecPatchOutput).ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx) +} + +// MutatingAdmissionPolicyBindingSpecPatchPtrInput is an input type that accepts MutatingAdmissionPolicyBindingSpecPatchArgs, MutatingAdmissionPolicyBindingSpecPatchPtr and MutatingAdmissionPolicyBindingSpecPatchPtrOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingSpecPatchPtrInput` via: +// +// MutatingAdmissionPolicyBindingSpecPatchArgs{...} +// +// or: +// +// nil +type MutatingAdmissionPolicyBindingSpecPatchPtrInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput + ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput +} + +type mutatingAdmissionPolicyBindingSpecPatchPtrType MutatingAdmissionPolicyBindingSpecPatchArgs + +func MutatingAdmissionPolicyBindingSpecPatchPtr(v *MutatingAdmissionPolicyBindingSpecPatchArgs) MutatingAdmissionPolicyBindingSpecPatchPtrInput { + return (*mutatingAdmissionPolicyBindingSpecPatchPtrType)(v) +} + +func (*mutatingAdmissionPolicyBindingSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingSpecPatch)(nil)).Elem() +} + +func (i *mutatingAdmissionPolicyBindingSpecPatchPtrType) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *mutatingAdmissionPolicyBindingSpecPatchPtrType) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecPatchPtrOutput) +} + +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecPatchOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ToMutatingAdmissionPolicyBindingSpecPatchOutput() MutatingAdmissionPolicyBindingSpecPatchOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ToMutatingAdmissionPolicyBindingSpecPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o.ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(context.Background()) +} + +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MutatingAdmissionPolicyBindingSpecPatch) *MutatingAdmissionPolicyBindingSpecPatch { + return &v + }).(MutatingAdmissionPolicyBindingSpecPatchPtrOutput) +} + +// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) MatchResources() MatchResourcesPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpecPatch) *MatchResourcesPatch { return v.MatchResources }).(MatchResourcesPatchPtrOutput) +} + +// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ParamRef() ParamRefPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpecPatch) *ParamRefPatch { return v.ParamRef }).(ParamRefPatchPtrOutput) +} + +// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpecPatch) *string { return v.PolicyName }).(pulumi.StringPtrOutput) +} + +type MutatingAdmissionPolicyBindingSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingSpecPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) Elem() MutatingAdmissionPolicyBindingSpecPatchOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpecPatch) MutatingAdmissionPolicyBindingSpecPatch { + if v != nil { + return *v + } + var ret MutatingAdmissionPolicyBindingSpecPatch + return ret + }).(MutatingAdmissionPolicyBindingSpecPatchOutput) +} + +// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) MatchResources() MatchResourcesPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpecPatch) *MatchResourcesPatch { + if v == nil { + return nil + } + return v.MatchResources + }).(MatchResourcesPatchPtrOutput) +} + +// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) ParamRef() ParamRefPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpecPatch) *ParamRefPatch { + if v == nil { + return nil + } + return v.ParamRef + }).(ParamRefPatchPtrOutput) +} + +// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpecPatch) *string { + if v == nil { + return nil + } + return v.PolicyName + }).(pulumi.StringPtrOutput) +} + +// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. +type MutatingAdmissionPolicyListType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // List of ValidatingAdmissionPolicy. + Items []MutatingAdmissionPolicyType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// MutatingAdmissionPolicyListTypeInput is an input type that accepts MutatingAdmissionPolicyListTypeArgs and MutatingAdmissionPolicyListTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyListTypeInput` via: +// +// MutatingAdmissionPolicyListTypeArgs{...} +type MutatingAdmissionPolicyListTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyListTypeOutput() MutatingAdmissionPolicyListTypeOutput + ToMutatingAdmissionPolicyListTypeOutputWithContext(context.Context) MutatingAdmissionPolicyListTypeOutput +} + +// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. +type MutatingAdmissionPolicyListTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // List of ValidatingAdmissionPolicy. + Items MutatingAdmissionPolicyTypeArrayInput `pulumi:"items"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (MutatingAdmissionPolicyListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyListType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyListTypeArgs) ToMutatingAdmissionPolicyListTypeOutput() MutatingAdmissionPolicyListTypeOutput { + return i.ToMutatingAdmissionPolicyListTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyListTypeArgs) ToMutatingAdmissionPolicyListTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyListTypeOutput) +} + +// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. +type MutatingAdmissionPolicyListTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyListType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyListTypeOutput) ToMutatingAdmissionPolicyListTypeOutput() MutatingAdmissionPolicyListTypeOutput { + return o +} + +func (o MutatingAdmissionPolicyListTypeOutput) ToMutatingAdmissionPolicyListTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListTypeOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// List of ValidatingAdmissionPolicy. +func (o MutatingAdmissionPolicyListTypeOutput) Items() MutatingAdmissionPolicyTypeArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyListType) []MutatingAdmissionPolicyType { return v.Items }).(MutatingAdmissionPolicyTypeArrayOutput) +} + +// 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 +func (o MutatingAdmissionPolicyListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyPatchType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec *MutatingAdmissionPolicySpecPatch `pulumi:"spec"` +} + +// MutatingAdmissionPolicyPatchTypeInput is an input type that accepts MutatingAdmissionPolicyPatchTypeArgs and MutatingAdmissionPolicyPatchTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyPatchTypeInput` via: +// +// MutatingAdmissionPolicyPatchTypeArgs{...} +type MutatingAdmissionPolicyPatchTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyPatchTypeOutput() MutatingAdmissionPolicyPatchTypeOutput + ToMutatingAdmissionPolicyPatchTypeOutputWithContext(context.Context) MutatingAdmissionPolicyPatchTypeOutput +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyPatchTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPatchPtrInput `pulumi:"spec"` +} + +func (MutatingAdmissionPolicyPatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyPatchType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyPatchTypeArgs) ToMutatingAdmissionPolicyPatchTypeOutput() MutatingAdmissionPolicyPatchTypeOutput { + return i.ToMutatingAdmissionPolicyPatchTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyPatchTypeArgs) ToMutatingAdmissionPolicyPatchTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyPatchTypeOutput) +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyPatchTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyPatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyPatchType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyPatchTypeOutput) ToMutatingAdmissionPolicyPatchTypeOutput() MutatingAdmissionPolicyPatchTypeOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchTypeOutput) ToMutatingAdmissionPolicyPatchTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchTypeOutput { + return o +} + +// 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 +func (o MutatingAdmissionPolicyPatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyPatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o MutatingAdmissionPolicyPatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyPatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicy. +func (o MutatingAdmissionPolicyPatchTypeOutput) Spec() MutatingAdmissionPolicySpecPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyPatchType) *MutatingAdmissionPolicySpecPatch { return v.Spec }).(MutatingAdmissionPolicySpecPatchPtrOutput) +} + +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpec struct { + // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + // + // A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + // + // failurePolicy does not define how validations that evaluate to false are handled. + // + // Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy *string `pulumi:"failurePolicy"` + // matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + // + // If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + // + // The exact matching logic is (in order): + // 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + // 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + // 3. If any matchCondition evaluates to an error (but none are FALSE): + // - If failurePolicy=Fail, reject the request + // - If failurePolicy=Ignore, the policy is skipped + MatchConditions []MatchCondition `pulumi:"matchConditions"` + // matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + MatchConstraints *MatchResources `pulumi:"matchConstraints"` + // mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + Mutations []Mutation `pulumi:"mutations"` + // paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + ParamKind *ParamKind `pulumi:"paramKind"` + // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + // + // Never: These mutations will not be called more than once per binding in a single admission evaluation. + // + // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + ReinvocationPolicy *string `pulumi:"reinvocationPolicy"` + // variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + // + // The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + Variables []Variable `pulumi:"variables"` +} + +// MutatingAdmissionPolicySpecInput is an input type that accepts MutatingAdmissionPolicySpecArgs and MutatingAdmissionPolicySpecOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicySpecInput` via: +// +// MutatingAdmissionPolicySpecArgs{...} +type MutatingAdmissionPolicySpecInput interface { + pulumi.Input + + ToMutatingAdmissionPolicySpecOutput() MutatingAdmissionPolicySpecOutput + ToMutatingAdmissionPolicySpecOutputWithContext(context.Context) MutatingAdmissionPolicySpecOutput +} + +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecArgs struct { + // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + // + // A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + // + // failurePolicy does not define how validations that evaluate to false are handled. + // + // Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy pulumi.StringPtrInput `pulumi:"failurePolicy"` + // matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + // + // If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + // + // The exact matching logic is (in order): + // 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + // 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + // 3. If any matchCondition evaluates to an error (but none are FALSE): + // - If failurePolicy=Fail, reject the request + // - If failurePolicy=Ignore, the policy is skipped + MatchConditions MatchConditionArrayInput `pulumi:"matchConditions"` + // matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + MatchConstraints MatchResourcesPtrInput `pulumi:"matchConstraints"` + // mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + Mutations MutationArrayInput `pulumi:"mutations"` + // paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + ParamKind ParamKindPtrInput `pulumi:"paramKind"` + // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + // + // Never: These mutations will not be called more than once per binding in a single admission evaluation. + // + // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + ReinvocationPolicy pulumi.StringPtrInput `pulumi:"reinvocationPolicy"` + // variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + // + // The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + Variables VariableArrayInput `pulumi:"variables"` +} + +func (MutatingAdmissionPolicySpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicySpec)(nil)).Elem() +} + +func (i MutatingAdmissionPolicySpecArgs) ToMutatingAdmissionPolicySpecOutput() MutatingAdmissionPolicySpecOutput { + return i.ToMutatingAdmissionPolicySpecOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicySpecArgs) ToMutatingAdmissionPolicySpecOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecOutput) +} + +func (i MutatingAdmissionPolicySpecArgs) ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput { + return i.ToMutatingAdmissionPolicySpecPtrOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicySpecArgs) ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecOutput).ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx) +} + +// MutatingAdmissionPolicySpecPtrInput is an input type that accepts MutatingAdmissionPolicySpecArgs, MutatingAdmissionPolicySpecPtr and MutatingAdmissionPolicySpecPtrOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicySpecPtrInput` via: +// +// MutatingAdmissionPolicySpecArgs{...} +// +// or: +// +// nil +type MutatingAdmissionPolicySpecPtrInput interface { + pulumi.Input + + ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput + ToMutatingAdmissionPolicySpecPtrOutputWithContext(context.Context) MutatingAdmissionPolicySpecPtrOutput +} + +type mutatingAdmissionPolicySpecPtrType MutatingAdmissionPolicySpecArgs + +func MutatingAdmissionPolicySpecPtr(v *MutatingAdmissionPolicySpecArgs) MutatingAdmissionPolicySpecPtrInput { + return (*mutatingAdmissionPolicySpecPtrType)(v) +} + +func (*mutatingAdmissionPolicySpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicySpec)(nil)).Elem() +} + +func (i *mutatingAdmissionPolicySpecPtrType) ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput { + return i.ToMutatingAdmissionPolicySpecPtrOutputWithContext(context.Background()) +} + +func (i *mutatingAdmissionPolicySpecPtrType) ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecPtrOutput) +} + +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicySpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicySpec)(nil)).Elem() +} + +func (o MutatingAdmissionPolicySpecOutput) ToMutatingAdmissionPolicySpecOutput() MutatingAdmissionPolicySpecOutput { + return o +} + +func (o MutatingAdmissionPolicySpecOutput) ToMutatingAdmissionPolicySpecOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecOutput { + return o +} + +func (o MutatingAdmissionPolicySpecOutput) ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput { + return o.ToMutatingAdmissionPolicySpecPtrOutputWithContext(context.Background()) +} + +func (o MutatingAdmissionPolicySpecOutput) ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MutatingAdmissionPolicySpec) *MutatingAdmissionPolicySpec { + return &v + }).(MutatingAdmissionPolicySpecPtrOutput) +} + +// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. +// +// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. +// +// failurePolicy does not define how validations that evaluate to false are handled. +// +// Allowed values are Ignore or Fail. Defaults to Fail. +func (o MutatingAdmissionPolicySpecOutput) FailurePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) *string { return v.FailurePolicy }).(pulumi.StringPtrOutput) +} + +// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. +// +// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. +// +// The exact matching logic is (in order): +// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. +// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. +// 3. If any matchCondition evaluates to an error (but none are FALSE): +// - If failurePolicy=Fail, reject the request +// - If failurePolicy=Ignore, the policy is skipped +func (o MutatingAdmissionPolicySpecOutput) MatchConditions() MatchConditionArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) []MatchCondition { return v.MatchConditions }).(MatchConditionArrayOutput) +} + +// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. +func (o MutatingAdmissionPolicySpecOutput) MatchConstraints() MatchResourcesPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) *MatchResources { return v.MatchConstraints }).(MatchResourcesPtrOutput) +} + +// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. +func (o MutatingAdmissionPolicySpecOutput) Mutations() MutationArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) []Mutation { return v.Mutations }).(MutationArrayOutput) +} + +// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. +func (o MutatingAdmissionPolicySpecOutput) ParamKind() ParamKindPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) *ParamKind { return v.ParamKind }).(ParamKindPtrOutput) +} + +// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". +// +// Never: These mutations will not be called more than once per binding in a single admission evaluation. +// +// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. +func (o MutatingAdmissionPolicySpecOutput) ReinvocationPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) *string { return v.ReinvocationPolicy }).(pulumi.StringPtrOutput) +} + +// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. +// +// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. +func (o MutatingAdmissionPolicySpecOutput) Variables() VariableArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) []Variable { return v.Variables }).(VariableArrayOutput) +} + +type MutatingAdmissionPolicySpecPtrOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicySpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicySpec)(nil)).Elem() +} + +func (o MutatingAdmissionPolicySpecPtrOutput) ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput { + return o +} + +func (o MutatingAdmissionPolicySpecPtrOutput) ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPtrOutput { + return o +} + +func (o MutatingAdmissionPolicySpecPtrOutput) Elem() MutatingAdmissionPolicySpecOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) MutatingAdmissionPolicySpec { + if v != nil { + return *v + } + var ret MutatingAdmissionPolicySpec + return ret + }).(MutatingAdmissionPolicySpecOutput) +} + +// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. +// +// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. +// +// failurePolicy does not define how validations that evaluate to false are handled. +// +// Allowed values are Ignore or Fail. Defaults to Fail. +func (o MutatingAdmissionPolicySpecPtrOutput) FailurePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) *string { + if v == nil { + return nil + } + return v.FailurePolicy + }).(pulumi.StringPtrOutput) +} + +// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. +// +// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. +// +// The exact matching logic is (in order): +// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. +// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. +// 3. If any matchCondition evaluates to an error (but none are FALSE): +// - If failurePolicy=Fail, reject the request +// - If failurePolicy=Ignore, the policy is skipped +func (o MutatingAdmissionPolicySpecPtrOutput) MatchConditions() MatchConditionArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) []MatchCondition { + if v == nil { + return nil + } + return v.MatchConditions + }).(MatchConditionArrayOutput) +} + +// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. +func (o MutatingAdmissionPolicySpecPtrOutput) MatchConstraints() MatchResourcesPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) *MatchResources { + if v == nil { + return nil + } + return v.MatchConstraints + }).(MatchResourcesPtrOutput) +} + +// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. +func (o MutatingAdmissionPolicySpecPtrOutput) Mutations() MutationArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) []Mutation { + if v == nil { + return nil + } + return v.Mutations + }).(MutationArrayOutput) +} + +// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. +func (o MutatingAdmissionPolicySpecPtrOutput) ParamKind() ParamKindPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) *ParamKind { + if v == nil { + return nil + } + return v.ParamKind + }).(ParamKindPtrOutput) +} + +// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". +// +// Never: These mutations will not be called more than once per binding in a single admission evaluation. +// +// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. +func (o MutatingAdmissionPolicySpecPtrOutput) ReinvocationPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) *string { + if v == nil { + return nil + } + return v.ReinvocationPolicy + }).(pulumi.StringPtrOutput) +} + +// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. +// +// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. +func (o MutatingAdmissionPolicySpecPtrOutput) Variables() VariableArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) []Variable { + if v == nil { + return nil + } + return v.Variables + }).(VariableArrayOutput) +} + +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecPatch struct { + // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + // + // A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + // + // failurePolicy does not define how validations that evaluate to false are handled. + // + // Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy *string `pulumi:"failurePolicy"` + // matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + // + // If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + // + // The exact matching logic is (in order): + // 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + // 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + // 3. If any matchCondition evaluates to an error (but none are FALSE): + // - If failurePolicy=Fail, reject the request + // - If failurePolicy=Ignore, the policy is skipped + MatchConditions []MatchConditionPatch `pulumi:"matchConditions"` + // matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + MatchConstraints *MatchResourcesPatch `pulumi:"matchConstraints"` + // mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + Mutations []MutationPatch `pulumi:"mutations"` + // paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + ParamKind *ParamKindPatch `pulumi:"paramKind"` + // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + // + // Never: These mutations will not be called more than once per binding in a single admission evaluation. + // + // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + ReinvocationPolicy *string `pulumi:"reinvocationPolicy"` + // variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + // + // The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + Variables []VariablePatch `pulumi:"variables"` +} + +// MutatingAdmissionPolicySpecPatchInput is an input type that accepts MutatingAdmissionPolicySpecPatchArgs and MutatingAdmissionPolicySpecPatchOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicySpecPatchInput` via: +// +// MutatingAdmissionPolicySpecPatchArgs{...} +type MutatingAdmissionPolicySpecPatchInput interface { + pulumi.Input + + ToMutatingAdmissionPolicySpecPatchOutput() MutatingAdmissionPolicySpecPatchOutput + ToMutatingAdmissionPolicySpecPatchOutputWithContext(context.Context) MutatingAdmissionPolicySpecPatchOutput +} + +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecPatchArgs struct { + // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + // + // A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + // + // failurePolicy does not define how validations that evaluate to false are handled. + // + // Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy pulumi.StringPtrInput `pulumi:"failurePolicy"` + // matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + // + // If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + // + // The exact matching logic is (in order): + // 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + // 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + // 3. If any matchCondition evaluates to an error (but none are FALSE): + // - If failurePolicy=Fail, reject the request + // - If failurePolicy=Ignore, the policy is skipped + MatchConditions MatchConditionPatchArrayInput `pulumi:"matchConditions"` + // matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + MatchConstraints MatchResourcesPatchPtrInput `pulumi:"matchConstraints"` + // mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + Mutations MutationPatchArrayInput `pulumi:"mutations"` + // paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + ParamKind ParamKindPatchPtrInput `pulumi:"paramKind"` + // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + // + // Never: These mutations will not be called more than once per binding in a single admission evaluation. + // + // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + ReinvocationPolicy pulumi.StringPtrInput `pulumi:"reinvocationPolicy"` + // variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + // + // The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + Variables VariablePatchArrayInput `pulumi:"variables"` +} + +func (MutatingAdmissionPolicySpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicySpecPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicySpecPatchArgs) ToMutatingAdmissionPolicySpecPatchOutput() MutatingAdmissionPolicySpecPatchOutput { + return i.ToMutatingAdmissionPolicySpecPatchOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicySpecPatchArgs) ToMutatingAdmissionPolicySpecPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecPatchOutput) +} + +func (i MutatingAdmissionPolicySpecPatchArgs) ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput { + return i.ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicySpecPatchArgs) ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecPatchOutput).ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx) +} + +// MutatingAdmissionPolicySpecPatchPtrInput is an input type that accepts MutatingAdmissionPolicySpecPatchArgs, MutatingAdmissionPolicySpecPatchPtr and MutatingAdmissionPolicySpecPatchPtrOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicySpecPatchPtrInput` via: +// +// MutatingAdmissionPolicySpecPatchArgs{...} +// +// or: +// +// nil +type MutatingAdmissionPolicySpecPatchPtrInput interface { + pulumi.Input + + ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput + ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(context.Context) MutatingAdmissionPolicySpecPatchPtrOutput +} + +type mutatingAdmissionPolicySpecPatchPtrType MutatingAdmissionPolicySpecPatchArgs + +func MutatingAdmissionPolicySpecPatchPtr(v *MutatingAdmissionPolicySpecPatchArgs) MutatingAdmissionPolicySpecPatchPtrInput { + return (*mutatingAdmissionPolicySpecPatchPtrType)(v) +} + +func (*mutatingAdmissionPolicySpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicySpecPatch)(nil)).Elem() +} + +func (i *mutatingAdmissionPolicySpecPatchPtrType) ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput { + return i.ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *mutatingAdmissionPolicySpecPatchPtrType) ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecPatchPtrOutput) +} + +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecPatchOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicySpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicySpecPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicySpecPatchOutput) ToMutatingAdmissionPolicySpecPatchOutput() MutatingAdmissionPolicySpecPatchOutput { + return o +} + +func (o MutatingAdmissionPolicySpecPatchOutput) ToMutatingAdmissionPolicySpecPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchOutput { + return o +} + +func (o MutatingAdmissionPolicySpecPatchOutput) ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput { + return o.ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(context.Background()) +} + +func (o MutatingAdmissionPolicySpecPatchOutput) ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MutatingAdmissionPolicySpecPatch) *MutatingAdmissionPolicySpecPatch { + return &v + }).(MutatingAdmissionPolicySpecPatchPtrOutput) +} + +// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. +// +// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. +// +// failurePolicy does not define how validations that evaluate to false are handled. +// +// Allowed values are Ignore or Fail. Defaults to Fail. +func (o MutatingAdmissionPolicySpecPatchOutput) FailurePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) *string { return v.FailurePolicy }).(pulumi.StringPtrOutput) +} + +// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. +// +// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. +// +// The exact matching logic is (in order): +// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. +// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. +// 3. If any matchCondition evaluates to an error (but none are FALSE): +// - If failurePolicy=Fail, reject the request +// - If failurePolicy=Ignore, the policy is skipped +func (o MutatingAdmissionPolicySpecPatchOutput) MatchConditions() MatchConditionPatchArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) []MatchConditionPatch { return v.MatchConditions }).(MatchConditionPatchArrayOutput) +} + +// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. +func (o MutatingAdmissionPolicySpecPatchOutput) MatchConstraints() MatchResourcesPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) *MatchResourcesPatch { return v.MatchConstraints }).(MatchResourcesPatchPtrOutput) +} + +// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. +func (o MutatingAdmissionPolicySpecPatchOutput) Mutations() MutationPatchArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) []MutationPatch { return v.Mutations }).(MutationPatchArrayOutput) +} + +// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. +func (o MutatingAdmissionPolicySpecPatchOutput) ParamKind() ParamKindPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) *ParamKindPatch { return v.ParamKind }).(ParamKindPatchPtrOutput) +} + +// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". +// +// Never: These mutations will not be called more than once per binding in a single admission evaluation. +// +// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. +func (o MutatingAdmissionPolicySpecPatchOutput) ReinvocationPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) *string { return v.ReinvocationPolicy }).(pulumi.StringPtrOutput) +} + +// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. +// +// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. +func (o MutatingAdmissionPolicySpecPatchOutput) Variables() VariablePatchArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) []VariablePatch { return v.Variables }).(VariablePatchArrayOutput) +} + +type MutatingAdmissionPolicySpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicySpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicySpecPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicySpecPatchPtrOutput) ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput { + return o +} + +func (o MutatingAdmissionPolicySpecPatchPtrOutput) ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchPtrOutput { + return o +} + +func (o MutatingAdmissionPolicySpecPatchPtrOutput) Elem() MutatingAdmissionPolicySpecPatchOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) MutatingAdmissionPolicySpecPatch { + if v != nil { + return *v + } + var ret MutatingAdmissionPolicySpecPatch + return ret + }).(MutatingAdmissionPolicySpecPatchOutput) +} + +// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. +// +// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. +// +// failurePolicy does not define how validations that evaluate to false are handled. +// +// Allowed values are Ignore or Fail. Defaults to Fail. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) FailurePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) *string { + if v == nil { + return nil + } + return v.FailurePolicy + }).(pulumi.StringPtrOutput) +} + +// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. +// +// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. +// +// The exact matching logic is (in order): +// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. +// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. +// 3. If any matchCondition evaluates to an error (but none are FALSE): +// - If failurePolicy=Fail, reject the request +// - If failurePolicy=Ignore, the policy is skipped +func (o MutatingAdmissionPolicySpecPatchPtrOutput) MatchConditions() MatchConditionPatchArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) []MatchConditionPatch { + if v == nil { + return nil + } + return v.MatchConditions + }).(MatchConditionPatchArrayOutput) +} + +// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) MatchConstraints() MatchResourcesPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) *MatchResourcesPatch { + if v == nil { + return nil + } + return v.MatchConstraints + }).(MatchResourcesPatchPtrOutput) +} + +// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) Mutations() MutationPatchArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) []MutationPatch { + if v == nil { + return nil + } + return v.Mutations + }).(MutationPatchArrayOutput) +} + +// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) ParamKind() ParamKindPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) *ParamKindPatch { + if v == nil { + return nil + } + return v.ParamKind + }).(ParamKindPatchPtrOutput) +} + +// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". +// +// Never: These mutations will not be called more than once per binding in a single admission evaluation. +// +// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) ReinvocationPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) *string { + if v == nil { + return nil + } + return v.ReinvocationPolicy + }).(pulumi.StringPtrOutput) +} + +// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. +// +// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) Variables() VariablePatchArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) []VariablePatch { + if v == nil { + return nil + } + return v.Variables + }).(VariablePatchArrayOutput) +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type Mutation struct { + // applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + ApplyConfiguration *ApplyConfiguration `pulumi:"applyConfiguration"` + // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + JsonPatch *JSONPatch `pulumi:"jsonPatch"` + // patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + PatchType string `pulumi:"patchType"` +} + +// MutationInput is an input type that accepts MutationArgs and MutationOutput values. +// You can construct a concrete instance of `MutationInput` via: +// +// MutationArgs{...} +type MutationInput interface { + pulumi.Input + + ToMutationOutput() MutationOutput + ToMutationOutputWithContext(context.Context) MutationOutput +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationArgs struct { + // applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + ApplyConfiguration ApplyConfigurationPtrInput `pulumi:"applyConfiguration"` + // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + JsonPatch JSONPatchPtrInput `pulumi:"jsonPatch"` + // patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + PatchType pulumi.StringInput `pulumi:"patchType"` +} + +func (MutationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Mutation)(nil)).Elem() +} + +func (i MutationArgs) ToMutationOutput() MutationOutput { + return i.ToMutationOutputWithContext(context.Background()) +} + +func (i MutationArgs) ToMutationOutputWithContext(ctx context.Context) MutationOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutationOutput) +} + +// MutationArrayInput is an input type that accepts MutationArray and MutationArrayOutput values. +// You can construct a concrete instance of `MutationArrayInput` via: +// +// MutationArray{ MutationArgs{...} } +type MutationArrayInput interface { + pulumi.Input + + ToMutationArrayOutput() MutationArrayOutput + ToMutationArrayOutputWithContext(context.Context) MutationArrayOutput +} + +type MutationArray []MutationInput + +func (MutationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]Mutation)(nil)).Elem() +} + +func (i MutationArray) ToMutationArrayOutput() MutationArrayOutput { + return i.ToMutationArrayOutputWithContext(context.Background()) +} + +func (i MutationArray) ToMutationArrayOutputWithContext(ctx context.Context) MutationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutationArrayOutput) +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationOutput struct{ *pulumi.OutputState } + +func (MutationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Mutation)(nil)).Elem() +} + +func (o MutationOutput) ToMutationOutput() MutationOutput { + return o +} + +func (o MutationOutput) ToMutationOutputWithContext(ctx context.Context) MutationOutput { + return o +} + +// applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. +func (o MutationOutput) ApplyConfiguration() ApplyConfigurationPtrOutput { + return o.ApplyT(func(v Mutation) *ApplyConfiguration { return v.ApplyConfiguration }).(ApplyConfigurationPtrOutput) +} + +// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. +func (o MutationOutput) JsonPatch() JSONPatchPtrOutput { + return o.ApplyT(func(v Mutation) *JSONPatch { return v.JsonPatch }).(JSONPatchPtrOutput) +} + +// patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. +func (o MutationOutput) PatchType() pulumi.StringOutput { + return o.ApplyT(func(v Mutation) string { return v.PatchType }).(pulumi.StringOutput) +} + +type MutationArrayOutput struct{ *pulumi.OutputState } + +func (MutationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Mutation)(nil)).Elem() +} + +func (o MutationArrayOutput) ToMutationArrayOutput() MutationArrayOutput { + return o +} + +func (o MutationArrayOutput) ToMutationArrayOutputWithContext(ctx context.Context) MutationArrayOutput { + return o +} + +func (o MutationArrayOutput) Index(i pulumi.IntInput) MutationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Mutation { + return vs[0].([]Mutation)[vs[1].(int)] + }).(MutationOutput) +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationPatch struct { + // applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + ApplyConfiguration *ApplyConfigurationPatch `pulumi:"applyConfiguration"` + // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + JsonPatch *JSONPatchPatch `pulumi:"jsonPatch"` + // patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + PatchType *string `pulumi:"patchType"` +} + +// MutationPatchInput is an input type that accepts MutationPatchArgs and MutationPatchOutput values. +// You can construct a concrete instance of `MutationPatchInput` via: +// +// MutationPatchArgs{...} +type MutationPatchInput interface { + pulumi.Input + + ToMutationPatchOutput() MutationPatchOutput + ToMutationPatchOutputWithContext(context.Context) MutationPatchOutput +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationPatchArgs struct { + // applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + ApplyConfiguration ApplyConfigurationPatchPtrInput `pulumi:"applyConfiguration"` + // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + JsonPatch JSONPatchPatchPtrInput `pulumi:"jsonPatch"` + // patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + PatchType pulumi.StringPtrInput `pulumi:"patchType"` +} + +func (MutationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutationPatch)(nil)).Elem() } -func (o MatchResourcesPatchOutput) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v MatchResourcesPatch) *MatchResourcesPatch { - return &v - }).(MatchResourcesPatchPtrOutput) +func (i MutationPatchArgs) ToMutationPatchOutput() MutationPatchOutput { + return i.ToMutationPatchOutputWithContext(context.Background()) } -// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -func (o MatchResourcesPatchOutput) ExcludeResourceRules() NamedRuleWithOperationsPatchArrayOutput { - return o.ApplyT(func(v MatchResourcesPatch) []NamedRuleWithOperationsPatch { return v.ExcludeResourceRules }).(NamedRuleWithOperationsPatchArrayOutput) +func (i MutationPatchArgs) ToMutationPatchOutputWithContext(ctx context.Context) MutationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutationPatchOutput) } -// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". -// -// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. -// -// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// MutationPatchArrayInput is an input type that accepts MutationPatchArray and MutationPatchArrayOutput values. +// You can construct a concrete instance of `MutationPatchArrayInput` via: // -// Defaults to "Equivalent" -func (o MatchResourcesPatchOutput) MatchPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v MatchResourcesPatch) *string { return v.MatchPolicy }).(pulumi.StringPtrOutput) +// MutationPatchArray{ MutationPatchArgs{...} } +type MutationPatchArrayInput interface { + pulumi.Input + + ToMutationPatchArrayOutput() MutationPatchArrayOutput + ToMutationPatchArrayOutputWithContext(context.Context) MutationPatchArrayOutput } -// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. -// -// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "runlevel", -// "operator": "NotIn", -// "values": [ -// "0", -// "1" -// ] -// } -// ] -// } -// -// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "environment", -// "operator": "In", -// "values": [ -// "prod", -// "staging" -// ] -// } -// ] -// } -// -// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. -// -// Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPatchOutput) NamespaceSelector() metav1.LabelSelectorPatchPtrOutput { - return o.ApplyT(func(v MatchResourcesPatch) *metav1.LabelSelectorPatch { return v.NamespaceSelector }).(metav1.LabelSelectorPatchPtrOutput) +type MutationPatchArray []MutationPatchInput + +func (MutationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutationPatch)(nil)).Elem() } -// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPatchOutput) ObjectSelector() metav1.LabelSelectorPatchPtrOutput { - return o.ApplyT(func(v MatchResourcesPatch) *metav1.LabelSelectorPatch { return v.ObjectSelector }).(metav1.LabelSelectorPatchPtrOutput) +func (i MutationPatchArray) ToMutationPatchArrayOutput() MutationPatchArrayOutput { + return i.ToMutationPatchArrayOutputWithContext(context.Background()) } -// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. -func (o MatchResourcesPatchOutput) ResourceRules() NamedRuleWithOperationsPatchArrayOutput { - return o.ApplyT(func(v MatchResourcesPatch) []NamedRuleWithOperationsPatch { return v.ResourceRules }).(NamedRuleWithOperationsPatchArrayOutput) +func (i MutationPatchArray) ToMutationPatchArrayOutputWithContext(ctx context.Context) MutationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutationPatchArrayOutput) } -type MatchResourcesPatchPtrOutput struct{ *pulumi.OutputState } +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationPatchOutput struct{ *pulumi.OutputState } -func (MatchResourcesPatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MatchResourcesPatch)(nil)).Elem() +func (MutationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutationPatch)(nil)).Elem() } -func (o MatchResourcesPatchPtrOutput) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { +func (o MutationPatchOutput) ToMutationPatchOutput() MutationPatchOutput { return o } -func (o MatchResourcesPatchPtrOutput) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { +func (o MutationPatchOutput) ToMutationPatchOutputWithContext(ctx context.Context) MutationPatchOutput { return o } -func (o MatchResourcesPatchPtrOutput) Elem() MatchResourcesPatchOutput { - return o.ApplyT(func(v *MatchResourcesPatch) MatchResourcesPatch { - if v != nil { - return *v - } - var ret MatchResourcesPatch - return ret - }).(MatchResourcesPatchOutput) +// applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. +func (o MutationPatchOutput) ApplyConfiguration() ApplyConfigurationPatchPtrOutput { + return o.ApplyT(func(v MutationPatch) *ApplyConfigurationPatch { return v.ApplyConfiguration }).(ApplyConfigurationPatchPtrOutput) } -// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -func (o MatchResourcesPatchPtrOutput) ExcludeResourceRules() NamedRuleWithOperationsPatchArrayOutput { - return o.ApplyT(func(v *MatchResourcesPatch) []NamedRuleWithOperationsPatch { - if v == nil { - return nil - } - return v.ExcludeResourceRules - }).(NamedRuleWithOperationsPatchArrayOutput) +// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. +func (o MutationPatchOutput) JsonPatch() JSONPatchPatchPtrOutput { + return o.ApplyT(func(v MutationPatch) *JSONPatchPatch { return v.JsonPatch }).(JSONPatchPatchPtrOutput) } -// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". -// -// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. -// -// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. -// -// Defaults to "Equivalent" -func (o MatchResourcesPatchPtrOutput) MatchPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MatchResourcesPatch) *string { - if v == nil { - return nil - } - return v.MatchPolicy - }).(pulumi.StringPtrOutput) +// patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. +func (o MutationPatchOutput) PatchType() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutationPatch) *string { return v.PatchType }).(pulumi.StringPtrOutput) } -// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. -// -// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "runlevel", -// "operator": "NotIn", -// "values": [ -// "0", -// "1" -// ] -// } -// ] -// } -// -// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "environment", -// "operator": "In", -// "values": [ -// "prod", -// "staging" -// ] -// } -// ] -// } -// -// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. -// -// Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPatchPtrOutput) NamespaceSelector() metav1.LabelSelectorPatchPtrOutput { - return o.ApplyT(func(v *MatchResourcesPatch) *metav1.LabelSelectorPatch { - if v == nil { - return nil - } - return v.NamespaceSelector - }).(metav1.LabelSelectorPatchPtrOutput) +type MutationPatchArrayOutput struct{ *pulumi.OutputState } + +func (MutationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutationPatch)(nil)).Elem() } -// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPatchPtrOutput) ObjectSelector() metav1.LabelSelectorPatchPtrOutput { - return o.ApplyT(func(v *MatchResourcesPatch) *metav1.LabelSelectorPatch { - if v == nil { - return nil - } - return v.ObjectSelector - }).(metav1.LabelSelectorPatchPtrOutput) +func (o MutationPatchArrayOutput) ToMutationPatchArrayOutput() MutationPatchArrayOutput { + return o } -// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. -func (o MatchResourcesPatchPtrOutput) ResourceRules() NamedRuleWithOperationsPatchArrayOutput { - return o.ApplyT(func(v *MatchResourcesPatch) []NamedRuleWithOperationsPatch { - if v == nil { - return nil - } - return v.ResourceRules - }).(NamedRuleWithOperationsPatchArrayOutput) +func (o MutationPatchArrayOutput) ToMutationPatchArrayOutputWithContext(ctx context.Context) MutationPatchArrayOutput { + return o +} + +func (o MutationPatchArrayOutput) Index(i pulumi.IntInput) MutationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MutationPatch { + return vs[0].([]MutationPatch)[vs[1].(int)] + }).(MutationPatchOutput) } // NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. @@ -3077,10 +6153,6 @@ func (o ValidatingAdmissionPolicyTypeArrayOutput) Index(i pulumi.IntInput) Valid } // ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. -// -// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. -// -// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. type ValidatingAdmissionPolicyBindingType struct { // 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 ApiVersion *string `pulumi:"apiVersion"` @@ -3104,10 +6176,6 @@ type ValidatingAdmissionPolicyBindingTypeInput interface { } // ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. -// -// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. -// -// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. type ValidatingAdmissionPolicyBindingTypeArgs struct { // 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 ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` @@ -3157,10 +6225,6 @@ func (i ValidatingAdmissionPolicyBindingTypeArray) ToValidatingAdmissionPolicyBi } // ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. -// -// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. -// -// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. type ValidatingAdmissionPolicyBindingTypeOutput struct{ *pulumi.OutputState } func (ValidatingAdmissionPolicyBindingTypeOutput) ElementType() reflect.Type { @@ -3300,10 +6364,6 @@ func (o ValidatingAdmissionPolicyBindingListTypeOutput) Metadata() metav1.ListMe } // ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. -// -// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. -// -// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. type ValidatingAdmissionPolicyBindingPatchType struct { // 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 ApiVersion *string `pulumi:"apiVersion"` @@ -3327,10 +6387,6 @@ type ValidatingAdmissionPolicyBindingPatchTypeInput interface { } // ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. -// -// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. -// -// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. type ValidatingAdmissionPolicyBindingPatchTypeArgs struct { // 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 ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` @@ -3355,10 +6411,6 @@ func (i ValidatingAdmissionPolicyBindingPatchTypeArgs) ToValidatingAdmissionPoli } // ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. -// -// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. -// -// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. type ValidatingAdmissionPolicyBindingPatchTypeOutput struct{ *pulumi.OutputState } func (ValidatingAdmissionPolicyBindingPatchTypeOutput) ElementType() reflect.Type { @@ -3399,7 +6451,7 @@ func (o ValidatingAdmissionPolicyBindingPatchTypeOutput) Spec() ValidatingAdmiss type ValidatingAdmissionPolicyBindingSpec struct { // MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required. MatchResources *MatchResources `pulumi:"matchResources"` - // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + // ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. ParamRef *ParamRef `pulumi:"paramRef"` // PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. PolicyName *string `pulumi:"policyName"` @@ -3440,7 +6492,7 @@ type ValidatingAdmissionPolicyBindingSpecInput interface { type ValidatingAdmissionPolicyBindingSpecArgs struct { // MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required. MatchResources MatchResourcesPtrInput `pulumi:"matchResources"` - // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + // ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. ParamRef ParamRefPtrInput `pulumi:"paramRef"` // PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. PolicyName pulumi.StringPtrInput `pulumi:"policyName"` @@ -3549,7 +6601,7 @@ func (o ValidatingAdmissionPolicyBindingSpecOutput) MatchResources() MatchResour return o.ApplyT(func(v ValidatingAdmissionPolicyBindingSpec) *MatchResources { return v.MatchResources }).(MatchResourcesPtrOutput) } -// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +// ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. func (o ValidatingAdmissionPolicyBindingSpecOutput) ParamRef() ParamRefPtrOutput { return o.ApplyT(func(v ValidatingAdmissionPolicyBindingSpec) *ParamRef { return v.ParamRef }).(ParamRefPtrOutput) } @@ -3616,7 +6668,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPtrOutput) MatchResources() MatchRes }).(MatchResourcesPtrOutput) } -// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +// ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. func (o ValidatingAdmissionPolicyBindingSpecPtrOutput) ParamRef() ParamRefPtrOutput { return o.ApplyT(func(v *ValidatingAdmissionPolicyBindingSpec) *ParamRef { if v == nil { @@ -3668,7 +6720,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPtrOutput) ValidationActions() pulum type ValidatingAdmissionPolicyBindingSpecPatch struct { // MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required. MatchResources *MatchResourcesPatch `pulumi:"matchResources"` - // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + // ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. ParamRef *ParamRefPatch `pulumi:"paramRef"` // PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. PolicyName *string `pulumi:"policyName"` @@ -3709,7 +6761,7 @@ type ValidatingAdmissionPolicyBindingSpecPatchInput interface { type ValidatingAdmissionPolicyBindingSpecPatchArgs struct { // MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required. MatchResources MatchResourcesPatchPtrInput `pulumi:"matchResources"` - // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + // ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. ParamRef ParamRefPatchPtrInput `pulumi:"paramRef"` // PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. PolicyName pulumi.StringPtrInput `pulumi:"policyName"` @@ -3818,7 +6870,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPatchOutput) MatchResources() MatchR return o.ApplyT(func(v ValidatingAdmissionPolicyBindingSpecPatch) *MatchResourcesPatch { return v.MatchResources }).(MatchResourcesPatchPtrOutput) } -// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +// ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. func (o ValidatingAdmissionPolicyBindingSpecPatchOutput) ParamRef() ParamRefPatchPtrOutput { return o.ApplyT(func(v ValidatingAdmissionPolicyBindingSpecPatch) *ParamRefPatch { return v.ParamRef }).(ParamRefPatchPtrOutput) } @@ -3885,7 +6937,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPatchPtrOutput) MatchResources() Mat }).(MatchResourcesPatchPtrOutput) } -// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +// ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. func (o ValidatingAdmissionPolicyBindingSpecPatchPtrOutput) ParamRef() ParamRefPatchPtrOutput { return o.ApplyT(func(v *ValidatingAdmissionPolicyBindingSpecPatch) *ParamRefPatch { if v == nil { @@ -4110,15 +7162,7 @@ func (o ValidatingAdmissionPolicyPatchTypeOutput) Status() ValidatingAdmissionPo type ValidatingAdmissionPolicySpec struct { // auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. AuditAnnotations []AuditAnnotation `pulumi:"auditAnnotations"` - // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - // - // A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - // - // failurePolicy does not define how validations that evaluate to false are handled. - // - // When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - // - // Allowed values are Ignore or Fail. Defaults to Fail. + // FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. FailurePolicy *string `pulumi:"failurePolicy"` // MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // @@ -4135,7 +7179,7 @@ type ValidatingAdmissionPolicySpec struct { MatchConstraints *MatchResources `pulumi:"matchConstraints"` // ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null. ParamKind *ParamKind `pulumi:"paramKind"` - // Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + // Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. Validations []Validation `pulumi:"validations"` // Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy. // @@ -4158,15 +7202,7 @@ type ValidatingAdmissionPolicySpecInput interface { type ValidatingAdmissionPolicySpecArgs struct { // auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. AuditAnnotations AuditAnnotationArrayInput `pulumi:"auditAnnotations"` - // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - // - // A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - // - // failurePolicy does not define how validations that evaluate to false are handled. - // - // When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - // - // Allowed values are Ignore or Fail. Defaults to Fail. + // FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. FailurePolicy pulumi.StringPtrInput `pulumi:"failurePolicy"` // MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // @@ -4183,7 +7219,7 @@ type ValidatingAdmissionPolicySpecArgs struct { MatchConstraints MatchResourcesPtrInput `pulumi:"matchConstraints"` // ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null. ParamKind ParamKindPtrInput `pulumi:"paramKind"` - // Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + // Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. Validations ValidationArrayInput `pulumi:"validations"` // Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy. // @@ -4274,15 +7310,7 @@ func (o ValidatingAdmissionPolicySpecOutput) AuditAnnotations() AuditAnnotationA return o.ApplyT(func(v ValidatingAdmissionPolicySpec) []AuditAnnotation { return v.AuditAnnotations }).(AuditAnnotationArrayOutput) } -// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. -// -// A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. -// -// failurePolicy does not define how validations that evaluate to false are handled. -// -// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. -// -// Allowed values are Ignore or Fail. Defaults to Fail. +// FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. func (o ValidatingAdmissionPolicySpecOutput) FailurePolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v ValidatingAdmissionPolicySpec) *string { return v.FailurePolicy }).(pulumi.StringPtrOutput) } @@ -4311,7 +7339,7 @@ func (o ValidatingAdmissionPolicySpecOutput) ParamKind() ParamKindPtrOutput { return o.ApplyT(func(v ValidatingAdmissionPolicySpec) *ParamKind { return v.ParamKind }).(ParamKindPtrOutput) } -// Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. +// Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. func (o ValidatingAdmissionPolicySpecOutput) Validations() ValidationArrayOutput { return o.ApplyT(func(v ValidatingAdmissionPolicySpec) []Validation { return v.Validations }).(ValidationArrayOutput) } @@ -4357,15 +7385,7 @@ func (o ValidatingAdmissionPolicySpecPtrOutput) AuditAnnotations() AuditAnnotati }).(AuditAnnotationArrayOutput) } -// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. -// -// A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. -// -// failurePolicy does not define how validations that evaluate to false are handled. -// -// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. -// -// Allowed values are Ignore or Fail. Defaults to Fail. +// FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. func (o ValidatingAdmissionPolicySpecPtrOutput) FailurePolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *ValidatingAdmissionPolicySpec) *string { if v == nil { @@ -4414,7 +7434,7 @@ func (o ValidatingAdmissionPolicySpecPtrOutput) ParamKind() ParamKindPtrOutput { }).(ParamKindPtrOutput) } -// Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. +// Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. func (o ValidatingAdmissionPolicySpecPtrOutput) Validations() ValidationArrayOutput { return o.ApplyT(func(v *ValidatingAdmissionPolicySpec) []Validation { if v == nil { @@ -4440,15 +7460,7 @@ func (o ValidatingAdmissionPolicySpecPtrOutput) Variables() VariableArrayOutput type ValidatingAdmissionPolicySpecPatch struct { // auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. AuditAnnotations []AuditAnnotationPatch `pulumi:"auditAnnotations"` - // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - // - // A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - // - // failurePolicy does not define how validations that evaluate to false are handled. - // - // When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - // - // Allowed values are Ignore or Fail. Defaults to Fail. + // FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. FailurePolicy *string `pulumi:"failurePolicy"` // MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // @@ -4465,7 +7477,7 @@ type ValidatingAdmissionPolicySpecPatch struct { MatchConstraints *MatchResourcesPatch `pulumi:"matchConstraints"` // ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null. ParamKind *ParamKindPatch `pulumi:"paramKind"` - // Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + // Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. Validations []ValidationPatch `pulumi:"validations"` // Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy. // @@ -4488,15 +7500,7 @@ type ValidatingAdmissionPolicySpecPatchInput interface { type ValidatingAdmissionPolicySpecPatchArgs struct { // auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. AuditAnnotations AuditAnnotationPatchArrayInput `pulumi:"auditAnnotations"` - // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - // - // A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - // - // failurePolicy does not define how validations that evaluate to false are handled. - // - // When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - // - // Allowed values are Ignore or Fail. Defaults to Fail. + // FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. FailurePolicy pulumi.StringPtrInput `pulumi:"failurePolicy"` // MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // @@ -4513,7 +7517,7 @@ type ValidatingAdmissionPolicySpecPatchArgs struct { MatchConstraints MatchResourcesPatchPtrInput `pulumi:"matchConstraints"` // ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null. ParamKind ParamKindPatchPtrInput `pulumi:"paramKind"` - // Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + // Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. Validations ValidationPatchArrayInput `pulumi:"validations"` // Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy. // @@ -4604,15 +7608,7 @@ func (o ValidatingAdmissionPolicySpecPatchOutput) AuditAnnotations() AuditAnnota return o.ApplyT(func(v ValidatingAdmissionPolicySpecPatch) []AuditAnnotationPatch { return v.AuditAnnotations }).(AuditAnnotationPatchArrayOutput) } -// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. -// -// A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. -// -// failurePolicy does not define how validations that evaluate to false are handled. -// -// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. -// -// Allowed values are Ignore or Fail. Defaults to Fail. +// FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. func (o ValidatingAdmissionPolicySpecPatchOutput) FailurePolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v ValidatingAdmissionPolicySpecPatch) *string { return v.FailurePolicy }).(pulumi.StringPtrOutput) } @@ -4641,7 +7637,7 @@ func (o ValidatingAdmissionPolicySpecPatchOutput) ParamKind() ParamKindPatchPtrO return o.ApplyT(func(v ValidatingAdmissionPolicySpecPatch) *ParamKindPatch { return v.ParamKind }).(ParamKindPatchPtrOutput) } -// Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. +// Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. func (o ValidatingAdmissionPolicySpecPatchOutput) Validations() ValidationPatchArrayOutput { return o.ApplyT(func(v ValidatingAdmissionPolicySpecPatch) []ValidationPatch { return v.Validations }).(ValidationPatchArrayOutput) } @@ -4687,15 +7683,7 @@ func (o ValidatingAdmissionPolicySpecPatchPtrOutput) AuditAnnotations() AuditAnn }).(AuditAnnotationPatchArrayOutput) } -// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. -// -// A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. -// -// failurePolicy does not define how validations that evaluate to false are handled. -// -// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. -// -// Allowed values are Ignore or Fail. Defaults to Fail. +// FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. func (o ValidatingAdmissionPolicySpecPatchPtrOutput) FailurePolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *ValidatingAdmissionPolicySpecPatch) *string { if v == nil { @@ -4744,7 +7732,7 @@ func (o ValidatingAdmissionPolicySpecPatchPtrOutput) ParamKind() ParamKindPatchP }).(ParamKindPatchPtrOutput) } -// Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. +// Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. func (o ValidatingAdmissionPolicySpecPatchPtrOutput) Validations() ValidationPatchArrayOutput { return o.ApplyT(func(v *ValidatingAdmissionPolicySpecPatch) []ValidationPatch { if v == nil { @@ -5124,14 +8112,9 @@ func (o ValidatingAdmissionPolicyStatusPatchPtrOutput) TypeChecking() TypeChecki // Validation specifies the CEL expression which is used to apply the validation. type Validation struct { - // Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + // Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: // - // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - // For example, a variable named 'foo' can be accessed as 'variables.foo'. - // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. // // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. // @@ -5172,14 +8155,9 @@ type ValidationInput interface { // Validation specifies the CEL expression which is used to apply the validation. type ValidationArgs struct { - // Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + // Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: // - // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - // For example, a variable named 'foo' can be accessed as 'variables.foo'. - // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. // // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. // @@ -5259,14 +8237,9 @@ func (o ValidationOutput) ToValidationOutputWithContext(ctx context.Context) Val return o } -// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: +// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: // -// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. -// For example, a variable named 'foo' can be accessed as 'variables.foo'. -// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. -// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz -// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the -// request resource. +// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. // // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. // @@ -5328,14 +8301,9 @@ func (o ValidationArrayOutput) Index(i pulumi.IntInput) ValidationOutput { // Validation specifies the CEL expression which is used to apply the validation. type ValidationPatch struct { - // Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + // Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: // - // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - // For example, a variable named 'foo' can be accessed as 'variables.foo'. - // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. // // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. // @@ -5376,14 +8344,9 @@ type ValidationPatchInput interface { // Validation specifies the CEL expression which is used to apply the validation. type ValidationPatchArgs struct { - // Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + // Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: // - // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - // For example, a variable named 'foo' can be accessed as 'variables.foo'. - // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. // // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. // @@ -5463,14 +8426,9 @@ func (o ValidationPatchOutput) ToValidationPatchOutputWithContext(ctx context.Co return o } -// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: +// Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: // -// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. -// For example, a variable named 'foo' can be accessed as 'variables.foo'. -// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. -// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz -// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the -// request resource. +// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. // // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. // @@ -5749,6 +8707,10 @@ func (o VariablePatchArrayOutput) Index(i pulumi.IntInput) VariablePatchOutput { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplyConfigurationInput)(nil)).Elem(), ApplyConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplyConfigurationPtrInput)(nil)).Elem(), ApplyConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplyConfigurationPatchInput)(nil)).Elem(), ApplyConfigurationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplyConfigurationPatchPtrInput)(nil)).Elem(), ApplyConfigurationPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditAnnotationInput)(nil)).Elem(), AuditAnnotationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditAnnotationArrayInput)(nil)).Elem(), AuditAnnotationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditAnnotationPatchInput)(nil)).Elem(), AuditAnnotationPatchArgs{}) @@ -5757,6 +8719,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ExpressionWarningArrayInput)(nil)).Elem(), ExpressionWarningArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ExpressionWarningPatchInput)(nil)).Elem(), ExpressionWarningPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExpressionWarningPatchArrayInput)(nil)).Elem(), ExpressionWarningPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchInput)(nil)).Elem(), JSONPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchPtrInput)(nil)).Elem(), JSONPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchPatchInput)(nil)).Elem(), JSONPatchPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchPatchPtrInput)(nil)).Elem(), JSONPatchPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchConditionInput)(nil)).Elem(), MatchConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchConditionArrayInput)(nil)).Elem(), MatchConditionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchConditionPatchInput)(nil)).Elem(), MatchConditionPatchArgs{}) @@ -5765,6 +8731,26 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*MatchResourcesPtrInput)(nil)).Elem(), MatchResourcesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchResourcesPatchInput)(nil)).Elem(), MatchResourcesPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchResourcesPatchPtrInput)(nil)).Elem(), MatchResourcesPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyTypeInput)(nil)).Elem(), MutatingAdmissionPolicyTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyTypeArrayInput)(nil)).Elem(), MutatingAdmissionPolicyTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingTypeInput)(nil)).Elem(), MutatingAdmissionPolicyBindingTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingTypeArrayInput)(nil)).Elem(), MutatingAdmissionPolicyBindingTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingListTypeInput)(nil)).Elem(), MutatingAdmissionPolicyBindingListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchTypeInput)(nil)).Elem(), MutatingAdmissionPolicyBindingPatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecInput)(nil)).Elem(), MutatingAdmissionPolicyBindingSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPtrInput)(nil)).Elem(), MutatingAdmissionPolicyBindingSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPatchInput)(nil)).Elem(), MutatingAdmissionPolicyBindingSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPatchPtrInput)(nil)).Elem(), MutatingAdmissionPolicyBindingSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyListTypeInput)(nil)).Elem(), MutatingAdmissionPolicyListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyPatchTypeInput)(nil)).Elem(), MutatingAdmissionPolicyPatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicySpecInput)(nil)).Elem(), MutatingAdmissionPolicySpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicySpecPtrInput)(nil)).Elem(), MutatingAdmissionPolicySpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicySpecPatchInput)(nil)).Elem(), MutatingAdmissionPolicySpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicySpecPatchPtrInput)(nil)).Elem(), MutatingAdmissionPolicySpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutationInput)(nil)).Elem(), MutationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutationArrayInput)(nil)).Elem(), MutationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutationPatchInput)(nil)).Elem(), MutationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutationPatchArrayInput)(nil)).Elem(), MutationPatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NamedRuleWithOperationsInput)(nil)).Elem(), NamedRuleWithOperationsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NamedRuleWithOperationsArrayInput)(nil)).Elem(), NamedRuleWithOperationsArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NamedRuleWithOperationsPatchInput)(nil)).Elem(), NamedRuleWithOperationsPatchArgs{}) @@ -5809,6 +8795,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*VariableArrayInput)(nil)).Elem(), VariableArray{}) pulumi.RegisterInputType(reflect.TypeOf((*VariablePatchInput)(nil)).Elem(), VariablePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*VariablePatchArrayInput)(nil)).Elem(), VariablePatchArray{}) + pulumi.RegisterOutputType(ApplyConfigurationOutput{}) + pulumi.RegisterOutputType(ApplyConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ApplyConfigurationPatchOutput{}) + pulumi.RegisterOutputType(ApplyConfigurationPatchPtrOutput{}) pulumi.RegisterOutputType(AuditAnnotationOutput{}) pulumi.RegisterOutputType(AuditAnnotationArrayOutput{}) pulumi.RegisterOutputType(AuditAnnotationPatchOutput{}) @@ -5817,6 +8807,10 @@ func init() { pulumi.RegisterOutputType(ExpressionWarningArrayOutput{}) pulumi.RegisterOutputType(ExpressionWarningPatchOutput{}) pulumi.RegisterOutputType(ExpressionWarningPatchArrayOutput{}) + pulumi.RegisterOutputType(JSONPatchOutput{}) + pulumi.RegisterOutputType(JSONPatchPtrOutput{}) + pulumi.RegisterOutputType(JSONPatchPatchOutput{}) + pulumi.RegisterOutputType(JSONPatchPatchPtrOutput{}) pulumi.RegisterOutputType(MatchConditionOutput{}) pulumi.RegisterOutputType(MatchConditionArrayOutput{}) pulumi.RegisterOutputType(MatchConditionPatchOutput{}) @@ -5825,6 +8819,26 @@ func init() { pulumi.RegisterOutputType(MatchResourcesPtrOutput{}) pulumi.RegisterOutputType(MatchResourcesPatchOutput{}) pulumi.RegisterOutputType(MatchResourcesPatchPtrOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyTypeArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingTypeArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingListTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingPatchTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingSpecOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingSpecPtrOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingSpecPatchOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingSpecPatchPtrOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyListTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyPatchTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicySpecOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicySpecPtrOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicySpecPatchOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicySpecPatchPtrOutput{}) + pulumi.RegisterOutputType(MutationOutput{}) + pulumi.RegisterOutputType(MutationArrayOutput{}) + pulumi.RegisterOutputType(MutationPatchOutput{}) + pulumi.RegisterOutputType(MutationPatchArrayOutput{}) pulumi.RegisterOutputType(NamedRuleWithOperationsOutput{}) pulumi.RegisterOutputType(NamedRuleWithOperationsArrayOutput{}) pulumi.RegisterOutputType(NamedRuleWithOperationsPatchOutput{}) diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.go index 3d0c08599c..d411806bdd 100644 --- a/sdk/go/kubernetes/admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.go +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.go @@ -13,10 +13,6 @@ import ( ) // ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. -// -// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. -// -// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. type ValidatingAdmissionPolicyBinding struct { pulumi.CustomResourceState diff --git a/sdk/go/kubernetes/admissionregistration/v1alpha1/validatingAdmissionPolicyBindingPatch.go b/sdk/go/kubernetes/admissionregistration/v1alpha1/validatingAdmissionPolicyBindingPatch.go index 56859281e2..3a87a405b3 100644 --- a/sdk/go/kubernetes/admissionregistration/v1alpha1/validatingAdmissionPolicyBindingPatch.go +++ b/sdk/go/kubernetes/admissionregistration/v1alpha1/validatingAdmissionPolicyBindingPatch.go @@ -19,10 +19,6 @@ import ( // [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for // additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. // ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. -// -// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. -// -// The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. type ValidatingAdmissionPolicyBindingPatch struct { pulumi.CustomResourceState diff --git a/sdk/go/kubernetes/admissionregistration/v1beta1/pulumiTypes.go b/sdk/go/kubernetes/admissionregistration/v1beta1/pulumiTypes.go index cec8f55553..470fc1c99c 100644 --- a/sdk/go/kubernetes/admissionregistration/v1beta1/pulumiTypes.go +++ b/sdk/go/kubernetes/admissionregistration/v1beta1/pulumiTypes.go @@ -5078,7 +5078,7 @@ type ValidatingAdmissionPolicyBindingSpec struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5119,7 +5119,7 @@ type ValidatingAdmissionPolicyBindingSpecArgs struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5234,7 +5234,7 @@ func (o ValidatingAdmissionPolicyBindingSpecOutput) PolicyName() pulumi.StringPt // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5311,7 +5311,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPtrOutput) PolicyName() pulumi.Strin // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5347,7 +5347,7 @@ type ValidatingAdmissionPolicyBindingSpecPatch struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5388,7 +5388,7 @@ type ValidatingAdmissionPolicyBindingSpecPatchArgs struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5503,7 +5503,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPatchOutput) PolicyName() pulumi.Str // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5580,7 +5580,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPatchPtrOutput) PolicyName() pulumi. // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // diff --git a/sdk/go/kubernetes/apiextensions/v1/pulumiTypes.go b/sdk/go/kubernetes/apiextensions/v1/pulumiTypes.go index 29902966e1..fc57450d5a 100644 --- a/sdk/go/kubernetes/apiextensions/v1/pulumiTypes.go +++ b/sdk/go/kubernetes/apiextensions/v1/pulumiTypes.go @@ -4004,7 +4004,7 @@ type JSONSchemaProps struct { ExternalDocs *ExternalDocumentation `pulumi:"externalDocs"` // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: // - // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. Format *string `pulumi:"format"` Id *string `pulumi:"id"` Items interface{} `pulumi:"items"` @@ -4107,7 +4107,7 @@ type JSONSchemaPropsArgs struct { ExternalDocs ExternalDocumentationPtrInput `pulumi:"externalDocs"` // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: // - // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. Format pulumi.StringPtrInput `pulumi:"format"` Id pulumi.StringPtrInput `pulumi:"id"` Items pulumi.Input `pulumi:"items"` @@ -4370,7 +4370,7 @@ func (o JSONSchemaPropsOutput) ExternalDocs() ExternalDocumentationPtrOutput { // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: // -// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. +// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. func (o JSONSchemaPropsOutput) Format() pulumi.StringPtrOutput { return o.ApplyT(func(v JSONSchemaProps) *string { return v.Format }).(pulumi.StringPtrOutput) } @@ -4690,7 +4690,7 @@ func (o JSONSchemaPropsPtrOutput) ExternalDocs() ExternalDocumentationPtrOutput // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: // -// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. +// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. func (o JSONSchemaPropsPtrOutput) Format() pulumi.StringPtrOutput { return o.ApplyT(func(v *JSONSchemaProps) *string { if v == nil { @@ -5053,7 +5053,7 @@ type JSONSchemaPropsPatch struct { ExternalDocs *ExternalDocumentationPatch `pulumi:"externalDocs"` // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: // - // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. Format *string `pulumi:"format"` Id *string `pulumi:"id"` Items interface{} `pulumi:"items"` @@ -5156,7 +5156,7 @@ type JSONSchemaPropsPatchArgs struct { ExternalDocs ExternalDocumentationPatchPtrInput `pulumi:"externalDocs"` // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: // - // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. Format pulumi.StringPtrInput `pulumi:"format"` Id pulumi.StringPtrInput `pulumi:"id"` Items pulumi.Input `pulumi:"items"` @@ -5394,7 +5394,7 @@ func (o JSONSchemaPropsPatchOutput) ExternalDocs() ExternalDocumentationPatchPtr // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: // -// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. +// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. func (o JSONSchemaPropsPatchOutput) Format() pulumi.StringPtrOutput { return o.ApplyT(func(v JSONSchemaPropsPatch) *string { return v.Format }).(pulumi.StringPtrOutput) } @@ -5714,7 +5714,7 @@ func (o JSONSchemaPropsPatchPtrOutput) ExternalDocs() ExternalDocumentationPatch // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: // -// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. +// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. func (o JSONSchemaPropsPatchPtrOutput) Format() pulumi.StringPtrOutput { return o.ApplyT(func(v *JSONSchemaPropsPatch) *string { if v == nil { diff --git a/sdk/go/kubernetes/apps/v1/pulumiTypes.go b/sdk/go/kubernetes/apps/v1/pulumiTypes.go index 767a2dce79..1f4ed8d89f 100644 --- a/sdk/go/kubernetes/apps/v1/pulumiTypes.go +++ b/sdk/go/kubernetes/apps/v1/pulumiTypes.go @@ -8140,7 +8140,7 @@ type StatefulSetSpec struct { MinReadySeconds *int `pulumi:"minReadySeconds"` // ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. Ordinals *StatefulSetOrdinals `pulumi:"ordinals"` - // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `pulumi:"persistentVolumeClaimRetentionPolicy"` // podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. PodManagementPolicy *string `pulumi:"podManagementPolicy"` @@ -8177,7 +8177,7 @@ type StatefulSetSpecArgs struct { MinReadySeconds pulumi.IntPtrInput `pulumi:"minReadySeconds"` // ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. Ordinals StatefulSetOrdinalsPtrInput `pulumi:"ordinals"` - // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. PersistentVolumeClaimRetentionPolicy StatefulSetPersistentVolumeClaimRetentionPolicyPtrInput `pulumi:"persistentVolumeClaimRetentionPolicy"` // podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. PodManagementPolicy pulumi.StringPtrInput `pulumi:"podManagementPolicy"` @@ -8285,7 +8285,7 @@ func (o StatefulSetSpecOutput) Ordinals() StatefulSetOrdinalsPtrOutput { return o.ApplyT(func(v StatefulSetSpec) *StatefulSetOrdinals { return v.Ordinals }).(StatefulSetOrdinalsPtrOutput) } -// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. +// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. func (o StatefulSetSpecOutput) PersistentVolumeClaimRetentionPolicy() StatefulSetPersistentVolumeClaimRetentionPolicyPtrOutput { return o.ApplyT(func(v StatefulSetSpec) *StatefulSetPersistentVolumeClaimRetentionPolicy { return v.PersistentVolumeClaimRetentionPolicy @@ -8376,7 +8376,7 @@ func (o StatefulSetSpecPtrOutput) Ordinals() StatefulSetOrdinalsPtrOutput { }).(StatefulSetOrdinalsPtrOutput) } -// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. +// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. func (o StatefulSetSpecPtrOutput) PersistentVolumeClaimRetentionPolicy() StatefulSetPersistentVolumeClaimRetentionPolicyPtrOutput { return o.ApplyT(func(v *StatefulSetSpec) *StatefulSetPersistentVolumeClaimRetentionPolicy { if v == nil { @@ -8472,7 +8472,7 @@ type StatefulSetSpecPatch struct { MinReadySeconds *int `pulumi:"minReadySeconds"` // ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. Ordinals *StatefulSetOrdinalsPatch `pulumi:"ordinals"` - // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyPatch `pulumi:"persistentVolumeClaimRetentionPolicy"` // podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. PodManagementPolicy *string `pulumi:"podManagementPolicy"` @@ -8509,7 +8509,7 @@ type StatefulSetSpecPatchArgs struct { MinReadySeconds pulumi.IntPtrInput `pulumi:"minReadySeconds"` // ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. Ordinals StatefulSetOrdinalsPatchPtrInput `pulumi:"ordinals"` - // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. PersistentVolumeClaimRetentionPolicy StatefulSetPersistentVolumeClaimRetentionPolicyPatchPtrInput `pulumi:"persistentVolumeClaimRetentionPolicy"` // podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. PodManagementPolicy pulumi.StringPtrInput `pulumi:"podManagementPolicy"` @@ -8617,7 +8617,7 @@ func (o StatefulSetSpecPatchOutput) Ordinals() StatefulSetOrdinalsPatchPtrOutput return o.ApplyT(func(v StatefulSetSpecPatch) *StatefulSetOrdinalsPatch { return v.Ordinals }).(StatefulSetOrdinalsPatchPtrOutput) } -// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. +// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. func (o StatefulSetSpecPatchOutput) PersistentVolumeClaimRetentionPolicy() StatefulSetPersistentVolumeClaimRetentionPolicyPatchPtrOutput { return o.ApplyT(func(v StatefulSetSpecPatch) *StatefulSetPersistentVolumeClaimRetentionPolicyPatch { return v.PersistentVolumeClaimRetentionPolicy @@ -8708,7 +8708,7 @@ func (o StatefulSetSpecPatchPtrOutput) Ordinals() StatefulSetOrdinalsPatchPtrOut }).(StatefulSetOrdinalsPatchPtrOutput) } -// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. +// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. func (o StatefulSetSpecPatchPtrOutput) PersistentVolumeClaimRetentionPolicy() StatefulSetPersistentVolumeClaimRetentionPolicyPatchPtrOutput { return o.ApplyT(func(v *StatefulSetSpecPatch) *StatefulSetPersistentVolumeClaimRetentionPolicyPatch { if v == nil { diff --git a/sdk/go/kubernetes/authentication/v1alpha1/pulumiTypes.go b/sdk/go/kubernetes/authentication/v1alpha1/pulumiTypes.go index 4452a9a200..3ace7c404f 100644 --- a/sdk/go/kubernetes/authentication/v1alpha1/pulumiTypes.go +++ b/sdk/go/kubernetes/authentication/v1alpha1/pulumiTypes.go @@ -15,7 +15,7 @@ import ( var _ = utilities.GetEnvOrDefault -// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. +// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. type SelfSubjectReview struct { // 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 ApiVersion *string `pulumi:"apiVersion"` @@ -38,7 +38,7 @@ type SelfSubjectReviewInput interface { ToSelfSubjectReviewOutputWithContext(context.Context) SelfSubjectReviewOutput } -// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. +// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. type SelfSubjectReviewArgs struct { // 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 ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` @@ -62,7 +62,7 @@ func (i SelfSubjectReviewArgs) ToSelfSubjectReviewOutputWithContext(ctx context. return pulumi.ToOutputWithContext(ctx, i).(SelfSubjectReviewOutput) } -// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. +// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. type SelfSubjectReviewOutput struct{ *pulumi.OutputState } func (SelfSubjectReviewOutput) ElementType() reflect.Type { @@ -97,7 +97,7 @@ func (o SelfSubjectReviewOutput) Status() SelfSubjectReviewStatusPtrOutput { return o.ApplyT(func(v SelfSubjectReview) *SelfSubjectReviewStatus { return v.Status }).(SelfSubjectReviewStatusPtrOutput) } -// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. +// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. type SelfSubjectReviewPatch struct { // 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 ApiVersion *string `pulumi:"apiVersion"` @@ -120,7 +120,7 @@ type SelfSubjectReviewPatchInput interface { ToSelfSubjectReviewPatchOutputWithContext(context.Context) SelfSubjectReviewPatchOutput } -// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. +// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. type SelfSubjectReviewPatchArgs struct { // 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 ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` @@ -144,7 +144,7 @@ func (i SelfSubjectReviewPatchArgs) ToSelfSubjectReviewPatchOutputWithContext(ct return pulumi.ToOutputWithContext(ctx, i).(SelfSubjectReviewPatchOutput) } -// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. +// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. type SelfSubjectReviewPatchOutput struct{ *pulumi.OutputState } func (SelfSubjectReviewPatchOutput) ElementType() reflect.Type { diff --git a/sdk/go/kubernetes/autoscaling/v2/pulumiTypes.go b/sdk/go/kubernetes/autoscaling/v2/pulumiTypes.go index 0c4dec35b8..521e450738 100644 --- a/sdk/go/kubernetes/autoscaling/v2/pulumiTypes.go +++ b/sdk/go/kubernetes/autoscaling/v2/pulumiTypes.go @@ -4457,7 +4457,7 @@ func (o MetricIdentifierPatchPtrOutput) Selector() metav1.LabelSelectorPatchPtrO // MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). type MetricSpec struct { - // containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + // containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. ContainerResource *ContainerResourceMetricSource `pulumi:"containerResource"` // external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). External *ExternalMetricSource `pulumi:"external"` @@ -4467,7 +4467,7 @@ type MetricSpec struct { Pods *PodsMetricSource `pulumi:"pods"` // resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Resource *ResourceMetricSource `pulumi:"resource"` - // type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + // type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Type string `pulumi:"type"` } @@ -4484,7 +4484,7 @@ type MetricSpecInput interface { // MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). type MetricSpecArgs struct { - // containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + // containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. ContainerResource ContainerResourceMetricSourcePtrInput `pulumi:"containerResource"` // external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). External ExternalMetricSourcePtrInput `pulumi:"external"` @@ -4494,7 +4494,7 @@ type MetricSpecArgs struct { Pods PodsMetricSourcePtrInput `pulumi:"pods"` // resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Resource ResourceMetricSourcePtrInput `pulumi:"resource"` - // type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + // type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Type pulumi.StringInput `pulumi:"type"` } @@ -4550,7 +4550,7 @@ func (o MetricSpecOutput) ToMetricSpecOutputWithContext(ctx context.Context) Met return o } -// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. +// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. func (o MetricSpecOutput) ContainerResource() ContainerResourceMetricSourcePtrOutput { return o.ApplyT(func(v MetricSpec) *ContainerResourceMetricSource { return v.ContainerResource }).(ContainerResourceMetricSourcePtrOutput) } @@ -4575,7 +4575,7 @@ func (o MetricSpecOutput) Resource() ResourceMetricSourcePtrOutput { return o.ApplyT(func(v MetricSpec) *ResourceMetricSource { return v.Resource }).(ResourceMetricSourcePtrOutput) } -// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled +// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. func (o MetricSpecOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v MetricSpec) string { return v.Type }).(pulumi.StringOutput) } @@ -4602,7 +4602,7 @@ func (o MetricSpecArrayOutput) Index(i pulumi.IntInput) MetricSpecOutput { // MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). type MetricSpecPatch struct { - // containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + // containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. ContainerResource *ContainerResourceMetricSourcePatch `pulumi:"containerResource"` // external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). External *ExternalMetricSourcePatch `pulumi:"external"` @@ -4612,7 +4612,7 @@ type MetricSpecPatch struct { Pods *PodsMetricSourcePatch `pulumi:"pods"` // resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Resource *ResourceMetricSourcePatch `pulumi:"resource"` - // type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + // type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Type *string `pulumi:"type"` } @@ -4629,7 +4629,7 @@ type MetricSpecPatchInput interface { // MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). type MetricSpecPatchArgs struct { - // containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + // containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. ContainerResource ContainerResourceMetricSourcePatchPtrInput `pulumi:"containerResource"` // external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). External ExternalMetricSourcePatchPtrInput `pulumi:"external"` @@ -4639,7 +4639,7 @@ type MetricSpecPatchArgs struct { Pods PodsMetricSourcePatchPtrInput `pulumi:"pods"` // resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Resource ResourceMetricSourcePatchPtrInput `pulumi:"resource"` - // type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + // type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -4695,7 +4695,7 @@ func (o MetricSpecPatchOutput) ToMetricSpecPatchOutputWithContext(ctx context.Co return o } -// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. +// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. func (o MetricSpecPatchOutput) ContainerResource() ContainerResourceMetricSourcePatchPtrOutput { return o.ApplyT(func(v MetricSpecPatch) *ContainerResourceMetricSourcePatch { return v.ContainerResource }).(ContainerResourceMetricSourcePatchPtrOutput) } @@ -4720,7 +4720,7 @@ func (o MetricSpecPatchOutput) Resource() ResourceMetricSourcePatchPtrOutput { return o.ApplyT(func(v MetricSpecPatch) *ResourceMetricSourcePatch { return v.Resource }).(ResourceMetricSourcePatchPtrOutput) } -// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled +// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. func (o MetricSpecPatchOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v MetricSpecPatch) *string { return v.Type }).(pulumi.StringPtrOutput) } @@ -4757,7 +4757,7 @@ type MetricStatus struct { Pods *PodsMetricStatus `pulumi:"pods"` // resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Resource *ResourceMetricStatus `pulumi:"resource"` - // type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + // type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Type string `pulumi:"type"` } @@ -4784,7 +4784,7 @@ type MetricStatusArgs struct { Pods PodsMetricStatusPtrInput `pulumi:"pods"` // resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Resource ResourceMetricStatusPtrInput `pulumi:"resource"` - // type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + // type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Type pulumi.StringInput `pulumi:"type"` } @@ -4865,7 +4865,7 @@ func (o MetricStatusOutput) Resource() ResourceMetricStatusPtrOutput { return o.ApplyT(func(v MetricStatus) *ResourceMetricStatus { return v.Resource }).(ResourceMetricStatusPtrOutput) } -// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled +// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. func (o MetricStatusOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v MetricStatus) string { return v.Type }).(pulumi.StringOutput) } @@ -4902,7 +4902,7 @@ type MetricStatusPatch struct { Pods *PodsMetricStatusPatch `pulumi:"pods"` // resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Resource *ResourceMetricStatusPatch `pulumi:"resource"` - // type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + // type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Type *string `pulumi:"type"` } @@ -4929,7 +4929,7 @@ type MetricStatusPatchArgs struct { Pods PodsMetricStatusPatchPtrInput `pulumi:"pods"` // resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Resource ResourceMetricStatusPatchPtrInput `pulumi:"resource"` - // type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + // type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -5010,7 +5010,7 @@ func (o MetricStatusPatchOutput) Resource() ResourceMetricStatusPatchPtrOutput { return o.ApplyT(func(v MetricStatusPatch) *ResourceMetricStatusPatch { return v.Resource }).(ResourceMetricStatusPatchPtrOutput) } -// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled +// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. func (o MetricStatusPatchOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v MetricStatusPatch) *string { return v.Type }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/kubernetes/batch/v1/pulumiTypes.go b/sdk/go/kubernetes/batch/v1/pulumiTypes.go index 08e3a2b063..1dd5124575 100644 --- a/sdk/go/kubernetes/batch/v1/pulumiTypes.go +++ b/sdk/go/kubernetes/batch/v1/pulumiTypes.go @@ -1981,7 +1981,7 @@ type JobSpec struct { Completions *int `pulumi:"completions"` // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. // - // This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + // This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). ManagedBy *string `pulumi:"managedBy"` // manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector ManualSelector *bool `pulumi:"manualSelector"` @@ -2043,7 +2043,7 @@ type JobSpecArgs struct { Completions pulumi.IntPtrInput `pulumi:"completions"` // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. // - // This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + // This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). ManagedBy pulumi.StringPtrInput `pulumi:"managedBy"` // manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector ManualSelector pulumi.BoolPtrInput `pulumi:"manualSelector"` @@ -2185,7 +2185,7 @@ func (o JobSpecOutput) Completions() pulumi.IntPtrOutput { // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. // -// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). +// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). func (o JobSpecOutput) ManagedBy() pulumi.StringPtrOutput { return o.ApplyT(func(v JobSpec) *string { return v.ManagedBy }).(pulumi.StringPtrOutput) } @@ -2330,7 +2330,7 @@ func (o JobSpecPtrOutput) Completions() pulumi.IntPtrOutput { // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. // -// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). +// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). func (o JobSpecPtrOutput) ManagedBy() pulumi.StringPtrOutput { return o.ApplyT(func(v *JobSpec) *string { if v == nil { @@ -2468,7 +2468,7 @@ type JobSpecPatch struct { Completions *int `pulumi:"completions"` // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. // - // This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + // This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). ManagedBy *string `pulumi:"managedBy"` // manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector ManualSelector *bool `pulumi:"manualSelector"` @@ -2530,7 +2530,7 @@ type JobSpecPatchArgs struct { Completions pulumi.IntPtrInput `pulumi:"completions"` // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. // - // This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + // This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). ManagedBy pulumi.StringPtrInput `pulumi:"managedBy"` // manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector ManualSelector pulumi.BoolPtrInput `pulumi:"manualSelector"` @@ -2672,7 +2672,7 @@ func (o JobSpecPatchOutput) Completions() pulumi.IntPtrOutput { // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. // -// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). +// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). func (o JobSpecPatchOutput) ManagedBy() pulumi.StringPtrOutput { return o.ApplyT(func(v JobSpecPatch) *string { return v.ManagedBy }).(pulumi.StringPtrOutput) } @@ -2817,7 +2817,7 @@ func (o JobSpecPatchPtrOutput) Completions() pulumi.IntPtrOutput { // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. // -// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). +// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). func (o JobSpecPatchPtrOutput) ManagedBy() pulumi.StringPtrOutput { return o.ApplyT(func(v *JobSpecPatch) *string { if v == nil { diff --git a/sdk/go/kubernetes/coordination/v1alpha1/leaseCandidate.go b/sdk/go/kubernetes/coordination/v1alpha1/leaseCandidate.go index 54e1f7b58b..3ad95d23bb 100644 --- a/sdk/go/kubernetes/coordination/v1alpha1/leaseCandidate.go +++ b/sdk/go/kubernetes/coordination/v1alpha1/leaseCandidate.go @@ -35,6 +35,12 @@ func NewLeaseCandidate(ctx *pulumi.Context, args.ApiVersion = pulumi.StringPtr("coordination.k8s.io/v1alpha1") args.Kind = pulumi.StringPtr("LeaseCandidate") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate"), + }, + }) + opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) var resource LeaseCandidate err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidate", name, args, &resource, opts...) diff --git a/sdk/go/kubernetes/coordination/v1alpha1/leaseCandidatePatch.go b/sdk/go/kubernetes/coordination/v1alpha1/leaseCandidatePatch.go index 9ddb764e64..90dfe84b3b 100644 --- a/sdk/go/kubernetes/coordination/v1alpha1/leaseCandidatePatch.go +++ b/sdk/go/kubernetes/coordination/v1alpha1/leaseCandidatePatch.go @@ -41,6 +41,12 @@ func NewLeaseCandidatePatch(ctx *pulumi.Context, args.ApiVersion = pulumi.StringPtr("coordination.k8s.io/v1alpha1") args.Kind = pulumi.StringPtr("LeaseCandidate") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch"), + }, + }) + opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) var resource LeaseCandidatePatch err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidatePatch", name, args, &resource, opts...) diff --git a/sdk/go/kubernetes/coordination/v1alpha2/init.go b/sdk/go/kubernetes/coordination/v1alpha2/init.go new file mode 100644 index 0000000000..54fe88947f --- /dev/null +++ b/sdk/go/kubernetes/coordination/v1alpha2/init.go @@ -0,0 +1,48 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha2 + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate": + r = &LeaseCandidate{} + case "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList": + r = &LeaseCandidateList{} + case "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch": + r = &LeaseCandidatePatch{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := utilities.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "kubernetes", + "coordination.k8s.io/v1alpha2", + &module{version}, + ) +} diff --git a/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidate.go b/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidate.go new file mode 100644 index 0000000000..6f66a8e112 --- /dev/null +++ b/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidate.go @@ -0,0 +1,253 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha2 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. +type LeaseCandidate struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec LeaseCandidateSpecOutput `pulumi:"spec"` +} + +// NewLeaseCandidate registers a new resource with the given unique name, arguments, and options. +func NewLeaseCandidate(ctx *pulumi.Context, + name string, args *LeaseCandidateArgs, opts ...pulumi.ResourceOption) (*LeaseCandidate, error) { + if args == nil { + args = &LeaseCandidateArgs{} + } + + args.ApiVersion = pulumi.StringPtr("coordination.k8s.io/v1alpha2") + args.Kind = pulumi.StringPtr("LeaseCandidate") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidate"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource LeaseCandidate + err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLeaseCandidate gets an existing LeaseCandidate resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLeaseCandidate(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LeaseCandidateState, opts ...pulumi.ResourceOption) (*LeaseCandidate, error) { + var resource LeaseCandidate + err := ctx.ReadResource("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LeaseCandidate resources. +type leaseCandidateState struct { +} + +type LeaseCandidateState struct { +} + +func (LeaseCandidateState) ElementType() reflect.Type { + return reflect.TypeOf((*leaseCandidateState)(nil)).Elem() +} + +type leaseCandidateArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec *LeaseCandidateSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a LeaseCandidate resource. +type LeaseCandidateArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ObjectMetaPtrInput + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec LeaseCandidateSpecPtrInput +} + +func (LeaseCandidateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*leaseCandidateArgs)(nil)).Elem() +} + +type LeaseCandidateInput interface { + pulumi.Input + + ToLeaseCandidateOutput() LeaseCandidateOutput + ToLeaseCandidateOutputWithContext(ctx context.Context) LeaseCandidateOutput +} + +func (*LeaseCandidate) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidate)(nil)).Elem() +} + +func (i *LeaseCandidate) ToLeaseCandidateOutput() LeaseCandidateOutput { + return i.ToLeaseCandidateOutputWithContext(context.Background()) +} + +func (i *LeaseCandidate) ToLeaseCandidateOutputWithContext(ctx context.Context) LeaseCandidateOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateOutput) +} + +// LeaseCandidateArrayInput is an input type that accepts LeaseCandidateArray and LeaseCandidateArrayOutput values. +// You can construct a concrete instance of `LeaseCandidateArrayInput` via: +// +// LeaseCandidateArray{ LeaseCandidateArgs{...} } +type LeaseCandidateArrayInput interface { + pulumi.Input + + ToLeaseCandidateArrayOutput() LeaseCandidateArrayOutput + ToLeaseCandidateArrayOutputWithContext(context.Context) LeaseCandidateArrayOutput +} + +type LeaseCandidateArray []LeaseCandidateInput + +func (LeaseCandidateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LeaseCandidate)(nil)).Elem() +} + +func (i LeaseCandidateArray) ToLeaseCandidateArrayOutput() LeaseCandidateArrayOutput { + return i.ToLeaseCandidateArrayOutputWithContext(context.Background()) +} + +func (i LeaseCandidateArray) ToLeaseCandidateArrayOutputWithContext(ctx context.Context) LeaseCandidateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateArrayOutput) +} + +// LeaseCandidateMapInput is an input type that accepts LeaseCandidateMap and LeaseCandidateMapOutput values. +// You can construct a concrete instance of `LeaseCandidateMapInput` via: +// +// LeaseCandidateMap{ "key": LeaseCandidateArgs{...} } +type LeaseCandidateMapInput interface { + pulumi.Input + + ToLeaseCandidateMapOutput() LeaseCandidateMapOutput + ToLeaseCandidateMapOutputWithContext(context.Context) LeaseCandidateMapOutput +} + +type LeaseCandidateMap map[string]LeaseCandidateInput + +func (LeaseCandidateMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LeaseCandidate)(nil)).Elem() +} + +func (i LeaseCandidateMap) ToLeaseCandidateMapOutput() LeaseCandidateMapOutput { + return i.ToLeaseCandidateMapOutputWithContext(context.Background()) +} + +func (i LeaseCandidateMap) ToLeaseCandidateMapOutputWithContext(ctx context.Context) LeaseCandidateMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateMapOutput) +} + +type LeaseCandidateOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidate)(nil)).Elem() +} + +func (o LeaseCandidateOutput) ToLeaseCandidateOutput() LeaseCandidateOutput { + return o +} + +func (o LeaseCandidateOutput) ToLeaseCandidateOutputWithContext(ctx context.Context) LeaseCandidateOutput { + return o +} + +// 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 +func (o LeaseCandidateOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *LeaseCandidate) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// 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 +func (o LeaseCandidateOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *LeaseCandidate) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +func (o LeaseCandidateOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *LeaseCandidate) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +func (o LeaseCandidateOutput) Spec() LeaseCandidateSpecOutput { + return o.ApplyT(func(v *LeaseCandidate) LeaseCandidateSpecOutput { return v.Spec }).(LeaseCandidateSpecOutput) +} + +type LeaseCandidateArrayOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LeaseCandidate)(nil)).Elem() +} + +func (o LeaseCandidateArrayOutput) ToLeaseCandidateArrayOutput() LeaseCandidateArrayOutput { + return o +} + +func (o LeaseCandidateArrayOutput) ToLeaseCandidateArrayOutputWithContext(ctx context.Context) LeaseCandidateArrayOutput { + return o +} + +func (o LeaseCandidateArrayOutput) Index(i pulumi.IntInput) LeaseCandidateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LeaseCandidate { + return vs[0].([]*LeaseCandidate)[vs[1].(int)] + }).(LeaseCandidateOutput) +} + +type LeaseCandidateMapOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LeaseCandidate)(nil)).Elem() +} + +func (o LeaseCandidateMapOutput) ToLeaseCandidateMapOutput() LeaseCandidateMapOutput { + return o +} + +func (o LeaseCandidateMapOutput) ToLeaseCandidateMapOutputWithContext(ctx context.Context) LeaseCandidateMapOutput { + return o +} + +func (o LeaseCandidateMapOutput) MapIndex(k pulumi.StringInput) LeaseCandidateOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LeaseCandidate { + return vs[0].(map[string]*LeaseCandidate)[vs[1].(string)] + }).(LeaseCandidateOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateInput)(nil)).Elem(), &LeaseCandidate{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateArrayInput)(nil)).Elem(), LeaseCandidateArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateMapInput)(nil)).Elem(), LeaseCandidateMap{}) + pulumi.RegisterOutputType(LeaseCandidateOutput{}) + pulumi.RegisterOutputType(LeaseCandidateArrayOutput{}) + pulumi.RegisterOutputType(LeaseCandidateMapOutput{}) +} diff --git a/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidateList.go b/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidateList.go new file mode 100644 index 0000000000..d81ef9d447 --- /dev/null +++ b/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidateList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha2 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// LeaseCandidateList is a list of Lease objects. +type LeaseCandidateList struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // items is a list of schema objects. + Items LeaseCandidateTypeArrayOutput `pulumi:"items"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewLeaseCandidateList registers a new resource with the given unique name, arguments, and options. +func NewLeaseCandidateList(ctx *pulumi.Context, + name string, args *LeaseCandidateListArgs, opts ...pulumi.ResourceOption) (*LeaseCandidateList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("coordination.k8s.io/v1alpha2") + args.Kind = pulumi.StringPtr("LeaseCandidateList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource LeaseCandidateList + err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLeaseCandidateList gets an existing LeaseCandidateList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLeaseCandidateList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LeaseCandidateListState, opts ...pulumi.ResourceOption) (*LeaseCandidateList, error) { + var resource LeaseCandidateList + err := ctx.ReadResource("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LeaseCandidateList resources. +type leaseCandidateListState struct { +} + +type LeaseCandidateListState struct { +} + +func (LeaseCandidateListState) ElementType() reflect.Type { + return reflect.TypeOf((*leaseCandidateListState)(nil)).Elem() +} + +type leaseCandidateListArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // items is a list of schema objects. + Items []LeaseCandidateType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a LeaseCandidateList resource. +type LeaseCandidateListArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // items is a list of schema objects. + Items LeaseCandidateTypeArrayInput + // 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 + Kind pulumi.StringPtrInput + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ListMetaPtrInput +} + +func (LeaseCandidateListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*leaseCandidateListArgs)(nil)).Elem() +} + +type LeaseCandidateListInput interface { + pulumi.Input + + ToLeaseCandidateListOutput() LeaseCandidateListOutput + ToLeaseCandidateListOutputWithContext(ctx context.Context) LeaseCandidateListOutput +} + +func (*LeaseCandidateList) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidateList)(nil)).Elem() +} + +func (i *LeaseCandidateList) ToLeaseCandidateListOutput() LeaseCandidateListOutput { + return i.ToLeaseCandidateListOutputWithContext(context.Background()) +} + +func (i *LeaseCandidateList) ToLeaseCandidateListOutputWithContext(ctx context.Context) LeaseCandidateListOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateListOutput) +} + +// LeaseCandidateListArrayInput is an input type that accepts LeaseCandidateListArray and LeaseCandidateListArrayOutput values. +// You can construct a concrete instance of `LeaseCandidateListArrayInput` via: +// +// LeaseCandidateListArray{ LeaseCandidateListArgs{...} } +type LeaseCandidateListArrayInput interface { + pulumi.Input + + ToLeaseCandidateListArrayOutput() LeaseCandidateListArrayOutput + ToLeaseCandidateListArrayOutputWithContext(context.Context) LeaseCandidateListArrayOutput +} + +type LeaseCandidateListArray []LeaseCandidateListInput + +func (LeaseCandidateListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LeaseCandidateList)(nil)).Elem() +} + +func (i LeaseCandidateListArray) ToLeaseCandidateListArrayOutput() LeaseCandidateListArrayOutput { + return i.ToLeaseCandidateListArrayOutputWithContext(context.Background()) +} + +func (i LeaseCandidateListArray) ToLeaseCandidateListArrayOutputWithContext(ctx context.Context) LeaseCandidateListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateListArrayOutput) +} + +// LeaseCandidateListMapInput is an input type that accepts LeaseCandidateListMap and LeaseCandidateListMapOutput values. +// You can construct a concrete instance of `LeaseCandidateListMapInput` via: +// +// LeaseCandidateListMap{ "key": LeaseCandidateListArgs{...} } +type LeaseCandidateListMapInput interface { + pulumi.Input + + ToLeaseCandidateListMapOutput() LeaseCandidateListMapOutput + ToLeaseCandidateListMapOutputWithContext(context.Context) LeaseCandidateListMapOutput +} + +type LeaseCandidateListMap map[string]LeaseCandidateListInput + +func (LeaseCandidateListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LeaseCandidateList)(nil)).Elem() +} + +func (i LeaseCandidateListMap) ToLeaseCandidateListMapOutput() LeaseCandidateListMapOutput { + return i.ToLeaseCandidateListMapOutputWithContext(context.Background()) +} + +func (i LeaseCandidateListMap) ToLeaseCandidateListMapOutputWithContext(ctx context.Context) LeaseCandidateListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateListMapOutput) +} + +type LeaseCandidateListOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidateList)(nil)).Elem() +} + +func (o LeaseCandidateListOutput) ToLeaseCandidateListOutput() LeaseCandidateListOutput { + return o +} + +func (o LeaseCandidateListOutput) ToLeaseCandidateListOutputWithContext(ctx context.Context) LeaseCandidateListOutput { + return o +} + +// 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 +func (o LeaseCandidateListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *LeaseCandidateList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// items is a list of schema objects. +func (o LeaseCandidateListOutput) Items() LeaseCandidateTypeArrayOutput { + return o.ApplyT(func(v *LeaseCandidateList) LeaseCandidateTypeArrayOutput { return v.Items }).(LeaseCandidateTypeArrayOutput) +} + +// 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 +func (o LeaseCandidateListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *LeaseCandidateList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +func (o LeaseCandidateListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *LeaseCandidateList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type LeaseCandidateListArrayOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LeaseCandidateList)(nil)).Elem() +} + +func (o LeaseCandidateListArrayOutput) ToLeaseCandidateListArrayOutput() LeaseCandidateListArrayOutput { + return o +} + +func (o LeaseCandidateListArrayOutput) ToLeaseCandidateListArrayOutputWithContext(ctx context.Context) LeaseCandidateListArrayOutput { + return o +} + +func (o LeaseCandidateListArrayOutput) Index(i pulumi.IntInput) LeaseCandidateListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LeaseCandidateList { + return vs[0].([]*LeaseCandidateList)[vs[1].(int)] + }).(LeaseCandidateListOutput) +} + +type LeaseCandidateListMapOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LeaseCandidateList)(nil)).Elem() +} + +func (o LeaseCandidateListMapOutput) ToLeaseCandidateListMapOutput() LeaseCandidateListMapOutput { + return o +} + +func (o LeaseCandidateListMapOutput) ToLeaseCandidateListMapOutputWithContext(ctx context.Context) LeaseCandidateListMapOutput { + return o +} + +func (o LeaseCandidateListMapOutput) MapIndex(k pulumi.StringInput) LeaseCandidateListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LeaseCandidateList { + return vs[0].(map[string]*LeaseCandidateList)[vs[1].(string)] + }).(LeaseCandidateListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateListInput)(nil)).Elem(), &LeaseCandidateList{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateListArrayInput)(nil)).Elem(), LeaseCandidateListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateListMapInput)(nil)).Elem(), LeaseCandidateListMap{}) + pulumi.RegisterOutputType(LeaseCandidateListOutput{}) + pulumi.RegisterOutputType(LeaseCandidateListArrayOutput{}) + pulumi.RegisterOutputType(LeaseCandidateListMapOutput{}) +} diff --git a/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidatePatch.go b/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidatePatch.go new file mode 100644 index 0000000000..be6a10b617 --- /dev/null +++ b/sdk/go/kubernetes/coordination/v1alpha2/leaseCandidatePatch.go @@ -0,0 +1,259 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha2 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. +type LeaseCandidatePatch struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec LeaseCandidateSpecPatchPtrOutput `pulumi:"spec"` +} + +// NewLeaseCandidatePatch registers a new resource with the given unique name, arguments, and options. +func NewLeaseCandidatePatch(ctx *pulumi.Context, + name string, args *LeaseCandidatePatchArgs, opts ...pulumi.ResourceOption) (*LeaseCandidatePatch, error) { + if args == nil { + args = &LeaseCandidatePatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("coordination.k8s.io/v1alpha2") + args.Kind = pulumi.StringPtr("LeaseCandidate") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidatePatch"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource LeaseCandidatePatch + err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLeaseCandidatePatch gets an existing LeaseCandidatePatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLeaseCandidatePatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LeaseCandidatePatchState, opts ...pulumi.ResourceOption) (*LeaseCandidatePatch, error) { + var resource LeaseCandidatePatch + err := ctx.ReadResource("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LeaseCandidatePatch resources. +type leaseCandidatePatchState struct { +} + +type LeaseCandidatePatchState struct { +} + +func (LeaseCandidatePatchState) ElementType() reflect.Type { + return reflect.TypeOf((*leaseCandidatePatchState)(nil)).Elem() +} + +type leaseCandidatePatchArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec *LeaseCandidateSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a LeaseCandidatePatch resource. +type LeaseCandidatePatchArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ObjectMetaPatchPtrInput + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec LeaseCandidateSpecPatchPtrInput +} + +func (LeaseCandidatePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*leaseCandidatePatchArgs)(nil)).Elem() +} + +type LeaseCandidatePatchInput interface { + pulumi.Input + + ToLeaseCandidatePatchOutput() LeaseCandidatePatchOutput + ToLeaseCandidatePatchOutputWithContext(ctx context.Context) LeaseCandidatePatchOutput +} + +func (*LeaseCandidatePatch) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidatePatch)(nil)).Elem() +} + +func (i *LeaseCandidatePatch) ToLeaseCandidatePatchOutput() LeaseCandidatePatchOutput { + return i.ToLeaseCandidatePatchOutputWithContext(context.Background()) +} + +func (i *LeaseCandidatePatch) ToLeaseCandidatePatchOutputWithContext(ctx context.Context) LeaseCandidatePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidatePatchOutput) +} + +// LeaseCandidatePatchArrayInput is an input type that accepts LeaseCandidatePatchArray and LeaseCandidatePatchArrayOutput values. +// You can construct a concrete instance of `LeaseCandidatePatchArrayInput` via: +// +// LeaseCandidatePatchArray{ LeaseCandidatePatchArgs{...} } +type LeaseCandidatePatchArrayInput interface { + pulumi.Input + + ToLeaseCandidatePatchArrayOutput() LeaseCandidatePatchArrayOutput + ToLeaseCandidatePatchArrayOutputWithContext(context.Context) LeaseCandidatePatchArrayOutput +} + +type LeaseCandidatePatchArray []LeaseCandidatePatchInput + +func (LeaseCandidatePatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LeaseCandidatePatch)(nil)).Elem() +} + +func (i LeaseCandidatePatchArray) ToLeaseCandidatePatchArrayOutput() LeaseCandidatePatchArrayOutput { + return i.ToLeaseCandidatePatchArrayOutputWithContext(context.Background()) +} + +func (i LeaseCandidatePatchArray) ToLeaseCandidatePatchArrayOutputWithContext(ctx context.Context) LeaseCandidatePatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidatePatchArrayOutput) +} + +// LeaseCandidatePatchMapInput is an input type that accepts LeaseCandidatePatchMap and LeaseCandidatePatchMapOutput values. +// You can construct a concrete instance of `LeaseCandidatePatchMapInput` via: +// +// LeaseCandidatePatchMap{ "key": LeaseCandidatePatchArgs{...} } +type LeaseCandidatePatchMapInput interface { + pulumi.Input + + ToLeaseCandidatePatchMapOutput() LeaseCandidatePatchMapOutput + ToLeaseCandidatePatchMapOutputWithContext(context.Context) LeaseCandidatePatchMapOutput +} + +type LeaseCandidatePatchMap map[string]LeaseCandidatePatchInput + +func (LeaseCandidatePatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LeaseCandidatePatch)(nil)).Elem() +} + +func (i LeaseCandidatePatchMap) ToLeaseCandidatePatchMapOutput() LeaseCandidatePatchMapOutput { + return i.ToLeaseCandidatePatchMapOutputWithContext(context.Background()) +} + +func (i LeaseCandidatePatchMap) ToLeaseCandidatePatchMapOutputWithContext(ctx context.Context) LeaseCandidatePatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidatePatchMapOutput) +} + +type LeaseCandidatePatchOutput struct{ *pulumi.OutputState } + +func (LeaseCandidatePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidatePatch)(nil)).Elem() +} + +func (o LeaseCandidatePatchOutput) ToLeaseCandidatePatchOutput() LeaseCandidatePatchOutput { + return o +} + +func (o LeaseCandidatePatchOutput) ToLeaseCandidatePatchOutputWithContext(ctx context.Context) LeaseCandidatePatchOutput { + return o +} + +// 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 +func (o LeaseCandidatePatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidatePatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o LeaseCandidatePatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidatePatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +func (o LeaseCandidatePatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *LeaseCandidatePatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +func (o LeaseCandidatePatchOutput) Spec() LeaseCandidateSpecPatchPtrOutput { + return o.ApplyT(func(v *LeaseCandidatePatch) LeaseCandidateSpecPatchPtrOutput { return v.Spec }).(LeaseCandidateSpecPatchPtrOutput) +} + +type LeaseCandidatePatchArrayOutput struct{ *pulumi.OutputState } + +func (LeaseCandidatePatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LeaseCandidatePatch)(nil)).Elem() +} + +func (o LeaseCandidatePatchArrayOutput) ToLeaseCandidatePatchArrayOutput() LeaseCandidatePatchArrayOutput { + return o +} + +func (o LeaseCandidatePatchArrayOutput) ToLeaseCandidatePatchArrayOutputWithContext(ctx context.Context) LeaseCandidatePatchArrayOutput { + return o +} + +func (o LeaseCandidatePatchArrayOutput) Index(i pulumi.IntInput) LeaseCandidatePatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LeaseCandidatePatch { + return vs[0].([]*LeaseCandidatePatch)[vs[1].(int)] + }).(LeaseCandidatePatchOutput) +} + +type LeaseCandidatePatchMapOutput struct{ *pulumi.OutputState } + +func (LeaseCandidatePatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LeaseCandidatePatch)(nil)).Elem() +} + +func (o LeaseCandidatePatchMapOutput) ToLeaseCandidatePatchMapOutput() LeaseCandidatePatchMapOutput { + return o +} + +func (o LeaseCandidatePatchMapOutput) ToLeaseCandidatePatchMapOutputWithContext(ctx context.Context) LeaseCandidatePatchMapOutput { + return o +} + +func (o LeaseCandidatePatchMapOutput) MapIndex(k pulumi.StringInput) LeaseCandidatePatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LeaseCandidatePatch { + return vs[0].(map[string]*LeaseCandidatePatch)[vs[1].(string)] + }).(LeaseCandidatePatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidatePatchInput)(nil)).Elem(), &LeaseCandidatePatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidatePatchArrayInput)(nil)).Elem(), LeaseCandidatePatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidatePatchMapInput)(nil)).Elem(), LeaseCandidatePatchMap{}) + pulumi.RegisterOutputType(LeaseCandidatePatchOutput{}) + pulumi.RegisterOutputType(LeaseCandidatePatchArrayOutput{}) + pulumi.RegisterOutputType(LeaseCandidatePatchMapOutput{}) +} diff --git a/sdk/go/kubernetes/coordination/v1alpha2/pulumiTypes.go b/sdk/go/kubernetes/coordination/v1alpha2/pulumiTypes.go new file mode 100644 index 0000000000..158b678f12 --- /dev/null +++ b/sdk/go/kubernetes/coordination/v1alpha2/pulumiTypes.go @@ -0,0 +1,795 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha2 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = utilities.GetEnvOrDefault + +// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. +type LeaseCandidateType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec *LeaseCandidateSpec `pulumi:"spec"` +} + +// LeaseCandidateTypeInput is an input type that accepts LeaseCandidateTypeArgs and LeaseCandidateTypeOutput values. +// You can construct a concrete instance of `LeaseCandidateTypeInput` via: +// +// LeaseCandidateTypeArgs{...} +type LeaseCandidateTypeInput interface { + pulumi.Input + + ToLeaseCandidateTypeOutput() LeaseCandidateTypeOutput + ToLeaseCandidateTypeOutputWithContext(context.Context) LeaseCandidateTypeOutput +} + +// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. +type LeaseCandidateTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec LeaseCandidateSpecPtrInput `pulumi:"spec"` +} + +func (LeaseCandidateTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidateType)(nil)).Elem() +} + +func (i LeaseCandidateTypeArgs) ToLeaseCandidateTypeOutput() LeaseCandidateTypeOutput { + return i.ToLeaseCandidateTypeOutputWithContext(context.Background()) +} + +func (i LeaseCandidateTypeArgs) ToLeaseCandidateTypeOutputWithContext(ctx context.Context) LeaseCandidateTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateTypeOutput) +} + +// LeaseCandidateTypeArrayInput is an input type that accepts LeaseCandidateTypeArray and LeaseCandidateTypeArrayOutput values. +// You can construct a concrete instance of `LeaseCandidateTypeArrayInput` via: +// +// LeaseCandidateTypeArray{ LeaseCandidateTypeArgs{...} } +type LeaseCandidateTypeArrayInput interface { + pulumi.Input + + ToLeaseCandidateTypeArrayOutput() LeaseCandidateTypeArrayOutput + ToLeaseCandidateTypeArrayOutputWithContext(context.Context) LeaseCandidateTypeArrayOutput +} + +type LeaseCandidateTypeArray []LeaseCandidateTypeInput + +func (LeaseCandidateTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LeaseCandidateType)(nil)).Elem() +} + +func (i LeaseCandidateTypeArray) ToLeaseCandidateTypeArrayOutput() LeaseCandidateTypeArrayOutput { + return i.ToLeaseCandidateTypeArrayOutputWithContext(context.Background()) +} + +func (i LeaseCandidateTypeArray) ToLeaseCandidateTypeArrayOutputWithContext(ctx context.Context) LeaseCandidateTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateTypeArrayOutput) +} + +// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. +type LeaseCandidateTypeOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidateType)(nil)).Elem() +} + +func (o LeaseCandidateTypeOutput) ToLeaseCandidateTypeOutput() LeaseCandidateTypeOutput { + return o +} + +func (o LeaseCandidateTypeOutput) ToLeaseCandidateTypeOutputWithContext(ctx context.Context) LeaseCandidateTypeOutput { + return o +} + +// 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 +func (o LeaseCandidateTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o LeaseCandidateTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +func (o LeaseCandidateTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v LeaseCandidateType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +func (o LeaseCandidateTypeOutput) Spec() LeaseCandidateSpecPtrOutput { + return o.ApplyT(func(v LeaseCandidateType) *LeaseCandidateSpec { return v.Spec }).(LeaseCandidateSpecPtrOutput) +} + +type LeaseCandidateTypeArrayOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LeaseCandidateType)(nil)).Elem() +} + +func (o LeaseCandidateTypeArrayOutput) ToLeaseCandidateTypeArrayOutput() LeaseCandidateTypeArrayOutput { + return o +} + +func (o LeaseCandidateTypeArrayOutput) ToLeaseCandidateTypeArrayOutputWithContext(ctx context.Context) LeaseCandidateTypeArrayOutput { + return o +} + +func (o LeaseCandidateTypeArrayOutput) Index(i pulumi.IntInput) LeaseCandidateTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LeaseCandidateType { + return vs[0].([]LeaseCandidateType)[vs[1].(int)] + }).(LeaseCandidateTypeOutput) +} + +// LeaseCandidateList is a list of Lease objects. +type LeaseCandidateListType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // items is a list of schema objects. + Items []LeaseCandidateType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// LeaseCandidateListTypeInput is an input type that accepts LeaseCandidateListTypeArgs and LeaseCandidateListTypeOutput values. +// You can construct a concrete instance of `LeaseCandidateListTypeInput` via: +// +// LeaseCandidateListTypeArgs{...} +type LeaseCandidateListTypeInput interface { + pulumi.Input + + ToLeaseCandidateListTypeOutput() LeaseCandidateListTypeOutput + ToLeaseCandidateListTypeOutputWithContext(context.Context) LeaseCandidateListTypeOutput +} + +// LeaseCandidateList is a list of Lease objects. +type LeaseCandidateListTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // items is a list of schema objects. + Items LeaseCandidateTypeArrayInput `pulumi:"items"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (LeaseCandidateListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidateListType)(nil)).Elem() +} + +func (i LeaseCandidateListTypeArgs) ToLeaseCandidateListTypeOutput() LeaseCandidateListTypeOutput { + return i.ToLeaseCandidateListTypeOutputWithContext(context.Background()) +} + +func (i LeaseCandidateListTypeArgs) ToLeaseCandidateListTypeOutputWithContext(ctx context.Context) LeaseCandidateListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateListTypeOutput) +} + +// LeaseCandidateList is a list of Lease objects. +type LeaseCandidateListTypeOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidateListType)(nil)).Elem() +} + +func (o LeaseCandidateListTypeOutput) ToLeaseCandidateListTypeOutput() LeaseCandidateListTypeOutput { + return o +} + +func (o LeaseCandidateListTypeOutput) ToLeaseCandidateListTypeOutputWithContext(ctx context.Context) LeaseCandidateListTypeOutput { + return o +} + +// 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 +func (o LeaseCandidateListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// items is a list of schema objects. +func (o LeaseCandidateListTypeOutput) Items() LeaseCandidateTypeArrayOutput { + return o.ApplyT(func(v LeaseCandidateListType) []LeaseCandidateType { return v.Items }).(LeaseCandidateTypeArrayOutput) +} + +// 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 +func (o LeaseCandidateListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +func (o LeaseCandidateListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v LeaseCandidateListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. +type LeaseCandidatePatchType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec *LeaseCandidateSpecPatch `pulumi:"spec"` +} + +// LeaseCandidatePatchTypeInput is an input type that accepts LeaseCandidatePatchTypeArgs and LeaseCandidatePatchTypeOutput values. +// You can construct a concrete instance of `LeaseCandidatePatchTypeInput` via: +// +// LeaseCandidatePatchTypeArgs{...} +type LeaseCandidatePatchTypeInput interface { + pulumi.Input + + ToLeaseCandidatePatchTypeOutput() LeaseCandidatePatchTypeOutput + ToLeaseCandidatePatchTypeOutputWithContext(context.Context) LeaseCandidatePatchTypeOutput +} + +// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. +type LeaseCandidatePatchTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + Spec LeaseCandidateSpecPatchPtrInput `pulumi:"spec"` +} + +func (LeaseCandidatePatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidatePatchType)(nil)).Elem() +} + +func (i LeaseCandidatePatchTypeArgs) ToLeaseCandidatePatchTypeOutput() LeaseCandidatePatchTypeOutput { + return i.ToLeaseCandidatePatchTypeOutputWithContext(context.Background()) +} + +func (i LeaseCandidatePatchTypeArgs) ToLeaseCandidatePatchTypeOutputWithContext(ctx context.Context) LeaseCandidatePatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidatePatchTypeOutput) +} + +// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. +type LeaseCandidatePatchTypeOutput struct{ *pulumi.OutputState } + +func (LeaseCandidatePatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidatePatchType)(nil)).Elem() +} + +func (o LeaseCandidatePatchTypeOutput) ToLeaseCandidatePatchTypeOutput() LeaseCandidatePatchTypeOutput { + return o +} + +func (o LeaseCandidatePatchTypeOutput) ToLeaseCandidatePatchTypeOutputWithContext(ctx context.Context) LeaseCandidatePatchTypeOutput { + return o +} + +// 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 +func (o LeaseCandidatePatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidatePatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o LeaseCandidatePatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidatePatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +func (o LeaseCandidatePatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v LeaseCandidatePatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +func (o LeaseCandidatePatchTypeOutput) Spec() LeaseCandidateSpecPatchPtrOutput { + return o.ApplyT(func(v LeaseCandidatePatchType) *LeaseCandidateSpecPatch { return v.Spec }).(LeaseCandidateSpecPatchPtrOutput) +} + +// LeaseCandidateSpec is a specification of a Lease. +type LeaseCandidateSpec struct { + // BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + BinaryVersion string `pulumi:"binaryVersion"` + // EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + EmulationVersion *string `pulumi:"emulationVersion"` + // LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + LeaseName string `pulumi:"leaseName"` + // PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + PingTime *string `pulumi:"pingTime"` + // RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + RenewTime *string `pulumi:"renewTime"` + // Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + Strategy string `pulumi:"strategy"` +} + +// LeaseCandidateSpecInput is an input type that accepts LeaseCandidateSpecArgs and LeaseCandidateSpecOutput values. +// You can construct a concrete instance of `LeaseCandidateSpecInput` via: +// +// LeaseCandidateSpecArgs{...} +type LeaseCandidateSpecInput interface { + pulumi.Input + + ToLeaseCandidateSpecOutput() LeaseCandidateSpecOutput + ToLeaseCandidateSpecOutputWithContext(context.Context) LeaseCandidateSpecOutput +} + +// LeaseCandidateSpec is a specification of a Lease. +type LeaseCandidateSpecArgs struct { + // BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + BinaryVersion pulumi.StringInput `pulumi:"binaryVersion"` + // EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + EmulationVersion pulumi.StringPtrInput `pulumi:"emulationVersion"` + // LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + LeaseName pulumi.StringInput `pulumi:"leaseName"` + // PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + PingTime pulumi.StringPtrInput `pulumi:"pingTime"` + // RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + RenewTime pulumi.StringPtrInput `pulumi:"renewTime"` + // Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + Strategy pulumi.StringInput `pulumi:"strategy"` +} + +func (LeaseCandidateSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidateSpec)(nil)).Elem() +} + +func (i LeaseCandidateSpecArgs) ToLeaseCandidateSpecOutput() LeaseCandidateSpecOutput { + return i.ToLeaseCandidateSpecOutputWithContext(context.Background()) +} + +func (i LeaseCandidateSpecArgs) ToLeaseCandidateSpecOutputWithContext(ctx context.Context) LeaseCandidateSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateSpecOutput) +} + +func (i LeaseCandidateSpecArgs) ToLeaseCandidateSpecPtrOutput() LeaseCandidateSpecPtrOutput { + return i.ToLeaseCandidateSpecPtrOutputWithContext(context.Background()) +} + +func (i LeaseCandidateSpecArgs) ToLeaseCandidateSpecPtrOutputWithContext(ctx context.Context) LeaseCandidateSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateSpecOutput).ToLeaseCandidateSpecPtrOutputWithContext(ctx) +} + +// LeaseCandidateSpecPtrInput is an input type that accepts LeaseCandidateSpecArgs, LeaseCandidateSpecPtr and LeaseCandidateSpecPtrOutput values. +// You can construct a concrete instance of `LeaseCandidateSpecPtrInput` via: +// +// LeaseCandidateSpecArgs{...} +// +// or: +// +// nil +type LeaseCandidateSpecPtrInput interface { + pulumi.Input + + ToLeaseCandidateSpecPtrOutput() LeaseCandidateSpecPtrOutput + ToLeaseCandidateSpecPtrOutputWithContext(context.Context) LeaseCandidateSpecPtrOutput +} + +type leaseCandidateSpecPtrType LeaseCandidateSpecArgs + +func LeaseCandidateSpecPtr(v *LeaseCandidateSpecArgs) LeaseCandidateSpecPtrInput { + return (*leaseCandidateSpecPtrType)(v) +} + +func (*leaseCandidateSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidateSpec)(nil)).Elem() +} + +func (i *leaseCandidateSpecPtrType) ToLeaseCandidateSpecPtrOutput() LeaseCandidateSpecPtrOutput { + return i.ToLeaseCandidateSpecPtrOutputWithContext(context.Background()) +} + +func (i *leaseCandidateSpecPtrType) ToLeaseCandidateSpecPtrOutputWithContext(ctx context.Context) LeaseCandidateSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateSpecPtrOutput) +} + +// LeaseCandidateSpec is a specification of a Lease. +type LeaseCandidateSpecOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidateSpec)(nil)).Elem() +} + +func (o LeaseCandidateSpecOutput) ToLeaseCandidateSpecOutput() LeaseCandidateSpecOutput { + return o +} + +func (o LeaseCandidateSpecOutput) ToLeaseCandidateSpecOutputWithContext(ctx context.Context) LeaseCandidateSpecOutput { + return o +} + +func (o LeaseCandidateSpecOutput) ToLeaseCandidateSpecPtrOutput() LeaseCandidateSpecPtrOutput { + return o.ToLeaseCandidateSpecPtrOutputWithContext(context.Background()) +} + +func (o LeaseCandidateSpecOutput) ToLeaseCandidateSpecPtrOutputWithContext(ctx context.Context) LeaseCandidateSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LeaseCandidateSpec) *LeaseCandidateSpec { + return &v + }).(LeaseCandidateSpecPtrOutput) +} + +// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. +func (o LeaseCandidateSpecOutput) BinaryVersion() pulumi.StringOutput { + return o.ApplyT(func(v LeaseCandidateSpec) string { return v.BinaryVersion }).(pulumi.StringOutput) +} + +// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" +func (o LeaseCandidateSpecOutput) EmulationVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpec) *string { return v.EmulationVersion }).(pulumi.StringPtrOutput) +} + +// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. +func (o LeaseCandidateSpecOutput) LeaseName() pulumi.StringOutput { + return o.ApplyT(func(v LeaseCandidateSpec) string { return v.LeaseName }).(pulumi.StringOutput) +} + +// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. +func (o LeaseCandidateSpecOutput) PingTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpec) *string { return v.PingTime }).(pulumi.StringPtrOutput) +} + +// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. +func (o LeaseCandidateSpecOutput) RenewTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpec) *string { return v.RenewTime }).(pulumi.StringPtrOutput) +} + +// Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. +func (o LeaseCandidateSpecOutput) Strategy() pulumi.StringOutput { + return o.ApplyT(func(v LeaseCandidateSpec) string { return v.Strategy }).(pulumi.StringOutput) +} + +type LeaseCandidateSpecPtrOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidateSpec)(nil)).Elem() +} + +func (o LeaseCandidateSpecPtrOutput) ToLeaseCandidateSpecPtrOutput() LeaseCandidateSpecPtrOutput { + return o +} + +func (o LeaseCandidateSpecPtrOutput) ToLeaseCandidateSpecPtrOutputWithContext(ctx context.Context) LeaseCandidateSpecPtrOutput { + return o +} + +func (o LeaseCandidateSpecPtrOutput) Elem() LeaseCandidateSpecOutput { + return o.ApplyT(func(v *LeaseCandidateSpec) LeaseCandidateSpec { + if v != nil { + return *v + } + var ret LeaseCandidateSpec + return ret + }).(LeaseCandidateSpecOutput) +} + +// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. +func (o LeaseCandidateSpecPtrOutput) BinaryVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpec) *string { + if v == nil { + return nil + } + return &v.BinaryVersion + }).(pulumi.StringPtrOutput) +} + +// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" +func (o LeaseCandidateSpecPtrOutput) EmulationVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpec) *string { + if v == nil { + return nil + } + return v.EmulationVersion + }).(pulumi.StringPtrOutput) +} + +// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. +func (o LeaseCandidateSpecPtrOutput) LeaseName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpec) *string { + if v == nil { + return nil + } + return &v.LeaseName + }).(pulumi.StringPtrOutput) +} + +// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. +func (o LeaseCandidateSpecPtrOutput) PingTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpec) *string { + if v == nil { + return nil + } + return v.PingTime + }).(pulumi.StringPtrOutput) +} + +// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. +func (o LeaseCandidateSpecPtrOutput) RenewTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpec) *string { + if v == nil { + return nil + } + return v.RenewTime + }).(pulumi.StringPtrOutput) +} + +// Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. +func (o LeaseCandidateSpecPtrOutput) Strategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpec) *string { + if v == nil { + return nil + } + return &v.Strategy + }).(pulumi.StringPtrOutput) +} + +// LeaseCandidateSpec is a specification of a Lease. +type LeaseCandidateSpecPatch struct { + // BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + BinaryVersion *string `pulumi:"binaryVersion"` + // EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + EmulationVersion *string `pulumi:"emulationVersion"` + // LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + LeaseName *string `pulumi:"leaseName"` + // PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + PingTime *string `pulumi:"pingTime"` + // RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + RenewTime *string `pulumi:"renewTime"` + // Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + Strategy *string `pulumi:"strategy"` +} + +// LeaseCandidateSpecPatchInput is an input type that accepts LeaseCandidateSpecPatchArgs and LeaseCandidateSpecPatchOutput values. +// You can construct a concrete instance of `LeaseCandidateSpecPatchInput` via: +// +// LeaseCandidateSpecPatchArgs{...} +type LeaseCandidateSpecPatchInput interface { + pulumi.Input + + ToLeaseCandidateSpecPatchOutput() LeaseCandidateSpecPatchOutput + ToLeaseCandidateSpecPatchOutputWithContext(context.Context) LeaseCandidateSpecPatchOutput +} + +// LeaseCandidateSpec is a specification of a Lease. +type LeaseCandidateSpecPatchArgs struct { + // BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + BinaryVersion pulumi.StringPtrInput `pulumi:"binaryVersion"` + // EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + EmulationVersion pulumi.StringPtrInput `pulumi:"emulationVersion"` + // LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + LeaseName pulumi.StringPtrInput `pulumi:"leaseName"` + // PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + PingTime pulumi.StringPtrInput `pulumi:"pingTime"` + // RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + RenewTime pulumi.StringPtrInput `pulumi:"renewTime"` + // Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + Strategy pulumi.StringPtrInput `pulumi:"strategy"` +} + +func (LeaseCandidateSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidateSpecPatch)(nil)).Elem() +} + +func (i LeaseCandidateSpecPatchArgs) ToLeaseCandidateSpecPatchOutput() LeaseCandidateSpecPatchOutput { + return i.ToLeaseCandidateSpecPatchOutputWithContext(context.Background()) +} + +func (i LeaseCandidateSpecPatchArgs) ToLeaseCandidateSpecPatchOutputWithContext(ctx context.Context) LeaseCandidateSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateSpecPatchOutput) +} + +func (i LeaseCandidateSpecPatchArgs) ToLeaseCandidateSpecPatchPtrOutput() LeaseCandidateSpecPatchPtrOutput { + return i.ToLeaseCandidateSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i LeaseCandidateSpecPatchArgs) ToLeaseCandidateSpecPatchPtrOutputWithContext(ctx context.Context) LeaseCandidateSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateSpecPatchOutput).ToLeaseCandidateSpecPatchPtrOutputWithContext(ctx) +} + +// LeaseCandidateSpecPatchPtrInput is an input type that accepts LeaseCandidateSpecPatchArgs, LeaseCandidateSpecPatchPtr and LeaseCandidateSpecPatchPtrOutput values. +// You can construct a concrete instance of `LeaseCandidateSpecPatchPtrInput` via: +// +// LeaseCandidateSpecPatchArgs{...} +// +// or: +// +// nil +type LeaseCandidateSpecPatchPtrInput interface { + pulumi.Input + + ToLeaseCandidateSpecPatchPtrOutput() LeaseCandidateSpecPatchPtrOutput + ToLeaseCandidateSpecPatchPtrOutputWithContext(context.Context) LeaseCandidateSpecPatchPtrOutput +} + +type leaseCandidateSpecPatchPtrType LeaseCandidateSpecPatchArgs + +func LeaseCandidateSpecPatchPtr(v *LeaseCandidateSpecPatchArgs) LeaseCandidateSpecPatchPtrInput { + return (*leaseCandidateSpecPatchPtrType)(v) +} + +func (*leaseCandidateSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidateSpecPatch)(nil)).Elem() +} + +func (i *leaseCandidateSpecPatchPtrType) ToLeaseCandidateSpecPatchPtrOutput() LeaseCandidateSpecPatchPtrOutput { + return i.ToLeaseCandidateSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *leaseCandidateSpecPatchPtrType) ToLeaseCandidateSpecPatchPtrOutputWithContext(ctx context.Context) LeaseCandidateSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LeaseCandidateSpecPatchPtrOutput) +} + +// LeaseCandidateSpec is a specification of a Lease. +type LeaseCandidateSpecPatchOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LeaseCandidateSpecPatch)(nil)).Elem() +} + +func (o LeaseCandidateSpecPatchOutput) ToLeaseCandidateSpecPatchOutput() LeaseCandidateSpecPatchOutput { + return o +} + +func (o LeaseCandidateSpecPatchOutput) ToLeaseCandidateSpecPatchOutputWithContext(ctx context.Context) LeaseCandidateSpecPatchOutput { + return o +} + +func (o LeaseCandidateSpecPatchOutput) ToLeaseCandidateSpecPatchPtrOutput() LeaseCandidateSpecPatchPtrOutput { + return o.ToLeaseCandidateSpecPatchPtrOutputWithContext(context.Background()) +} + +func (o LeaseCandidateSpecPatchOutput) ToLeaseCandidateSpecPatchPtrOutputWithContext(ctx context.Context) LeaseCandidateSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LeaseCandidateSpecPatch) *LeaseCandidateSpecPatch { + return &v + }).(LeaseCandidateSpecPatchPtrOutput) +} + +// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. +func (o LeaseCandidateSpecPatchOutput) BinaryVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpecPatch) *string { return v.BinaryVersion }).(pulumi.StringPtrOutput) +} + +// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" +func (o LeaseCandidateSpecPatchOutput) EmulationVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpecPatch) *string { return v.EmulationVersion }).(pulumi.StringPtrOutput) +} + +// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. +func (o LeaseCandidateSpecPatchOutput) LeaseName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpecPatch) *string { return v.LeaseName }).(pulumi.StringPtrOutput) +} + +// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. +func (o LeaseCandidateSpecPatchOutput) PingTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpecPatch) *string { return v.PingTime }).(pulumi.StringPtrOutput) +} + +// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. +func (o LeaseCandidateSpecPatchOutput) RenewTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpecPatch) *string { return v.RenewTime }).(pulumi.StringPtrOutput) +} + +// Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. +func (o LeaseCandidateSpecPatchOutput) Strategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v LeaseCandidateSpecPatch) *string { return v.Strategy }).(pulumi.StringPtrOutput) +} + +type LeaseCandidateSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (LeaseCandidateSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LeaseCandidateSpecPatch)(nil)).Elem() +} + +func (o LeaseCandidateSpecPatchPtrOutput) ToLeaseCandidateSpecPatchPtrOutput() LeaseCandidateSpecPatchPtrOutput { + return o +} + +func (o LeaseCandidateSpecPatchPtrOutput) ToLeaseCandidateSpecPatchPtrOutputWithContext(ctx context.Context) LeaseCandidateSpecPatchPtrOutput { + return o +} + +func (o LeaseCandidateSpecPatchPtrOutput) Elem() LeaseCandidateSpecPatchOutput { + return o.ApplyT(func(v *LeaseCandidateSpecPatch) LeaseCandidateSpecPatch { + if v != nil { + return *v + } + var ret LeaseCandidateSpecPatch + return ret + }).(LeaseCandidateSpecPatchOutput) +} + +// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. +func (o LeaseCandidateSpecPatchPtrOutput) BinaryVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpecPatch) *string { + if v == nil { + return nil + } + return v.BinaryVersion + }).(pulumi.StringPtrOutput) +} + +// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" +func (o LeaseCandidateSpecPatchPtrOutput) EmulationVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpecPatch) *string { + if v == nil { + return nil + } + return v.EmulationVersion + }).(pulumi.StringPtrOutput) +} + +// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. +func (o LeaseCandidateSpecPatchPtrOutput) LeaseName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpecPatch) *string { + if v == nil { + return nil + } + return v.LeaseName + }).(pulumi.StringPtrOutput) +} + +// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. +func (o LeaseCandidateSpecPatchPtrOutput) PingTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpecPatch) *string { + if v == nil { + return nil + } + return v.PingTime + }).(pulumi.StringPtrOutput) +} + +// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. +func (o LeaseCandidateSpecPatchPtrOutput) RenewTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpecPatch) *string { + if v == nil { + return nil + } + return v.RenewTime + }).(pulumi.StringPtrOutput) +} + +// Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. +func (o LeaseCandidateSpecPatchPtrOutput) Strategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LeaseCandidateSpecPatch) *string { + if v == nil { + return nil + } + return v.Strategy + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateTypeInput)(nil)).Elem(), LeaseCandidateTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateTypeArrayInput)(nil)).Elem(), LeaseCandidateTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateListTypeInput)(nil)).Elem(), LeaseCandidateListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidatePatchTypeInput)(nil)).Elem(), LeaseCandidatePatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateSpecInput)(nil)).Elem(), LeaseCandidateSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateSpecPtrInput)(nil)).Elem(), LeaseCandidateSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateSpecPatchInput)(nil)).Elem(), LeaseCandidateSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LeaseCandidateSpecPatchPtrInput)(nil)).Elem(), LeaseCandidateSpecPatchArgs{}) + pulumi.RegisterOutputType(LeaseCandidateTypeOutput{}) + pulumi.RegisterOutputType(LeaseCandidateTypeArrayOutput{}) + pulumi.RegisterOutputType(LeaseCandidateListTypeOutput{}) + pulumi.RegisterOutputType(LeaseCandidatePatchTypeOutput{}) + pulumi.RegisterOutputType(LeaseCandidateSpecOutput{}) + pulumi.RegisterOutputType(LeaseCandidateSpecPtrOutput{}) + pulumi.RegisterOutputType(LeaseCandidateSpecPatchOutput{}) + pulumi.RegisterOutputType(LeaseCandidateSpecPatchPtrOutput{}) +} diff --git a/sdk/go/kubernetes/core/v1/binding.go b/sdk/go/kubernetes/core/v1/binding.go index fc96433993..357d8f5408 100644 --- a/sdk/go/kubernetes/core/v1/binding.go +++ b/sdk/go/kubernetes/core/v1/binding.go @@ -13,7 +13,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. +// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. type Binding struct { pulumi.CustomResourceState diff --git a/sdk/go/kubernetes/core/v1/bindingPatch.go b/sdk/go/kubernetes/core/v1/bindingPatch.go index 421ae72f5f..aee01ea027 100644 --- a/sdk/go/kubernetes/core/v1/bindingPatch.go +++ b/sdk/go/kubernetes/core/v1/bindingPatch.go @@ -18,7 +18,7 @@ import ( // Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the // [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for // additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. -// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. +// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. type BindingPatch struct { pulumi.CustomResourceState diff --git a/sdk/go/kubernetes/core/v1/pulumiTypes.go b/sdk/go/kubernetes/core/v1/pulumiTypes.go index 77d713a477..13a1777199 100644 --- a/sdk/go/kubernetes/core/v1/pulumiTypes.go +++ b/sdk/go/kubernetes/core/v1/pulumiTypes.go @@ -2560,7 +2560,7 @@ func (o AzureFileVolumeSourcePatchPtrOutput) ShareName() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } -// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. +// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. type BindingType struct { // 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 ApiVersion *string `pulumi:"apiVersion"` @@ -2583,7 +2583,7 @@ type BindingTypeInput interface { ToBindingTypeOutputWithContext(context.Context) BindingTypeOutput } -// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. +// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. type BindingTypeArgs struct { // 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 ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` @@ -2607,7 +2607,7 @@ func (i BindingTypeArgs) ToBindingTypeOutputWithContext(ctx context.Context) Bin return pulumi.ToOutputWithContext(ctx, i).(BindingTypeOutput) } -// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. +// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. type BindingTypeOutput struct{ *pulumi.OutputState } func (BindingTypeOutput) ElementType() reflect.Type { @@ -2642,7 +2642,7 @@ func (o BindingTypeOutput) Target() ObjectReferenceOutput { return o.ApplyT(func(v BindingType) ObjectReference { return v.Target }).(ObjectReferenceOutput) } -// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. +// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. type BindingPatchType struct { // 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 ApiVersion *string `pulumi:"apiVersion"` @@ -2665,7 +2665,7 @@ type BindingPatchTypeInput interface { ToBindingPatchTypeOutputWithContext(context.Context) BindingPatchTypeOutput } -// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. +// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. type BindingPatchTypeArgs struct { // 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 ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` @@ -2689,7 +2689,7 @@ func (i BindingPatchTypeArgs) ToBindingPatchTypeOutputWithContext(ctx context.Co return pulumi.ToOutputWithContext(ctx, i).(BindingPatchTypeOutput) } -// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. +// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. type BindingPatchTypeOutput struct{ *pulumi.OutputState } func (BindingPatchTypeOutput) ElementType() reflect.Type { @@ -2724,7 +2724,7 @@ func (o BindingPatchTypeOutput) Target() ObjectReferencePatchPtrOutput { return o.ApplyT(func(v BindingPatchType) *ObjectReferencePatch { return v.Target }).(ObjectReferencePatchPtrOutput) } -// Represents storage that is managed by an external CSI volume driver (Beta feature) +// Represents storage that is managed by an external CSI volume driver type CSIPersistentVolumeSource struct { // controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. ControllerExpandSecretRef *SecretReference `pulumi:"controllerExpandSecretRef"` @@ -2759,7 +2759,7 @@ type CSIPersistentVolumeSourceInput interface { ToCSIPersistentVolumeSourceOutputWithContext(context.Context) CSIPersistentVolumeSourceOutput } -// Represents storage that is managed by an external CSI volume driver (Beta feature) +// Represents storage that is managed by an external CSI volume driver type CSIPersistentVolumeSourceArgs struct { // controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. ControllerExpandSecretRef SecretReferencePtrInput `pulumi:"controllerExpandSecretRef"` @@ -2836,7 +2836,7 @@ func (i *csipersistentVolumeSourcePtrType) ToCSIPersistentVolumeSourcePtrOutputW return pulumi.ToOutputWithContext(ctx, i).(CSIPersistentVolumeSourcePtrOutput) } -// Represents storage that is managed by an external CSI volume driver (Beta feature) +// Represents storage that is managed by an external CSI volume driver type CSIPersistentVolumeSourceOutput struct{ *pulumi.OutputState } func (CSIPersistentVolumeSourceOutput) ElementType() reflect.Type { @@ -3035,7 +3035,7 @@ func (o CSIPersistentVolumeSourcePtrOutput) VolumeHandle() pulumi.StringPtrOutpu }).(pulumi.StringPtrOutput) } -// Represents storage that is managed by an external CSI volume driver (Beta feature) +// Represents storage that is managed by an external CSI volume driver type CSIPersistentVolumeSourcePatch struct { // controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. ControllerExpandSecretRef *SecretReferencePatch `pulumi:"controllerExpandSecretRef"` @@ -3070,7 +3070,7 @@ type CSIPersistentVolumeSourcePatchInput interface { ToCSIPersistentVolumeSourcePatchOutputWithContext(context.Context) CSIPersistentVolumeSourcePatchOutput } -// Represents storage that is managed by an external CSI volume driver (Beta feature) +// Represents storage that is managed by an external CSI volume driver type CSIPersistentVolumeSourcePatchArgs struct { // controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. ControllerExpandSecretRef SecretReferencePatchPtrInput `pulumi:"controllerExpandSecretRef"` @@ -3147,7 +3147,7 @@ func (i *csipersistentVolumeSourcePatchPtrType) ToCSIPersistentVolumeSourcePatch return pulumi.ToOutputWithContext(ctx, i).(CSIPersistentVolumeSourcePatchPtrOutput) } -// Represents storage that is managed by an external CSI volume driver (Beta feature) +// Represents storage that is managed by an external CSI volume driver type CSIPersistentVolumeSourcePatchOutput struct{ *pulumi.OutputState } func (CSIPersistentVolumeSourcePatchOutput) ElementType() reflect.Type { @@ -21246,6 +21246,7 @@ func (o GCEPersistentDiskVolumeSourcePatchPtrOutput) ReadOnly() pulumi.BoolPtrOu }).(pulumi.BoolPtrOutput) } +// GRPCAction specifies an action involving a GRPC service. type GRPCAction struct { // Port number of the gRPC service. Number must be in the range 1 to 65535. Port int `pulumi:"port"` @@ -21266,6 +21267,7 @@ type GRPCActionInput interface { ToGRPCActionOutputWithContext(context.Context) GRPCActionOutput } +// GRPCAction specifies an action involving a GRPC service. type GRPCActionArgs struct { // Port number of the gRPC service. Number must be in the range 1 to 65535. Port pulumi.IntInput `pulumi:"port"` @@ -21328,6 +21330,7 @@ func (i *grpcactionPtrType) ToGRPCActionPtrOutputWithContext(ctx context.Context return pulumi.ToOutputWithContext(ctx, i).(GRPCActionPtrOutput) } +// GRPCAction specifies an action involving a GRPC service. type GRPCActionOutput struct{ *pulumi.OutputState } func (GRPCActionOutput) ElementType() reflect.Type { @@ -21410,6 +21413,7 @@ func (o GRPCActionPtrOutput) Service() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// GRPCAction specifies an action involving a GRPC service. type GRPCActionPatch struct { // Port number of the gRPC service. Number must be in the range 1 to 65535. Port *int `pulumi:"port"` @@ -21430,6 +21434,7 @@ type GRPCActionPatchInput interface { ToGRPCActionPatchOutputWithContext(context.Context) GRPCActionPatchOutput } +// GRPCAction specifies an action involving a GRPC service. type GRPCActionPatchArgs struct { // Port number of the gRPC service. Number must be in the range 1 to 65535. Port pulumi.IntPtrInput `pulumi:"port"` @@ -21492,6 +21497,7 @@ func (i *grpcactionPatchPtrType) ToGRPCActionPatchPtrOutputWithContext(ctx conte return pulumi.ToOutputWithContext(ctx, i).(GRPCActionPatchPtrOutput) } +// GRPCAction specifies an action involving a GRPC service. type GRPCActionPatchOutput struct{ *pulumi.OutputState } func (GRPCActionPatchOutput) ElementType() reflect.Type { @@ -26259,13 +26265,13 @@ func (o LifecyclePtrOutput) PreStop() LifecycleHandlerPtrOutput { // LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. type LifecycleHandler struct { - // Exec specifies the action to take. + // Exec specifies a command to execute in the container. Exec *ExecAction `pulumi:"exec"` - // HTTPGet specifies the http request to perform. + // HTTPGet specifies an HTTP GET request to perform. HttpGet *HTTPGetAction `pulumi:"httpGet"` - // Sleep represents the duration that the container should sleep before being terminated. + // Sleep represents a duration that the container should sleep. Sleep *SleepAction `pulumi:"sleep"` - // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. TcpSocket *TCPSocketAction `pulumi:"tcpSocket"` } @@ -26282,13 +26288,13 @@ type LifecycleHandlerInput interface { // LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. type LifecycleHandlerArgs struct { - // Exec specifies the action to take. + // Exec specifies a command to execute in the container. Exec ExecActionPtrInput `pulumi:"exec"` - // HTTPGet specifies the http request to perform. + // HTTPGet specifies an HTTP GET request to perform. HttpGet HTTPGetActionPtrInput `pulumi:"httpGet"` - // Sleep represents the duration that the container should sleep before being terminated. + // Sleep represents a duration that the container should sleep. Sleep SleepActionPtrInput `pulumi:"sleep"` - // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. TcpSocket TCPSocketActionPtrInput `pulumi:"tcpSocket"` } @@ -26370,22 +26376,22 @@ func (o LifecycleHandlerOutput) ToLifecycleHandlerPtrOutputWithContext(ctx conte }).(LifecycleHandlerPtrOutput) } -// Exec specifies the action to take. +// Exec specifies a command to execute in the container. func (o LifecycleHandlerOutput) Exec() ExecActionPtrOutput { return o.ApplyT(func(v LifecycleHandler) *ExecAction { return v.Exec }).(ExecActionPtrOutput) } -// HTTPGet specifies the http request to perform. +// HTTPGet specifies an HTTP GET request to perform. func (o LifecycleHandlerOutput) HttpGet() HTTPGetActionPtrOutput { return o.ApplyT(func(v LifecycleHandler) *HTTPGetAction { return v.HttpGet }).(HTTPGetActionPtrOutput) } -// Sleep represents the duration that the container should sleep before being terminated. +// Sleep represents a duration that the container should sleep. func (o LifecycleHandlerOutput) Sleep() SleepActionPtrOutput { return o.ApplyT(func(v LifecycleHandler) *SleepAction { return v.Sleep }).(SleepActionPtrOutput) } -// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. +// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. func (o LifecycleHandlerOutput) TcpSocket() TCPSocketActionPtrOutput { return o.ApplyT(func(v LifecycleHandler) *TCPSocketAction { return v.TcpSocket }).(TCPSocketActionPtrOutput) } @@ -26414,7 +26420,7 @@ func (o LifecycleHandlerPtrOutput) Elem() LifecycleHandlerOutput { }).(LifecycleHandlerOutput) } -// Exec specifies the action to take. +// Exec specifies a command to execute in the container. func (o LifecycleHandlerPtrOutput) Exec() ExecActionPtrOutput { return o.ApplyT(func(v *LifecycleHandler) *ExecAction { if v == nil { @@ -26424,7 +26430,7 @@ func (o LifecycleHandlerPtrOutput) Exec() ExecActionPtrOutput { }).(ExecActionPtrOutput) } -// HTTPGet specifies the http request to perform. +// HTTPGet specifies an HTTP GET request to perform. func (o LifecycleHandlerPtrOutput) HttpGet() HTTPGetActionPtrOutput { return o.ApplyT(func(v *LifecycleHandler) *HTTPGetAction { if v == nil { @@ -26434,7 +26440,7 @@ func (o LifecycleHandlerPtrOutput) HttpGet() HTTPGetActionPtrOutput { }).(HTTPGetActionPtrOutput) } -// Sleep represents the duration that the container should sleep before being terminated. +// Sleep represents a duration that the container should sleep. func (o LifecycleHandlerPtrOutput) Sleep() SleepActionPtrOutput { return o.ApplyT(func(v *LifecycleHandler) *SleepAction { if v == nil { @@ -26444,7 +26450,7 @@ func (o LifecycleHandlerPtrOutput) Sleep() SleepActionPtrOutput { }).(SleepActionPtrOutput) } -// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. +// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. func (o LifecycleHandlerPtrOutput) TcpSocket() TCPSocketActionPtrOutput { return o.ApplyT(func(v *LifecycleHandler) *TCPSocketAction { if v == nil { @@ -26456,13 +26462,13 @@ func (o LifecycleHandlerPtrOutput) TcpSocket() TCPSocketActionPtrOutput { // LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. type LifecycleHandlerPatch struct { - // Exec specifies the action to take. + // Exec specifies a command to execute in the container. Exec *ExecActionPatch `pulumi:"exec"` - // HTTPGet specifies the http request to perform. + // HTTPGet specifies an HTTP GET request to perform. HttpGet *HTTPGetActionPatch `pulumi:"httpGet"` - // Sleep represents the duration that the container should sleep before being terminated. + // Sleep represents a duration that the container should sleep. Sleep *SleepActionPatch `pulumi:"sleep"` - // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. TcpSocket *TCPSocketActionPatch `pulumi:"tcpSocket"` } @@ -26479,13 +26485,13 @@ type LifecycleHandlerPatchInput interface { // LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. type LifecycleHandlerPatchArgs struct { - // Exec specifies the action to take. + // Exec specifies a command to execute in the container. Exec ExecActionPatchPtrInput `pulumi:"exec"` - // HTTPGet specifies the http request to perform. + // HTTPGet specifies an HTTP GET request to perform. HttpGet HTTPGetActionPatchPtrInput `pulumi:"httpGet"` - // Sleep represents the duration that the container should sleep before being terminated. + // Sleep represents a duration that the container should sleep. Sleep SleepActionPatchPtrInput `pulumi:"sleep"` - // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. TcpSocket TCPSocketActionPatchPtrInput `pulumi:"tcpSocket"` } @@ -26567,22 +26573,22 @@ func (o LifecycleHandlerPatchOutput) ToLifecycleHandlerPatchPtrOutputWithContext }).(LifecycleHandlerPatchPtrOutput) } -// Exec specifies the action to take. +// Exec specifies a command to execute in the container. func (o LifecycleHandlerPatchOutput) Exec() ExecActionPatchPtrOutput { return o.ApplyT(func(v LifecycleHandlerPatch) *ExecActionPatch { return v.Exec }).(ExecActionPatchPtrOutput) } -// HTTPGet specifies the http request to perform. +// HTTPGet specifies an HTTP GET request to perform. func (o LifecycleHandlerPatchOutput) HttpGet() HTTPGetActionPatchPtrOutput { return o.ApplyT(func(v LifecycleHandlerPatch) *HTTPGetActionPatch { return v.HttpGet }).(HTTPGetActionPatchPtrOutput) } -// Sleep represents the duration that the container should sleep before being terminated. +// Sleep represents a duration that the container should sleep. func (o LifecycleHandlerPatchOutput) Sleep() SleepActionPatchPtrOutput { return o.ApplyT(func(v LifecycleHandlerPatch) *SleepActionPatch { return v.Sleep }).(SleepActionPatchPtrOutput) } -// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. +// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. func (o LifecycleHandlerPatchOutput) TcpSocket() TCPSocketActionPatchPtrOutput { return o.ApplyT(func(v LifecycleHandlerPatch) *TCPSocketActionPatch { return v.TcpSocket }).(TCPSocketActionPatchPtrOutput) } @@ -26611,7 +26617,7 @@ func (o LifecycleHandlerPatchPtrOutput) Elem() LifecycleHandlerPatchOutput { }).(LifecycleHandlerPatchOutput) } -// Exec specifies the action to take. +// Exec specifies a command to execute in the container. func (o LifecycleHandlerPatchPtrOutput) Exec() ExecActionPatchPtrOutput { return o.ApplyT(func(v *LifecycleHandlerPatch) *ExecActionPatch { if v == nil { @@ -26621,7 +26627,7 @@ func (o LifecycleHandlerPatchPtrOutput) Exec() ExecActionPatchPtrOutput { }).(ExecActionPatchPtrOutput) } -// HTTPGet specifies the http request to perform. +// HTTPGet specifies an HTTP GET request to perform. func (o LifecycleHandlerPatchPtrOutput) HttpGet() HTTPGetActionPatchPtrOutput { return o.ApplyT(func(v *LifecycleHandlerPatch) *HTTPGetActionPatch { if v == nil { @@ -26631,7 +26637,7 @@ func (o LifecycleHandlerPatchPtrOutput) HttpGet() HTTPGetActionPatchPtrOutput { }).(HTTPGetActionPatchPtrOutput) } -// Sleep represents the duration that the container should sleep before being terminated. +// Sleep represents a duration that the container should sleep. func (o LifecycleHandlerPatchPtrOutput) Sleep() SleepActionPatchPtrOutput { return o.ApplyT(func(v *LifecycleHandlerPatch) *SleepActionPatch { if v == nil { @@ -26641,7 +26647,7 @@ func (o LifecycleHandlerPatchPtrOutput) Sleep() SleepActionPatchPtrOutput { }).(SleepActionPatchPtrOutput) } -// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. +// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. func (o LifecycleHandlerPatchPtrOutput) TcpSocket() TCPSocketActionPatchPtrOutput { return o.ApplyT(func(v *LifecycleHandlerPatch) *TCPSocketActionPatch { if v == nil { @@ -28931,7 +28937,7 @@ func (o LocalObjectReferencePatchArrayOutput) Index(i pulumi.IntInput) LocalObje }).(LocalObjectReferencePatchOutput) } -// Local represents directly-attached storage with node affinity (Beta feature) +// Local represents directly-attached storage with node affinity type LocalVolumeSource struct { // fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. FsType *string `pulumi:"fsType"` @@ -28950,7 +28956,7 @@ type LocalVolumeSourceInput interface { ToLocalVolumeSourceOutputWithContext(context.Context) LocalVolumeSourceOutput } -// Local represents directly-attached storage with node affinity (Beta feature) +// Local represents directly-attached storage with node affinity type LocalVolumeSourceArgs struct { // fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. FsType pulumi.StringPtrInput `pulumi:"fsType"` @@ -29011,7 +29017,7 @@ func (i *localVolumeSourcePtrType) ToLocalVolumeSourcePtrOutputWithContext(ctx c return pulumi.ToOutputWithContext(ctx, i).(LocalVolumeSourcePtrOutput) } -// Local represents directly-attached storage with node affinity (Beta feature) +// Local represents directly-attached storage with node affinity type LocalVolumeSourceOutput struct{ *pulumi.OutputState } func (LocalVolumeSourceOutput) ElementType() reflect.Type { @@ -29090,7 +29096,7 @@ func (o LocalVolumeSourcePtrOutput) Path() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Local represents directly-attached storage with node affinity (Beta feature) +// Local represents directly-attached storage with node affinity type LocalVolumeSourcePatch struct { // fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. FsType *string `pulumi:"fsType"` @@ -29109,7 +29115,7 @@ type LocalVolumeSourcePatchInput interface { ToLocalVolumeSourcePatchOutputWithContext(context.Context) LocalVolumeSourcePatchOutput } -// Local represents directly-attached storage with node affinity (Beta feature) +// Local represents directly-attached storage with node affinity type LocalVolumeSourcePatchArgs struct { // fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. FsType pulumi.StringPtrInput `pulumi:"fsType"` @@ -29170,7 +29176,7 @@ func (i *localVolumeSourcePatchPtrType) ToLocalVolumeSourcePatchPtrOutputWithCon return pulumi.ToOutputWithContext(ctx, i).(LocalVolumeSourcePatchPtrOutput) } -// Local represents directly-attached storage with node affinity (Beta feature) +// Local represents directly-attached storage with node affinity type LocalVolumeSourcePatchOutput struct{ *pulumi.OutputState } func (LocalVolumeSourcePatchOutput) ElementType() reflect.Type { @@ -30133,9 +30139,12 @@ func (o NamespaceTypeArrayOutput) Index(i pulumi.IntInput) NamespaceTypeOutput { // NamespaceCondition contains details about state of namespace. type NamespaceCondition struct { + // Last time the condition transitioned from one status to another. LastTransitionTime *string `pulumi:"lastTransitionTime"` - Message *string `pulumi:"message"` - Reason *string `pulumi:"reason"` + // Human-readable message indicating details about last transition. + Message *string `pulumi:"message"` + // Unique, one-word, CamelCase reason for the condition's last transition. + Reason *string `pulumi:"reason"` // Status of the condition, one of True, False, Unknown. Status string `pulumi:"status"` // Type of namespace controller condition. @@ -30155,9 +30164,12 @@ type NamespaceConditionInput interface { // NamespaceCondition contains details about state of namespace. type NamespaceConditionArgs struct { + // Last time the condition transitioned from one status to another. LastTransitionTime pulumi.StringPtrInput `pulumi:"lastTransitionTime"` - Message pulumi.StringPtrInput `pulumi:"message"` - Reason pulumi.StringPtrInput `pulumi:"reason"` + // Human-readable message indicating details about last transition. + Message pulumi.StringPtrInput `pulumi:"message"` + // Unique, one-word, CamelCase reason for the condition's last transition. + Reason pulumi.StringPtrInput `pulumi:"reason"` // Status of the condition, one of True, False, Unknown. Status pulumi.StringInput `pulumi:"status"` // Type of namespace controller condition. @@ -30216,14 +30228,17 @@ func (o NamespaceConditionOutput) ToNamespaceConditionOutputWithContext(ctx cont return o } +// Last time the condition transitioned from one status to another. func (o NamespaceConditionOutput) LastTransitionTime() pulumi.StringPtrOutput { return o.ApplyT(func(v NamespaceCondition) *string { return v.LastTransitionTime }).(pulumi.StringPtrOutput) } +// Human-readable message indicating details about last transition. func (o NamespaceConditionOutput) Message() pulumi.StringPtrOutput { return o.ApplyT(func(v NamespaceCondition) *string { return v.Message }).(pulumi.StringPtrOutput) } +// Unique, one-word, CamelCase reason for the condition's last transition. func (o NamespaceConditionOutput) Reason() pulumi.StringPtrOutput { return o.ApplyT(func(v NamespaceCondition) *string { return v.Reason }).(pulumi.StringPtrOutput) } @@ -30260,9 +30275,12 @@ func (o NamespaceConditionArrayOutput) Index(i pulumi.IntInput) NamespaceConditi // NamespaceCondition contains details about state of namespace. type NamespaceConditionPatch struct { + // Last time the condition transitioned from one status to another. LastTransitionTime *string `pulumi:"lastTransitionTime"` - Message *string `pulumi:"message"` - Reason *string `pulumi:"reason"` + // Human-readable message indicating details about last transition. + Message *string `pulumi:"message"` + // Unique, one-word, CamelCase reason for the condition's last transition. + Reason *string `pulumi:"reason"` // Status of the condition, one of True, False, Unknown. Status *string `pulumi:"status"` // Type of namespace controller condition. @@ -30282,9 +30300,12 @@ type NamespaceConditionPatchInput interface { // NamespaceCondition contains details about state of namespace. type NamespaceConditionPatchArgs struct { + // Last time the condition transitioned from one status to another. LastTransitionTime pulumi.StringPtrInput `pulumi:"lastTransitionTime"` - Message pulumi.StringPtrInput `pulumi:"message"` - Reason pulumi.StringPtrInput `pulumi:"reason"` + // Human-readable message indicating details about last transition. + Message pulumi.StringPtrInput `pulumi:"message"` + // Unique, one-word, CamelCase reason for the condition's last transition. + Reason pulumi.StringPtrInput `pulumi:"reason"` // Status of the condition, one of True, False, Unknown. Status pulumi.StringPtrInput `pulumi:"status"` // Type of namespace controller condition. @@ -30343,14 +30364,17 @@ func (o NamespaceConditionPatchOutput) ToNamespaceConditionPatchOutputWithContex return o } +// Last time the condition transitioned from one status to another. func (o NamespaceConditionPatchOutput) LastTransitionTime() pulumi.StringPtrOutput { return o.ApplyT(func(v NamespaceConditionPatch) *string { return v.LastTransitionTime }).(pulumi.StringPtrOutput) } +// Human-readable message indicating details about last transition. func (o NamespaceConditionPatchOutput) Message() pulumi.StringPtrOutput { return o.ApplyT(func(v NamespaceConditionPatch) *string { return v.Message }).(pulumi.StringPtrOutput) } +// Unique, one-word, CamelCase reason for the condition's last transition. func (o NamespaceConditionPatchOutput) Reason() pulumi.StringPtrOutput { return o.ApplyT(func(v NamespaceConditionPatch) *string { return v.Reason }).(pulumi.StringPtrOutput) } @@ -35404,13 +35428,13 @@ func (o NodeSpecPatchPtrOutput) Unschedulable() pulumi.BoolPtrOutput { // NodeStatus is information about the current status of a node. type NodeStatus struct { - // List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + // List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). Addresses []NodeAddress `pulumi:"addresses"` // Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. Allocatable map[string]string `pulumi:"allocatable"` // Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity Capacity map[string]string `pulumi:"capacity"` - // Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + // Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition Conditions []NodeCondition `pulumi:"conditions"` // Status of the config assigned to the node via the dynamic Kubelet config feature. Config *NodeConfigStatus `pulumi:"config"` @@ -35420,7 +35444,7 @@ type NodeStatus struct { Features *NodeFeatures `pulumi:"features"` // List of container images on this node Images []ContainerImage `pulumi:"images"` - // Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + // Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info NodeInfo *NodeSystemInfo `pulumi:"nodeInfo"` // NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated. Phase *string `pulumi:"phase"` @@ -35445,13 +35469,13 @@ type NodeStatusInput interface { // NodeStatus is information about the current status of a node. type NodeStatusArgs struct { - // List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + // List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). Addresses NodeAddressArrayInput `pulumi:"addresses"` // Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. Allocatable pulumi.StringMapInput `pulumi:"allocatable"` // Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity Capacity pulumi.StringMapInput `pulumi:"capacity"` - // Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + // Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition Conditions NodeConditionArrayInput `pulumi:"conditions"` // Status of the config assigned to the node via the dynamic Kubelet config feature. Config NodeConfigStatusPtrInput `pulumi:"config"` @@ -35461,7 +35485,7 @@ type NodeStatusArgs struct { Features NodeFeaturesPtrInput `pulumi:"features"` // List of container images on this node Images ContainerImageArrayInput `pulumi:"images"` - // Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + // Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info NodeInfo NodeSystemInfoPtrInput `pulumi:"nodeInfo"` // NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated. Phase pulumi.StringPtrInput `pulumi:"phase"` @@ -35551,7 +35575,7 @@ func (o NodeStatusOutput) ToNodeStatusPtrOutputWithContext(ctx context.Context) }).(NodeStatusPtrOutput) } -// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). +// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). func (o NodeStatusOutput) Addresses() NodeAddressArrayOutput { return o.ApplyT(func(v NodeStatus) []NodeAddress { return v.Addresses }).(NodeAddressArrayOutput) } @@ -35566,7 +35590,7 @@ func (o NodeStatusOutput) Capacity() pulumi.StringMapOutput { return o.ApplyT(func(v NodeStatus) map[string]string { return v.Capacity }).(pulumi.StringMapOutput) } -// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition +// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition func (o NodeStatusOutput) Conditions() NodeConditionArrayOutput { return o.ApplyT(func(v NodeStatus) []NodeCondition { return v.Conditions }).(NodeConditionArrayOutput) } @@ -35591,7 +35615,7 @@ func (o NodeStatusOutput) Images() ContainerImageArrayOutput { return o.ApplyT(func(v NodeStatus) []ContainerImage { return v.Images }).(ContainerImageArrayOutput) } -// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info +// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info func (o NodeStatusOutput) NodeInfo() NodeSystemInfoPtrOutput { return o.ApplyT(func(v NodeStatus) *NodeSystemInfo { return v.NodeInfo }).(NodeSystemInfoPtrOutput) } @@ -35640,7 +35664,7 @@ func (o NodeStatusPtrOutput) Elem() NodeStatusOutput { }).(NodeStatusOutput) } -// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). +// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). func (o NodeStatusPtrOutput) Addresses() NodeAddressArrayOutput { return o.ApplyT(func(v *NodeStatus) []NodeAddress { if v == nil { @@ -35670,7 +35694,7 @@ func (o NodeStatusPtrOutput) Capacity() pulumi.StringMapOutput { }).(pulumi.StringMapOutput) } -// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition +// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition func (o NodeStatusPtrOutput) Conditions() NodeConditionArrayOutput { return o.ApplyT(func(v *NodeStatus) []NodeCondition { if v == nil { @@ -35720,7 +35744,7 @@ func (o NodeStatusPtrOutput) Images() ContainerImageArrayOutput { }).(ContainerImageArrayOutput) } -// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info +// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info func (o NodeStatusPtrOutput) NodeInfo() NodeSystemInfoPtrOutput { return o.ApplyT(func(v *NodeStatus) *NodeSystemInfo { if v == nil { @@ -35772,13 +35796,13 @@ func (o NodeStatusPtrOutput) VolumesInUse() pulumi.StringArrayOutput { // NodeStatus is information about the current status of a node. type NodeStatusPatch struct { - // List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + // List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). Addresses []NodeAddressPatch `pulumi:"addresses"` // Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. Allocatable map[string]string `pulumi:"allocatable"` // Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity Capacity map[string]string `pulumi:"capacity"` - // Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + // Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition Conditions []NodeConditionPatch `pulumi:"conditions"` // Status of the config assigned to the node via the dynamic Kubelet config feature. Config *NodeConfigStatusPatch `pulumi:"config"` @@ -35788,7 +35812,7 @@ type NodeStatusPatch struct { Features *NodeFeaturesPatch `pulumi:"features"` // List of container images on this node Images []ContainerImagePatch `pulumi:"images"` - // Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + // Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info NodeInfo *NodeSystemInfoPatch `pulumi:"nodeInfo"` // NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated. Phase *string `pulumi:"phase"` @@ -35813,13 +35837,13 @@ type NodeStatusPatchInput interface { // NodeStatus is information about the current status of a node. type NodeStatusPatchArgs struct { - // List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + // List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). Addresses NodeAddressPatchArrayInput `pulumi:"addresses"` // Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. Allocatable pulumi.StringMapInput `pulumi:"allocatable"` // Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity Capacity pulumi.StringMapInput `pulumi:"capacity"` - // Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + // Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition Conditions NodeConditionPatchArrayInput `pulumi:"conditions"` // Status of the config assigned to the node via the dynamic Kubelet config feature. Config NodeConfigStatusPatchPtrInput `pulumi:"config"` @@ -35829,7 +35853,7 @@ type NodeStatusPatchArgs struct { Features NodeFeaturesPatchPtrInput `pulumi:"features"` // List of container images on this node Images ContainerImagePatchArrayInput `pulumi:"images"` - // Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + // Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info NodeInfo NodeSystemInfoPatchPtrInput `pulumi:"nodeInfo"` // NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated. Phase pulumi.StringPtrInput `pulumi:"phase"` @@ -35919,7 +35943,7 @@ func (o NodeStatusPatchOutput) ToNodeStatusPatchPtrOutputWithContext(ctx context }).(NodeStatusPatchPtrOutput) } -// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). +// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). func (o NodeStatusPatchOutput) Addresses() NodeAddressPatchArrayOutput { return o.ApplyT(func(v NodeStatusPatch) []NodeAddressPatch { return v.Addresses }).(NodeAddressPatchArrayOutput) } @@ -35934,7 +35958,7 @@ func (o NodeStatusPatchOutput) Capacity() pulumi.StringMapOutput { return o.ApplyT(func(v NodeStatusPatch) map[string]string { return v.Capacity }).(pulumi.StringMapOutput) } -// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition +// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition func (o NodeStatusPatchOutput) Conditions() NodeConditionPatchArrayOutput { return o.ApplyT(func(v NodeStatusPatch) []NodeConditionPatch { return v.Conditions }).(NodeConditionPatchArrayOutput) } @@ -35959,7 +35983,7 @@ func (o NodeStatusPatchOutput) Images() ContainerImagePatchArrayOutput { return o.ApplyT(func(v NodeStatusPatch) []ContainerImagePatch { return v.Images }).(ContainerImagePatchArrayOutput) } -// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info +// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info func (o NodeStatusPatchOutput) NodeInfo() NodeSystemInfoPatchPtrOutput { return o.ApplyT(func(v NodeStatusPatch) *NodeSystemInfoPatch { return v.NodeInfo }).(NodeSystemInfoPatchPtrOutput) } @@ -36008,7 +36032,7 @@ func (o NodeStatusPatchPtrOutput) Elem() NodeStatusPatchOutput { }).(NodeStatusPatchOutput) } -// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). +// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). func (o NodeStatusPatchPtrOutput) Addresses() NodeAddressPatchArrayOutput { return o.ApplyT(func(v *NodeStatusPatch) []NodeAddressPatch { if v == nil { @@ -36038,7 +36062,7 @@ func (o NodeStatusPatchPtrOutput) Capacity() pulumi.StringMapOutput { }).(pulumi.StringMapOutput) } -// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition +// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition func (o NodeStatusPatchPtrOutput) Conditions() NodeConditionPatchArrayOutput { return o.ApplyT(func(v *NodeStatusPatch) []NodeConditionPatch { if v == nil { @@ -36088,7 +36112,7 @@ func (o NodeStatusPatchPtrOutput) Images() ContainerImagePatchArrayOutput { }).(ContainerImagePatchArrayOutput) } -// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info +// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info func (o NodeStatusPatchPtrOutput) NodeInfo() NodeSystemInfoPatchPtrOutput { return o.ApplyT(func(v *NodeStatusPatch) *NodeSystemInfoPatch { if v == nil { @@ -37958,8 +37982,10 @@ type PersistentVolumeClaimCondition struct { Message *string `pulumi:"message"` // reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. Reason *string `pulumi:"reason"` - Status string `pulumi:"status"` - Type string `pulumi:"type"` + // Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + Status string `pulumi:"status"` + // Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + Type string `pulumi:"type"` } // PersistentVolumeClaimConditionInput is an input type that accepts PersistentVolumeClaimConditionArgs and PersistentVolumeClaimConditionOutput values. @@ -37983,8 +38009,10 @@ type PersistentVolumeClaimConditionArgs struct { Message pulumi.StringPtrInput `pulumi:"message"` // reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. Reason pulumi.StringPtrInput `pulumi:"reason"` - Status pulumi.StringInput `pulumi:"status"` - Type pulumi.StringInput `pulumi:"type"` + // Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + Status pulumi.StringInput `pulumi:"status"` + // Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + Type pulumi.StringInput `pulumi:"type"` } func (PersistentVolumeClaimConditionArgs) ElementType() reflect.Type { @@ -38059,10 +38087,12 @@ func (o PersistentVolumeClaimConditionOutput) Reason() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimCondition) *string { return v.Reason }).(pulumi.StringPtrOutput) } +// Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required func (o PersistentVolumeClaimConditionOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v PersistentVolumeClaimCondition) string { return v.Status }).(pulumi.StringOutput) } +// Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about func (o PersistentVolumeClaimConditionOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v PersistentVolumeClaimCondition) string { return v.Type }).(pulumi.StringOutput) } @@ -38097,8 +38127,10 @@ type PersistentVolumeClaimConditionPatch struct { Message *string `pulumi:"message"` // reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. Reason *string `pulumi:"reason"` + // Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required Status *string `pulumi:"status"` - Type *string `pulumi:"type"` + // Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + Type *string `pulumi:"type"` } // PersistentVolumeClaimConditionPatchInput is an input type that accepts PersistentVolumeClaimConditionPatchArgs and PersistentVolumeClaimConditionPatchOutput values. @@ -38122,8 +38154,10 @@ type PersistentVolumeClaimConditionPatchArgs struct { Message pulumi.StringPtrInput `pulumi:"message"` // reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. Reason pulumi.StringPtrInput `pulumi:"reason"` + // Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required Status pulumi.StringPtrInput `pulumi:"status"` - Type pulumi.StringPtrInput `pulumi:"type"` + // Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + Type pulumi.StringPtrInput `pulumi:"type"` } func (PersistentVolumeClaimConditionPatchArgs) ElementType() reflect.Type { @@ -38198,10 +38232,12 @@ func (o PersistentVolumeClaimConditionPatchOutput) Reason() pulumi.StringPtrOutp return o.ApplyT(func(v PersistentVolumeClaimConditionPatch) *string { return v.Reason }).(pulumi.StringPtrOutput) } +// Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required func (o PersistentVolumeClaimConditionPatchOutput) Status() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimConditionPatch) *string { return v.Status }).(pulumi.StringPtrOutput) } +// Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about func (o PersistentVolumeClaimConditionPatchOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimConditionPatch) *string { return v.Type }).(pulumi.StringPtrOutput) } @@ -40813,31 +40849,31 @@ func (o PersistentVolumePatchTypeOutput) Status() PersistentVolumeStatusPatchPtr type PersistentVolumeSpec struct { // accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes AccessModes []string `pulumi:"accessModes"` - // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore AwsElasticBlockStore *AWSElasticBlockStoreVolumeSource `pulumi:"awsElasticBlockStore"` - // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. AzureDisk *AzureDiskVolumeSource `pulumi:"azureDisk"` - // azureFile represents an Azure File Service mount on the host and bind mount to the pod. + // azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. AzureFile *AzureFilePersistentVolumeSource `pulumi:"azureFile"` // capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity Capacity map[string]string `pulumi:"capacity"` - // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. Cephfs *CephFSPersistentVolumeSource `pulumi:"cephfs"` - // cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + // cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md Cinder *CinderPersistentVolumeSource `pulumi:"cinder"` // claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding ClaimRef *ObjectReference `pulumi:"claimRef"` - // csi represents storage that is handled by an external CSI driver (Beta feature). + // csi represents storage that is handled by an external CSI driver. Csi *CSIPersistentVolumeSource `pulumi:"csi"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. Fc *FCVolumeSource `pulumi:"fc"` - // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. FlexVolume *FlexPersistentVolumeSource `pulumi:"flexVolume"` - // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. Flocker *FlockerVolumeSource `pulumi:"flocker"` - // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk GcePersistentDisk *GCEPersistentDiskVolumeSource `pulumi:"gcePersistentDisk"` - // glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md Glusterfs *GlusterfsPersistentVolumeSource `pulumi:"glusterfs"` // hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath *HostPathVolumeSource `pulumi:"hostPath"` @@ -40853,25 +40889,25 @@ type PersistentVolumeSpec struct { NodeAffinity *VolumeNodeAffinity `pulumi:"nodeAffinity"` // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming PersistentVolumeReclaimPolicy *string `pulumi:"persistentVolumeReclaimPolicy"` - // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. PhotonPersistentDisk *PhotonPersistentDiskVolumeSource `pulumi:"photonPersistentDisk"` - // portworxVolume represents a portworx volume attached and mounted on kubelets host machine + // portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. PortworxVolume *PortworxVolumeSource `pulumi:"portworxVolume"` - // quobyte represents a Quobyte mount on the host that shares a pod's lifetime + // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte *QuobyteVolumeSource `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md Rbd *RBDPersistentVolumeSource `pulumi:"rbd"` - // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO *ScaleIOPersistentVolumeSource `pulumi:"scaleIO"` // storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. StorageClassName *string `pulumi:"storageClassName"` - // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md Storageos *StorageOSPersistentVolumeSource `pulumi:"storageos"` // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). VolumeAttributesClassName *string `pulumi:"volumeAttributesClassName"` // volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. VolumeMode *string `pulumi:"volumeMode"` - // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. VsphereVolume *VsphereVirtualDiskVolumeSource `pulumi:"vsphereVolume"` } @@ -40890,31 +40926,31 @@ type PersistentVolumeSpecInput interface { type PersistentVolumeSpecArgs struct { // accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes AccessModes pulumi.StringArrayInput `pulumi:"accessModes"` - // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore AwsElasticBlockStore AWSElasticBlockStoreVolumeSourcePtrInput `pulumi:"awsElasticBlockStore"` - // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. AzureDisk AzureDiskVolumeSourcePtrInput `pulumi:"azureDisk"` - // azureFile represents an Azure File Service mount on the host and bind mount to the pod. + // azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. AzureFile AzureFilePersistentVolumeSourcePtrInput `pulumi:"azureFile"` // capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity Capacity pulumi.StringMapInput `pulumi:"capacity"` - // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. Cephfs CephFSPersistentVolumeSourcePtrInput `pulumi:"cephfs"` - // cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + // cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md Cinder CinderPersistentVolumeSourcePtrInput `pulumi:"cinder"` // claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding ClaimRef ObjectReferencePtrInput `pulumi:"claimRef"` - // csi represents storage that is handled by an external CSI driver (Beta feature). + // csi represents storage that is handled by an external CSI driver. Csi CSIPersistentVolumeSourcePtrInput `pulumi:"csi"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. Fc FCVolumeSourcePtrInput `pulumi:"fc"` - // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. FlexVolume FlexPersistentVolumeSourcePtrInput `pulumi:"flexVolume"` - // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. Flocker FlockerVolumeSourcePtrInput `pulumi:"flocker"` - // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk GcePersistentDisk GCEPersistentDiskVolumeSourcePtrInput `pulumi:"gcePersistentDisk"` - // glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md Glusterfs GlusterfsPersistentVolumeSourcePtrInput `pulumi:"glusterfs"` // hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath HostPathVolumeSourcePtrInput `pulumi:"hostPath"` @@ -40930,25 +40966,25 @@ type PersistentVolumeSpecArgs struct { NodeAffinity VolumeNodeAffinityPtrInput `pulumi:"nodeAffinity"` // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming PersistentVolumeReclaimPolicy pulumi.StringPtrInput `pulumi:"persistentVolumeReclaimPolicy"` - // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. PhotonPersistentDisk PhotonPersistentDiskVolumeSourcePtrInput `pulumi:"photonPersistentDisk"` - // portworxVolume represents a portworx volume attached and mounted on kubelets host machine + // portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. PortworxVolume PortworxVolumeSourcePtrInput `pulumi:"portworxVolume"` - // quobyte represents a Quobyte mount on the host that shares a pod's lifetime + // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte QuobyteVolumeSourcePtrInput `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md Rbd RBDPersistentVolumeSourcePtrInput `pulumi:"rbd"` - // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO ScaleIOPersistentVolumeSourcePtrInput `pulumi:"scaleIO"` // storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. StorageClassName pulumi.StringPtrInput `pulumi:"storageClassName"` - // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md Storageos StorageOSPersistentVolumeSourcePtrInput `pulumi:"storageos"` // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). VolumeAttributesClassName pulumi.StringPtrInput `pulumi:"volumeAttributesClassName"` // volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. VolumeMode pulumi.StringPtrInput `pulumi:"volumeMode"` - // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. VsphereVolume VsphereVirtualDiskVolumeSourcePtrInput `pulumi:"vsphereVolume"` } @@ -41035,17 +41071,17 @@ func (o PersistentVolumeSpecOutput) AccessModes() pulumi.StringArrayOutput { return o.ApplyT(func(v PersistentVolumeSpec) []string { return v.AccessModes }).(pulumi.StringArrayOutput) } -// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore func (o PersistentVolumeSpecOutput) AwsElasticBlockStore() AWSElasticBlockStoreVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *AWSElasticBlockStoreVolumeSource { return v.AwsElasticBlockStore }).(AWSElasticBlockStoreVolumeSourcePtrOutput) } -// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. func (o PersistentVolumeSpecOutput) AzureDisk() AzureDiskVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *AzureDiskVolumeSource { return v.AzureDisk }).(AzureDiskVolumeSourcePtrOutput) } -// azureFile represents an Azure File Service mount on the host and bind mount to the pod. +// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. func (o PersistentVolumeSpecOutput) AzureFile() AzureFilePersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *AzureFilePersistentVolumeSource { return v.AzureFile }).(AzureFilePersistentVolumeSourcePtrOutput) } @@ -41055,12 +41091,12 @@ func (o PersistentVolumeSpecOutput) Capacity() pulumi.StringMapOutput { return o.ApplyT(func(v PersistentVolumeSpec) map[string]string { return v.Capacity }).(pulumi.StringMapOutput) } -// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime +// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. func (o PersistentVolumeSpecOutput) Cephfs() CephFSPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *CephFSPersistentVolumeSource { return v.Cephfs }).(CephFSPersistentVolumeSourcePtrOutput) } -// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md func (o PersistentVolumeSpecOutput) Cinder() CinderPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *CinderPersistentVolumeSource { return v.Cinder }).(CinderPersistentVolumeSourcePtrOutput) } @@ -41070,7 +41106,7 @@ func (o PersistentVolumeSpecOutput) ClaimRef() ObjectReferencePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *ObjectReference { return v.ClaimRef }).(ObjectReferencePtrOutput) } -// csi represents storage that is handled by an external CSI driver (Beta feature). +// csi represents storage that is handled by an external CSI driver. func (o PersistentVolumeSpecOutput) Csi() CSIPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *CSIPersistentVolumeSource { return v.Csi }).(CSIPersistentVolumeSourcePtrOutput) } @@ -41080,22 +41116,22 @@ func (o PersistentVolumeSpecOutput) Fc() FCVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *FCVolumeSource { return v.Fc }).(FCVolumeSourcePtrOutput) } -// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. func (o PersistentVolumeSpecOutput) FlexVolume() FlexPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *FlexPersistentVolumeSource { return v.FlexVolume }).(FlexPersistentVolumeSourcePtrOutput) } -// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running +// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. func (o PersistentVolumeSpecOutput) Flocker() FlockerVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *FlockerVolumeSource { return v.Flocker }).(FlockerVolumeSourcePtrOutput) } -// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk func (o PersistentVolumeSpecOutput) GcePersistentDisk() GCEPersistentDiskVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *GCEPersistentDiskVolumeSource { return v.GcePersistentDisk }).(GCEPersistentDiskVolumeSourcePtrOutput) } -// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md +// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md func (o PersistentVolumeSpecOutput) Glusterfs() GlusterfsPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *GlusterfsPersistentVolumeSource { return v.Glusterfs }).(GlusterfsPersistentVolumeSourcePtrOutput) } @@ -41135,27 +41171,27 @@ func (o PersistentVolumeSpecOutput) PersistentVolumeReclaimPolicy() pulumi.Strin return o.ApplyT(func(v PersistentVolumeSpec) *string { return v.PersistentVolumeReclaimPolicy }).(pulumi.StringPtrOutput) } -// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. func (o PersistentVolumeSpecOutput) PhotonPersistentDisk() PhotonPersistentDiskVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *PhotonPersistentDiskVolumeSource { return v.PhotonPersistentDisk }).(PhotonPersistentDiskVolumeSourcePtrOutput) } -// portworxVolume represents a portworx volume attached and mounted on kubelets host machine +// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. func (o PersistentVolumeSpecOutput) PortworxVolume() PortworxVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *PortworxVolumeSource { return v.PortworxVolume }).(PortworxVolumeSourcePtrOutput) } -// quobyte represents a Quobyte mount on the host that shares a pod's lifetime +// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. func (o PersistentVolumeSpecOutput) Quobyte() QuobyteVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *QuobyteVolumeSource { return v.Quobyte }).(QuobyteVolumeSourcePtrOutput) } -// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md func (o PersistentVolumeSpecOutput) Rbd() RBDPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *RBDPersistentVolumeSource { return v.Rbd }).(RBDPersistentVolumeSourcePtrOutput) } -// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. func (o PersistentVolumeSpecOutput) ScaleIO() ScaleIOPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *ScaleIOPersistentVolumeSource { return v.ScaleIO }).(ScaleIOPersistentVolumeSourcePtrOutput) } @@ -41165,7 +41201,7 @@ func (o PersistentVolumeSpecOutput) StorageClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *string { return v.StorageClassName }).(pulumi.StringPtrOutput) } -// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md +// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md func (o PersistentVolumeSpecOutput) Storageos() StorageOSPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *StorageOSPersistentVolumeSource { return v.Storageos }).(StorageOSPersistentVolumeSourcePtrOutput) } @@ -41180,7 +41216,7 @@ func (o PersistentVolumeSpecOutput) VolumeMode() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *string { return v.VolumeMode }).(pulumi.StringPtrOutput) } -// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. func (o PersistentVolumeSpecOutput) VsphereVolume() VsphereVirtualDiskVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *VsphereVirtualDiskVolumeSource { return v.VsphereVolume }).(VsphereVirtualDiskVolumeSourcePtrOutput) } @@ -41219,7 +41255,7 @@ func (o PersistentVolumeSpecPtrOutput) AccessModes() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } -// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore func (o PersistentVolumeSpecPtrOutput) AwsElasticBlockStore() AWSElasticBlockStoreVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *AWSElasticBlockStoreVolumeSource { if v == nil { @@ -41229,7 +41265,7 @@ func (o PersistentVolumeSpecPtrOutput) AwsElasticBlockStore() AWSElasticBlockSto }).(AWSElasticBlockStoreVolumeSourcePtrOutput) } -// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. func (o PersistentVolumeSpecPtrOutput) AzureDisk() AzureDiskVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *AzureDiskVolumeSource { if v == nil { @@ -41239,7 +41275,7 @@ func (o PersistentVolumeSpecPtrOutput) AzureDisk() AzureDiskVolumeSourcePtrOutpu }).(AzureDiskVolumeSourcePtrOutput) } -// azureFile represents an Azure File Service mount on the host and bind mount to the pod. +// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. func (o PersistentVolumeSpecPtrOutput) AzureFile() AzureFilePersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *AzureFilePersistentVolumeSource { if v == nil { @@ -41259,7 +41295,7 @@ func (o PersistentVolumeSpecPtrOutput) Capacity() pulumi.StringMapOutput { }).(pulumi.StringMapOutput) } -// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime +// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. func (o PersistentVolumeSpecPtrOutput) Cephfs() CephFSPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *CephFSPersistentVolumeSource { if v == nil { @@ -41269,7 +41305,7 @@ func (o PersistentVolumeSpecPtrOutput) Cephfs() CephFSPersistentVolumeSourcePtrO }).(CephFSPersistentVolumeSourcePtrOutput) } -// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md func (o PersistentVolumeSpecPtrOutput) Cinder() CinderPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *CinderPersistentVolumeSource { if v == nil { @@ -41289,7 +41325,7 @@ func (o PersistentVolumeSpecPtrOutput) ClaimRef() ObjectReferencePtrOutput { }).(ObjectReferencePtrOutput) } -// csi represents storage that is handled by an external CSI driver (Beta feature). +// csi represents storage that is handled by an external CSI driver. func (o PersistentVolumeSpecPtrOutput) Csi() CSIPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *CSIPersistentVolumeSource { if v == nil { @@ -41309,7 +41345,7 @@ func (o PersistentVolumeSpecPtrOutput) Fc() FCVolumeSourcePtrOutput { }).(FCVolumeSourcePtrOutput) } -// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. func (o PersistentVolumeSpecPtrOutput) FlexVolume() FlexPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *FlexPersistentVolumeSource { if v == nil { @@ -41319,7 +41355,7 @@ func (o PersistentVolumeSpecPtrOutput) FlexVolume() FlexPersistentVolumeSourcePt }).(FlexPersistentVolumeSourcePtrOutput) } -// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running +// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. func (o PersistentVolumeSpecPtrOutput) Flocker() FlockerVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *FlockerVolumeSource { if v == nil { @@ -41329,7 +41365,7 @@ func (o PersistentVolumeSpecPtrOutput) Flocker() FlockerVolumeSourcePtrOutput { }).(FlockerVolumeSourcePtrOutput) } -// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk func (o PersistentVolumeSpecPtrOutput) GcePersistentDisk() GCEPersistentDiskVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *GCEPersistentDiskVolumeSource { if v == nil { @@ -41339,7 +41375,7 @@ func (o PersistentVolumeSpecPtrOutput) GcePersistentDisk() GCEPersistentDiskVolu }).(GCEPersistentDiskVolumeSourcePtrOutput) } -// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md +// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md func (o PersistentVolumeSpecPtrOutput) Glusterfs() GlusterfsPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *GlusterfsPersistentVolumeSource { if v == nil { @@ -41419,7 +41455,7 @@ func (o PersistentVolumeSpecPtrOutput) PersistentVolumeReclaimPolicy() pulumi.St }).(pulumi.StringPtrOutput) } -// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. func (o PersistentVolumeSpecPtrOutput) PhotonPersistentDisk() PhotonPersistentDiskVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *PhotonPersistentDiskVolumeSource { if v == nil { @@ -41429,7 +41465,7 @@ func (o PersistentVolumeSpecPtrOutput) PhotonPersistentDisk() PhotonPersistentDi }).(PhotonPersistentDiskVolumeSourcePtrOutput) } -// portworxVolume represents a portworx volume attached and mounted on kubelets host machine +// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. func (o PersistentVolumeSpecPtrOutput) PortworxVolume() PortworxVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *PortworxVolumeSource { if v == nil { @@ -41439,7 +41475,7 @@ func (o PersistentVolumeSpecPtrOutput) PortworxVolume() PortworxVolumeSourcePtrO }).(PortworxVolumeSourcePtrOutput) } -// quobyte represents a Quobyte mount on the host that shares a pod's lifetime +// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. func (o PersistentVolumeSpecPtrOutput) Quobyte() QuobyteVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *QuobyteVolumeSource { if v == nil { @@ -41449,7 +41485,7 @@ func (o PersistentVolumeSpecPtrOutput) Quobyte() QuobyteVolumeSourcePtrOutput { }).(QuobyteVolumeSourcePtrOutput) } -// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md func (o PersistentVolumeSpecPtrOutput) Rbd() RBDPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *RBDPersistentVolumeSource { if v == nil { @@ -41459,7 +41495,7 @@ func (o PersistentVolumeSpecPtrOutput) Rbd() RBDPersistentVolumeSourcePtrOutput }).(RBDPersistentVolumeSourcePtrOutput) } -// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. func (o PersistentVolumeSpecPtrOutput) ScaleIO() ScaleIOPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *ScaleIOPersistentVolumeSource { if v == nil { @@ -41479,7 +41515,7 @@ func (o PersistentVolumeSpecPtrOutput) StorageClassName() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } -// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md +// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md func (o PersistentVolumeSpecPtrOutput) Storageos() StorageOSPersistentVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *StorageOSPersistentVolumeSource { if v == nil { @@ -41509,7 +41545,7 @@ func (o PersistentVolumeSpecPtrOutput) VolumeMode() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. func (o PersistentVolumeSpecPtrOutput) VsphereVolume() VsphereVirtualDiskVolumeSourcePtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *VsphereVirtualDiskVolumeSource { if v == nil { @@ -41523,31 +41559,31 @@ func (o PersistentVolumeSpecPtrOutput) VsphereVolume() VsphereVirtualDiskVolumeS type PersistentVolumeSpecPatch struct { // accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes AccessModes []string `pulumi:"accessModes"` - // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore AwsElasticBlockStore *AWSElasticBlockStoreVolumeSourcePatch `pulumi:"awsElasticBlockStore"` - // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. AzureDisk *AzureDiskVolumeSourcePatch `pulumi:"azureDisk"` - // azureFile represents an Azure File Service mount on the host and bind mount to the pod. + // azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. AzureFile *AzureFilePersistentVolumeSourcePatch `pulumi:"azureFile"` // capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity Capacity map[string]string `pulumi:"capacity"` - // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. Cephfs *CephFSPersistentVolumeSourcePatch `pulumi:"cephfs"` - // cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + // cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md Cinder *CinderPersistentVolumeSourcePatch `pulumi:"cinder"` // claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding ClaimRef *ObjectReferencePatch `pulumi:"claimRef"` - // csi represents storage that is handled by an external CSI driver (Beta feature). + // csi represents storage that is handled by an external CSI driver. Csi *CSIPersistentVolumeSourcePatch `pulumi:"csi"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. Fc *FCVolumeSourcePatch `pulumi:"fc"` - // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. FlexVolume *FlexPersistentVolumeSourcePatch `pulumi:"flexVolume"` - // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. Flocker *FlockerVolumeSourcePatch `pulumi:"flocker"` - // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk GcePersistentDisk *GCEPersistentDiskVolumeSourcePatch `pulumi:"gcePersistentDisk"` - // glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md Glusterfs *GlusterfsPersistentVolumeSourcePatch `pulumi:"glusterfs"` // hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath *HostPathVolumeSourcePatch `pulumi:"hostPath"` @@ -41563,25 +41599,25 @@ type PersistentVolumeSpecPatch struct { NodeAffinity *VolumeNodeAffinityPatch `pulumi:"nodeAffinity"` // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming PersistentVolumeReclaimPolicy *string `pulumi:"persistentVolumeReclaimPolicy"` - // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. PhotonPersistentDisk *PhotonPersistentDiskVolumeSourcePatch `pulumi:"photonPersistentDisk"` - // portworxVolume represents a portworx volume attached and mounted on kubelets host machine + // portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. PortworxVolume *PortworxVolumeSourcePatch `pulumi:"portworxVolume"` - // quobyte represents a Quobyte mount on the host that shares a pod's lifetime + // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte *QuobyteVolumeSourcePatch `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md Rbd *RBDPersistentVolumeSourcePatch `pulumi:"rbd"` - // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO *ScaleIOPersistentVolumeSourcePatch `pulumi:"scaleIO"` // storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. StorageClassName *string `pulumi:"storageClassName"` - // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md Storageos *StorageOSPersistentVolumeSourcePatch `pulumi:"storageos"` // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). VolumeAttributesClassName *string `pulumi:"volumeAttributesClassName"` // volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. VolumeMode *string `pulumi:"volumeMode"` - // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. VsphereVolume *VsphereVirtualDiskVolumeSourcePatch `pulumi:"vsphereVolume"` } @@ -41600,31 +41636,31 @@ type PersistentVolumeSpecPatchInput interface { type PersistentVolumeSpecPatchArgs struct { // accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes AccessModes pulumi.StringArrayInput `pulumi:"accessModes"` - // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore AwsElasticBlockStore AWSElasticBlockStoreVolumeSourcePatchPtrInput `pulumi:"awsElasticBlockStore"` - // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. AzureDisk AzureDiskVolumeSourcePatchPtrInput `pulumi:"azureDisk"` - // azureFile represents an Azure File Service mount on the host and bind mount to the pod. + // azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. AzureFile AzureFilePersistentVolumeSourcePatchPtrInput `pulumi:"azureFile"` // capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity Capacity pulumi.StringMapInput `pulumi:"capacity"` - // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. Cephfs CephFSPersistentVolumeSourcePatchPtrInput `pulumi:"cephfs"` - // cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + // cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md Cinder CinderPersistentVolumeSourcePatchPtrInput `pulumi:"cinder"` // claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding ClaimRef ObjectReferencePatchPtrInput `pulumi:"claimRef"` - // csi represents storage that is handled by an external CSI driver (Beta feature). + // csi represents storage that is handled by an external CSI driver. Csi CSIPersistentVolumeSourcePatchPtrInput `pulumi:"csi"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. Fc FCVolumeSourcePatchPtrInput `pulumi:"fc"` - // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. FlexVolume FlexPersistentVolumeSourcePatchPtrInput `pulumi:"flexVolume"` - // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. Flocker FlockerVolumeSourcePatchPtrInput `pulumi:"flocker"` - // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk GcePersistentDisk GCEPersistentDiskVolumeSourcePatchPtrInput `pulumi:"gcePersistentDisk"` - // glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md Glusterfs GlusterfsPersistentVolumeSourcePatchPtrInput `pulumi:"glusterfs"` // hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath HostPathVolumeSourcePatchPtrInput `pulumi:"hostPath"` @@ -41640,25 +41676,25 @@ type PersistentVolumeSpecPatchArgs struct { NodeAffinity VolumeNodeAffinityPatchPtrInput `pulumi:"nodeAffinity"` // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming PersistentVolumeReclaimPolicy pulumi.StringPtrInput `pulumi:"persistentVolumeReclaimPolicy"` - // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. PhotonPersistentDisk PhotonPersistentDiskVolumeSourcePatchPtrInput `pulumi:"photonPersistentDisk"` - // portworxVolume represents a portworx volume attached and mounted on kubelets host machine + // portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. PortworxVolume PortworxVolumeSourcePatchPtrInput `pulumi:"portworxVolume"` - // quobyte represents a Quobyte mount on the host that shares a pod's lifetime + // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte QuobyteVolumeSourcePatchPtrInput `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md Rbd RBDPersistentVolumeSourcePatchPtrInput `pulumi:"rbd"` - // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO ScaleIOPersistentVolumeSourcePatchPtrInput `pulumi:"scaleIO"` // storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. StorageClassName pulumi.StringPtrInput `pulumi:"storageClassName"` - // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md Storageos StorageOSPersistentVolumeSourcePatchPtrInput `pulumi:"storageos"` // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). VolumeAttributesClassName pulumi.StringPtrInput `pulumi:"volumeAttributesClassName"` // volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. VolumeMode pulumi.StringPtrInput `pulumi:"volumeMode"` - // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. VsphereVolume VsphereVirtualDiskVolumeSourcePatchPtrInput `pulumi:"vsphereVolume"` } @@ -41745,19 +41781,19 @@ func (o PersistentVolumeSpecPatchOutput) AccessModes() pulumi.StringArrayOutput return o.ApplyT(func(v PersistentVolumeSpecPatch) []string { return v.AccessModes }).(pulumi.StringArrayOutput) } -// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore func (o PersistentVolumeSpecPatchOutput) AwsElasticBlockStore() AWSElasticBlockStoreVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *AWSElasticBlockStoreVolumeSourcePatch { return v.AwsElasticBlockStore }).(AWSElasticBlockStoreVolumeSourcePatchPtrOutput) } -// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. func (o PersistentVolumeSpecPatchOutput) AzureDisk() AzureDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *AzureDiskVolumeSourcePatch { return v.AzureDisk }).(AzureDiskVolumeSourcePatchPtrOutput) } -// azureFile represents an Azure File Service mount on the host and bind mount to the pod. +// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. func (o PersistentVolumeSpecPatchOutput) AzureFile() AzureFilePersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *AzureFilePersistentVolumeSourcePatch { return v.AzureFile }).(AzureFilePersistentVolumeSourcePatchPtrOutput) } @@ -41767,12 +41803,12 @@ func (o PersistentVolumeSpecPatchOutput) Capacity() pulumi.StringMapOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) map[string]string { return v.Capacity }).(pulumi.StringMapOutput) } -// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime +// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. func (o PersistentVolumeSpecPatchOutput) Cephfs() CephFSPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *CephFSPersistentVolumeSourcePatch { return v.Cephfs }).(CephFSPersistentVolumeSourcePatchPtrOutput) } -// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md func (o PersistentVolumeSpecPatchOutput) Cinder() CinderPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *CinderPersistentVolumeSourcePatch { return v.Cinder }).(CinderPersistentVolumeSourcePatchPtrOutput) } @@ -41782,7 +41818,7 @@ func (o PersistentVolumeSpecPatchOutput) ClaimRef() ObjectReferencePatchPtrOutpu return o.ApplyT(func(v PersistentVolumeSpecPatch) *ObjectReferencePatch { return v.ClaimRef }).(ObjectReferencePatchPtrOutput) } -// csi represents storage that is handled by an external CSI driver (Beta feature). +// csi represents storage that is handled by an external CSI driver. func (o PersistentVolumeSpecPatchOutput) Csi() CSIPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *CSIPersistentVolumeSourcePatch { return v.Csi }).(CSIPersistentVolumeSourcePatchPtrOutput) } @@ -41792,22 +41828,22 @@ func (o PersistentVolumeSpecPatchOutput) Fc() FCVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *FCVolumeSourcePatch { return v.Fc }).(FCVolumeSourcePatchPtrOutput) } -// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. func (o PersistentVolumeSpecPatchOutput) FlexVolume() FlexPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *FlexPersistentVolumeSourcePatch { return v.FlexVolume }).(FlexPersistentVolumeSourcePatchPtrOutput) } -// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running +// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. func (o PersistentVolumeSpecPatchOutput) Flocker() FlockerVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *FlockerVolumeSourcePatch { return v.Flocker }).(FlockerVolumeSourcePatchPtrOutput) } -// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk func (o PersistentVolumeSpecPatchOutput) GcePersistentDisk() GCEPersistentDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *GCEPersistentDiskVolumeSourcePatch { return v.GcePersistentDisk }).(GCEPersistentDiskVolumeSourcePatchPtrOutput) } -// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md +// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md func (o PersistentVolumeSpecPatchOutput) Glusterfs() GlusterfsPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *GlusterfsPersistentVolumeSourcePatch { return v.Glusterfs }).(GlusterfsPersistentVolumeSourcePatchPtrOutput) } @@ -41847,29 +41883,29 @@ func (o PersistentVolumeSpecPatchOutput) PersistentVolumeReclaimPolicy() pulumi. return o.ApplyT(func(v PersistentVolumeSpecPatch) *string { return v.PersistentVolumeReclaimPolicy }).(pulumi.StringPtrOutput) } -// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. func (o PersistentVolumeSpecPatchOutput) PhotonPersistentDisk() PhotonPersistentDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *PhotonPersistentDiskVolumeSourcePatch { return v.PhotonPersistentDisk }).(PhotonPersistentDiskVolumeSourcePatchPtrOutput) } -// portworxVolume represents a portworx volume attached and mounted on kubelets host machine +// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. func (o PersistentVolumeSpecPatchOutput) PortworxVolume() PortworxVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *PortworxVolumeSourcePatch { return v.PortworxVolume }).(PortworxVolumeSourcePatchPtrOutput) } -// quobyte represents a Quobyte mount on the host that shares a pod's lifetime +// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. func (o PersistentVolumeSpecPatchOutput) Quobyte() QuobyteVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *QuobyteVolumeSourcePatch { return v.Quobyte }).(QuobyteVolumeSourcePatchPtrOutput) } -// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md func (o PersistentVolumeSpecPatchOutput) Rbd() RBDPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *RBDPersistentVolumeSourcePatch { return v.Rbd }).(RBDPersistentVolumeSourcePatchPtrOutput) } -// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. func (o PersistentVolumeSpecPatchOutput) ScaleIO() ScaleIOPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *ScaleIOPersistentVolumeSourcePatch { return v.ScaleIO }).(ScaleIOPersistentVolumeSourcePatchPtrOutput) } @@ -41879,7 +41915,7 @@ func (o PersistentVolumeSpecPatchOutput) StorageClassName() pulumi.StringPtrOutp return o.ApplyT(func(v PersistentVolumeSpecPatch) *string { return v.StorageClassName }).(pulumi.StringPtrOutput) } -// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md +// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md func (o PersistentVolumeSpecPatchOutput) Storageos() StorageOSPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *StorageOSPersistentVolumeSourcePatch { return v.Storageos }).(StorageOSPersistentVolumeSourcePatchPtrOutput) } @@ -41894,7 +41930,7 @@ func (o PersistentVolumeSpecPatchOutput) VolumeMode() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *string { return v.VolumeMode }).(pulumi.StringPtrOutput) } -// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. func (o PersistentVolumeSpecPatchOutput) VsphereVolume() VsphereVirtualDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *VsphereVirtualDiskVolumeSourcePatch { return v.VsphereVolume }).(VsphereVirtualDiskVolumeSourcePatchPtrOutput) } @@ -41933,7 +41969,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) AccessModes() pulumi.StringArrayOutp }).(pulumi.StringArrayOutput) } -// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore func (o PersistentVolumeSpecPatchPtrOutput) AwsElasticBlockStore() AWSElasticBlockStoreVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *AWSElasticBlockStoreVolumeSourcePatch { if v == nil { @@ -41943,7 +41979,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) AwsElasticBlockStore() AWSElasticBlo }).(AWSElasticBlockStoreVolumeSourcePatchPtrOutput) } -// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. func (o PersistentVolumeSpecPatchPtrOutput) AzureDisk() AzureDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *AzureDiskVolumeSourcePatch { if v == nil { @@ -41953,7 +41989,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) AzureDisk() AzureDiskVolumeSourcePat }).(AzureDiskVolumeSourcePatchPtrOutput) } -// azureFile represents an Azure File Service mount on the host and bind mount to the pod. +// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. func (o PersistentVolumeSpecPatchPtrOutput) AzureFile() AzureFilePersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *AzureFilePersistentVolumeSourcePatch { if v == nil { @@ -41973,7 +42009,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) Capacity() pulumi.StringMapOutput { }).(pulumi.StringMapOutput) } -// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime +// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. func (o PersistentVolumeSpecPatchPtrOutput) Cephfs() CephFSPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *CephFSPersistentVolumeSourcePatch { if v == nil { @@ -41983,7 +42019,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) Cephfs() CephFSPersistentVolumeSourc }).(CephFSPersistentVolumeSourcePatchPtrOutput) } -// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md func (o PersistentVolumeSpecPatchPtrOutput) Cinder() CinderPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *CinderPersistentVolumeSourcePatch { if v == nil { @@ -42003,7 +42039,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) ClaimRef() ObjectReferencePatchPtrOu }).(ObjectReferencePatchPtrOutput) } -// csi represents storage that is handled by an external CSI driver (Beta feature). +// csi represents storage that is handled by an external CSI driver. func (o PersistentVolumeSpecPatchPtrOutput) Csi() CSIPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *CSIPersistentVolumeSourcePatch { if v == nil { @@ -42023,7 +42059,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) Fc() FCVolumeSourcePatchPtrOutput { }).(FCVolumeSourcePatchPtrOutput) } -// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. func (o PersistentVolumeSpecPatchPtrOutput) FlexVolume() FlexPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *FlexPersistentVolumeSourcePatch { if v == nil { @@ -42033,7 +42069,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) FlexVolume() FlexPersistentVolumeSou }).(FlexPersistentVolumeSourcePatchPtrOutput) } -// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running +// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. func (o PersistentVolumeSpecPatchPtrOutput) Flocker() FlockerVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *FlockerVolumeSourcePatch { if v == nil { @@ -42043,7 +42079,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) Flocker() FlockerVolumeSourcePatchPt }).(FlockerVolumeSourcePatchPtrOutput) } -// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk func (o PersistentVolumeSpecPatchPtrOutput) GcePersistentDisk() GCEPersistentDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *GCEPersistentDiskVolumeSourcePatch { if v == nil { @@ -42053,7 +42089,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) GcePersistentDisk() GCEPersistentDis }).(GCEPersistentDiskVolumeSourcePatchPtrOutput) } -// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md +// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md func (o PersistentVolumeSpecPatchPtrOutput) Glusterfs() GlusterfsPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *GlusterfsPersistentVolumeSourcePatch { if v == nil { @@ -42133,7 +42169,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) PersistentVolumeReclaimPolicy() pulu }).(pulumi.StringPtrOutput) } -// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. func (o PersistentVolumeSpecPatchPtrOutput) PhotonPersistentDisk() PhotonPersistentDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *PhotonPersistentDiskVolumeSourcePatch { if v == nil { @@ -42143,7 +42179,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) PhotonPersistentDisk() PhotonPersist }).(PhotonPersistentDiskVolumeSourcePatchPtrOutput) } -// portworxVolume represents a portworx volume attached and mounted on kubelets host machine +// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. func (o PersistentVolumeSpecPatchPtrOutput) PortworxVolume() PortworxVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *PortworxVolumeSourcePatch { if v == nil { @@ -42153,7 +42189,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) PortworxVolume() PortworxVolumeSourc }).(PortworxVolumeSourcePatchPtrOutput) } -// quobyte represents a Quobyte mount on the host that shares a pod's lifetime +// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. func (o PersistentVolumeSpecPatchPtrOutput) Quobyte() QuobyteVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *QuobyteVolumeSourcePatch { if v == nil { @@ -42163,7 +42199,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) Quobyte() QuobyteVolumeSourcePatchPt }).(QuobyteVolumeSourcePatchPtrOutput) } -// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md func (o PersistentVolumeSpecPatchPtrOutput) Rbd() RBDPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *RBDPersistentVolumeSourcePatch { if v == nil { @@ -42173,7 +42209,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) Rbd() RBDPersistentVolumeSourcePatch }).(RBDPersistentVolumeSourcePatchPtrOutput) } -// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. func (o PersistentVolumeSpecPatchPtrOutput) ScaleIO() ScaleIOPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *ScaleIOPersistentVolumeSourcePatch { if v == nil { @@ -42193,7 +42229,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) StorageClassName() pulumi.StringPtrO }).(pulumi.StringPtrOutput) } -// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md +// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md func (o PersistentVolumeSpecPatchPtrOutput) Storageos() StorageOSPersistentVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *StorageOSPersistentVolumeSourcePatch { if v == nil { @@ -42223,7 +42259,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) VolumeMode() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } -// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. func (o PersistentVolumeSpecPatchPtrOutput) VsphereVolume() VsphereVirtualDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *VsphereVirtualDiskVolumeSourcePatch { if v == nil { @@ -44669,8 +44705,9 @@ func (o PodDNSConfigPtrOutput) Searches() pulumi.StringArrayOutput { // PodDNSConfigOption defines DNS resolver options of a pod. type PodDNSConfigOption struct { - // Required. - Name *string `pulumi:"name"` + // Name is this DNS resolver option's name. Required. + Name *string `pulumi:"name"` + // Value is this DNS resolver option's value. Value *string `pulumi:"value"` } @@ -44687,8 +44724,9 @@ type PodDNSConfigOptionInput interface { // PodDNSConfigOption defines DNS resolver options of a pod. type PodDNSConfigOptionArgs struct { - // Required. - Name pulumi.StringPtrInput `pulumi:"name"` + // Name is this DNS resolver option's name. Required. + Name pulumi.StringPtrInput `pulumi:"name"` + // Value is this DNS resolver option's value. Value pulumi.StringPtrInput `pulumi:"value"` } @@ -44744,11 +44782,12 @@ func (o PodDNSConfigOptionOutput) ToPodDNSConfigOptionOutputWithContext(ctx cont return o } -// Required. +// Name is this DNS resolver option's name. Required. func (o PodDNSConfigOptionOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v PodDNSConfigOption) *string { return v.Name }).(pulumi.StringPtrOutput) } +// Value is this DNS resolver option's value. func (o PodDNSConfigOptionOutput) Value() pulumi.StringPtrOutput { return o.ApplyT(func(v PodDNSConfigOption) *string { return v.Value }).(pulumi.StringPtrOutput) } @@ -44775,8 +44814,9 @@ func (o PodDNSConfigOptionArrayOutput) Index(i pulumi.IntInput) PodDNSConfigOpti // PodDNSConfigOption defines DNS resolver options of a pod. type PodDNSConfigOptionPatch struct { - // Required. - Name *string `pulumi:"name"` + // Name is this DNS resolver option's name. Required. + Name *string `pulumi:"name"` + // Value is this DNS resolver option's value. Value *string `pulumi:"value"` } @@ -44793,8 +44833,9 @@ type PodDNSConfigOptionPatchInput interface { // PodDNSConfigOption defines DNS resolver options of a pod. type PodDNSConfigOptionPatchArgs struct { - // Required. - Name pulumi.StringPtrInput `pulumi:"name"` + // Name is this DNS resolver option's name. Required. + Name pulumi.StringPtrInput `pulumi:"name"` + // Value is this DNS resolver option's value. Value pulumi.StringPtrInput `pulumi:"value"` } @@ -44850,11 +44891,12 @@ func (o PodDNSConfigOptionPatchOutput) ToPodDNSConfigOptionPatchOutputWithContex return o } -// Required. +// Name is this DNS resolver option's name. Required. func (o PodDNSConfigOptionPatchOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v PodDNSConfigOptionPatch) *string { return v.Name }).(pulumi.StringPtrOutput) } +// Value is this DNS resolver option's value. func (o PodDNSConfigOptionPatchOutput) Value() pulumi.StringPtrOutput { return o.ApplyT(func(v PodDNSConfigOptionPatch) *string { return v.Value }).(pulumi.StringPtrOutput) } @@ -46705,6 +46747,18 @@ type PodSecurityContext struct { RunAsNonRoot *bool `pulumi:"runAsNonRoot"` // The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. RunAsUser *int `pulumi:"runAsUser"` + // seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + // + // "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + // + // "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + // + // If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + // + // This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + // + // All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + SeLinuxChangePolicy *string `pulumi:"seLinuxChangePolicy"` // The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. SeLinuxOptions *SELinuxOptions `pulumi:"seLinuxOptions"` // The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. @@ -46748,6 +46802,18 @@ type PodSecurityContextArgs struct { RunAsNonRoot pulumi.BoolPtrInput `pulumi:"runAsNonRoot"` // The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. RunAsUser pulumi.IntPtrInput `pulumi:"runAsUser"` + // seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + // + // "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + // + // "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + // + // If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + // + // This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + // + // All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + SeLinuxChangePolicy pulumi.StringPtrInput `pulumi:"seLinuxChangePolicy"` // The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. SeLinuxOptions SELinuxOptionsPtrInput `pulumi:"seLinuxOptions"` // The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. @@ -46874,6 +46940,21 @@ func (o PodSecurityContextOutput) RunAsUser() pulumi.IntPtrOutput { return o.ApplyT(func(v PodSecurityContext) *int { return v.RunAsUser }).(pulumi.IntPtrOutput) } +// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". +// +// "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. +// +// "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. +// +// If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. +// +// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. +// +// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. +func (o PodSecurityContextOutput) SeLinuxChangePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodSecurityContext) *string { return v.SeLinuxChangePolicy }).(pulumi.StringPtrOutput) +} + // The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. func (o PodSecurityContextOutput) SeLinuxOptions() SELinuxOptionsPtrOutput { return o.ApplyT(func(v PodSecurityContext) *SELinuxOptions { return v.SeLinuxOptions }).(SELinuxOptionsPtrOutput) @@ -46992,6 +47073,26 @@ func (o PodSecurityContextPtrOutput) RunAsUser() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". +// +// "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. +// +// "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. +// +// If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. +// +// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. +// +// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. +func (o PodSecurityContextPtrOutput) SeLinuxChangePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodSecurityContext) *string { + if v == nil { + return nil + } + return v.SeLinuxChangePolicy + }).(pulumi.StringPtrOutput) +} + // The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. func (o PodSecurityContextPtrOutput) SeLinuxOptions() SELinuxOptionsPtrOutput { return o.ApplyT(func(v *PodSecurityContext) *SELinuxOptions { @@ -47070,6 +47171,18 @@ type PodSecurityContextPatch struct { RunAsNonRoot *bool `pulumi:"runAsNonRoot"` // The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. RunAsUser *int `pulumi:"runAsUser"` + // seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + // + // "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + // + // "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + // + // If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + // + // This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + // + // All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + SeLinuxChangePolicy *string `pulumi:"seLinuxChangePolicy"` // The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. SeLinuxOptions *SELinuxOptionsPatch `pulumi:"seLinuxOptions"` // The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. @@ -47113,6 +47226,18 @@ type PodSecurityContextPatchArgs struct { RunAsNonRoot pulumi.BoolPtrInput `pulumi:"runAsNonRoot"` // The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. RunAsUser pulumi.IntPtrInput `pulumi:"runAsUser"` + // seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + // + // "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + // + // "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + // + // If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + // + // This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + // + // All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + SeLinuxChangePolicy pulumi.StringPtrInput `pulumi:"seLinuxChangePolicy"` // The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. SeLinuxOptions SELinuxOptionsPatchPtrInput `pulumi:"seLinuxOptions"` // The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. @@ -47239,6 +47364,21 @@ func (o PodSecurityContextPatchOutput) RunAsUser() pulumi.IntPtrOutput { return o.ApplyT(func(v PodSecurityContextPatch) *int { return v.RunAsUser }).(pulumi.IntPtrOutput) } +// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". +// +// "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. +// +// "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. +// +// If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. +// +// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. +// +// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. +func (o PodSecurityContextPatchOutput) SeLinuxChangePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodSecurityContextPatch) *string { return v.SeLinuxChangePolicy }).(pulumi.StringPtrOutput) +} + // The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. func (o PodSecurityContextPatchOutput) SeLinuxOptions() SELinuxOptionsPatchPtrOutput { return o.ApplyT(func(v PodSecurityContextPatch) *SELinuxOptionsPatch { return v.SeLinuxOptions }).(SELinuxOptionsPatchPtrOutput) @@ -47357,6 +47497,26 @@ func (o PodSecurityContextPatchPtrOutput) RunAsUser() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". +// +// "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. +// +// "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. +// +// If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. +// +// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. +// +// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. +func (o PodSecurityContextPatchPtrOutput) SeLinuxChangePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodSecurityContextPatch) *string { + if v == nil { + return nil + } + return v.SeLinuxChangePolicy + }).(pulumi.StringPtrOutput) +} + // The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. func (o PodSecurityContextPatchPtrOutput) SeLinuxOptions() SELinuxOptionsPatchPtrOutput { return o.ApplyT(func(v *PodSecurityContextPatch) *SELinuxOptionsPatch { @@ -47477,6 +47637,12 @@ type PodSpec struct { // // This field is immutable. ResourceClaims []PodResourceClaim `pulumi:"resourceClaims"` + // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + // + // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + // + // This is an alpha field and requires enabling the PodLevelResources feature gate. + Resources *ResourceRequirements `pulumi:"resources"` // Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy RestartPolicy *string `pulumi:"restartPolicy"` // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class @@ -47493,7 +47659,7 @@ type PodSpec struct { ServiceAccount *string `pulumi:"serviceAccount"` // ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ServiceAccountName *string `pulumi:"serviceAccountName"` - // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. SetHostnameAsFQDN *bool `pulumi:"setHostnameAsFQDN"` // Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. ShareProcessNamespace *bool `pulumi:"shareProcessNamespace"` @@ -47580,6 +47746,12 @@ type PodSpecArgs struct { // // This field is immutable. ResourceClaims PodResourceClaimArrayInput `pulumi:"resourceClaims"` + // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + // + // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + // + // This is an alpha field and requires enabling the PodLevelResources feature gate. + Resources ResourceRequirementsPtrInput `pulumi:"resources"` // Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy RestartPolicy pulumi.StringPtrInput `pulumi:"restartPolicy"` // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class @@ -47596,7 +47768,7 @@ type PodSpecArgs struct { ServiceAccount pulumi.StringPtrInput `pulumi:"serviceAccount"` // ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ServiceAccountName pulumi.StringPtrInput `pulumi:"serviceAccountName"` - // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. SetHostnameAsFQDN pulumi.BoolPtrInput `pulumi:"setHostnameAsFQDN"` // Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. ShareProcessNamespace pulumi.BoolPtrInput `pulumi:"shareProcessNamespace"` @@ -47823,6 +47995,15 @@ func (o PodSpecOutput) ResourceClaims() PodResourceClaimArrayOutput { return o.ApplyT(func(v PodSpec) []PodResourceClaim { return v.ResourceClaims }).(PodResourceClaimArrayOutput) } +// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. +// +// This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. +// +// This is an alpha field and requires enabling the PodLevelResources feature gate. +func (o PodSpecOutput) Resources() ResourceRequirementsPtrOutput { + return o.ApplyT(func(v PodSpec) *ResourceRequirements { return v.Resources }).(ResourceRequirementsPtrOutput) +} + // Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy func (o PodSpecOutput) RestartPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v PodSpec) *string { return v.RestartPolicy }).(pulumi.StringPtrOutput) @@ -47860,7 +48041,7 @@ func (o PodSpecOutput) ServiceAccountName() pulumi.StringPtrOutput { return o.ApplyT(func(v PodSpec) *string { return v.ServiceAccountName }).(pulumi.StringPtrOutput) } -// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. +// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. func (o PodSpecOutput) SetHostnameAsFQDN() pulumi.BoolPtrOutput { return o.ApplyT(func(v PodSpec) *bool { return v.SetHostnameAsFQDN }).(pulumi.BoolPtrOutput) } @@ -48177,6 +48358,20 @@ func (o PodSpecPtrOutput) ResourceClaims() PodResourceClaimArrayOutput { }).(PodResourceClaimArrayOutput) } +// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. +// +// This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. +// +// This is an alpha field and requires enabling the PodLevelResources feature gate. +func (o PodSpecPtrOutput) Resources() ResourceRequirementsPtrOutput { + return o.ApplyT(func(v *PodSpec) *ResourceRequirements { + if v == nil { + return nil + } + return v.Resources + }).(ResourceRequirementsPtrOutput) +} + // Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy func (o PodSpecPtrOutput) RestartPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *PodSpec) *string { @@ -48249,7 +48444,7 @@ func (o PodSpecPtrOutput) ServiceAccountName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. +// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. func (o PodSpecPtrOutput) SetHostnameAsFQDN() pulumi.BoolPtrOutput { return o.ApplyT(func(v *PodSpec) *bool { if v == nil { @@ -48379,6 +48574,12 @@ type PodSpecPatch struct { // // This field is immutable. ResourceClaims []PodResourceClaimPatch `pulumi:"resourceClaims"` + // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + // + // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + // + // This is an alpha field and requires enabling the PodLevelResources feature gate. + Resources *ResourceRequirementsPatch `pulumi:"resources"` // Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy RestartPolicy *string `pulumi:"restartPolicy"` // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class @@ -48395,7 +48596,7 @@ type PodSpecPatch struct { ServiceAccount *string `pulumi:"serviceAccount"` // ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ServiceAccountName *string `pulumi:"serviceAccountName"` - // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. SetHostnameAsFQDN *bool `pulumi:"setHostnameAsFQDN"` // Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. ShareProcessNamespace *bool `pulumi:"shareProcessNamespace"` @@ -48482,6 +48683,12 @@ type PodSpecPatchArgs struct { // // This field is immutable. ResourceClaims PodResourceClaimPatchArrayInput `pulumi:"resourceClaims"` + // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + // + // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + // + // This is an alpha field and requires enabling the PodLevelResources feature gate. + Resources ResourceRequirementsPatchPtrInput `pulumi:"resources"` // Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy RestartPolicy pulumi.StringPtrInput `pulumi:"restartPolicy"` // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class @@ -48498,7 +48705,7 @@ type PodSpecPatchArgs struct { ServiceAccount pulumi.StringPtrInput `pulumi:"serviceAccount"` // ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ServiceAccountName pulumi.StringPtrInput `pulumi:"serviceAccountName"` - // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. SetHostnameAsFQDN pulumi.BoolPtrInput `pulumi:"setHostnameAsFQDN"` // Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. ShareProcessNamespace pulumi.BoolPtrInput `pulumi:"shareProcessNamespace"` @@ -48725,6 +48932,15 @@ func (o PodSpecPatchOutput) ResourceClaims() PodResourceClaimPatchArrayOutput { return o.ApplyT(func(v PodSpecPatch) []PodResourceClaimPatch { return v.ResourceClaims }).(PodResourceClaimPatchArrayOutput) } +// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. +// +// This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. +// +// This is an alpha field and requires enabling the PodLevelResources feature gate. +func (o PodSpecPatchOutput) Resources() ResourceRequirementsPatchPtrOutput { + return o.ApplyT(func(v PodSpecPatch) *ResourceRequirementsPatch { return v.Resources }).(ResourceRequirementsPatchPtrOutput) +} + // Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy func (o PodSpecPatchOutput) RestartPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v PodSpecPatch) *string { return v.RestartPolicy }).(pulumi.StringPtrOutput) @@ -48762,7 +48978,7 @@ func (o PodSpecPatchOutput) ServiceAccountName() pulumi.StringPtrOutput { return o.ApplyT(func(v PodSpecPatch) *string { return v.ServiceAccountName }).(pulumi.StringPtrOutput) } -// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. +// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. func (o PodSpecPatchOutput) SetHostnameAsFQDN() pulumi.BoolPtrOutput { return o.ApplyT(func(v PodSpecPatch) *bool { return v.SetHostnameAsFQDN }).(pulumi.BoolPtrOutput) } @@ -49079,6 +49295,20 @@ func (o PodSpecPatchPtrOutput) ResourceClaims() PodResourceClaimPatchArrayOutput }).(PodResourceClaimPatchArrayOutput) } +// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. +// +// This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. +// +// This is an alpha field and requires enabling the PodLevelResources feature gate. +func (o PodSpecPatchPtrOutput) Resources() ResourceRequirementsPatchPtrOutput { + return o.ApplyT(func(v *PodSpecPatch) *ResourceRequirementsPatch { + if v == nil { + return nil + } + return v.Resources + }).(ResourceRequirementsPatchPtrOutput) +} + // Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy func (o PodSpecPatchPtrOutput) RestartPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *PodSpecPatch) *string { @@ -49151,7 +49381,7 @@ func (o PodSpecPatchPtrOutput) ServiceAccountName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. +// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. func (o PodSpecPatchPtrOutput) SetHostnameAsFQDN() pulumi.BoolPtrOutput { return o.ApplyT(func(v *PodSpecPatch) *bool { if v == nil { @@ -49225,15 +49455,15 @@ func (o PodSpecPatchPtrOutput) Volumes() VolumePatchArrayOutput { type PodStatus struct { // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Conditions []PodCondition `pulumi:"conditions"` - // The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + // Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status ContainerStatuses []ContainerStatus `pulumi:"containerStatuses"` - // Status for any ephemeral containers that have run in this pod. + // Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status EphemeralContainerStatuses []ContainerStatus `pulumi:"ephemeralContainerStatuses"` // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod HostIP *string `pulumi:"hostIP"` // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. HostIPs []HostIP `pulumi:"hostIPs"` - // The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + // Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status InitContainerStatuses []ContainerStatus `pulumi:"initContainerStatuses"` // A human readable message indicating details about why the pod is in this condition. Message *string `pulumi:"message"` @@ -49276,15 +49506,15 @@ type PodStatusInput interface { type PodStatusArgs struct { // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Conditions PodConditionArrayInput `pulumi:"conditions"` - // The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + // Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status ContainerStatuses ContainerStatusArrayInput `pulumi:"containerStatuses"` - // Status for any ephemeral containers that have run in this pod. + // Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status EphemeralContainerStatuses ContainerStatusArrayInput `pulumi:"ephemeralContainerStatuses"` // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod HostIP pulumi.StringPtrInput `pulumi:"hostIP"` // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. HostIPs HostIPArrayInput `pulumi:"hostIPs"` - // The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + // Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status InitContainerStatuses ContainerStatusArrayInput `pulumi:"initContainerStatuses"` // A human readable message indicating details about why the pod is in this condition. Message pulumi.StringPtrInput `pulumi:"message"` @@ -49395,12 +49625,12 @@ func (o PodStatusOutput) Conditions() PodConditionArrayOutput { return o.ApplyT(func(v PodStatus) []PodCondition { return v.Conditions }).(PodConditionArrayOutput) } -// The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status +// Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status func (o PodStatusOutput) ContainerStatuses() ContainerStatusArrayOutput { return o.ApplyT(func(v PodStatus) []ContainerStatus { return v.ContainerStatuses }).(ContainerStatusArrayOutput) } -// Status for any ephemeral containers that have run in this pod. +// Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status func (o PodStatusOutput) EphemeralContainerStatuses() ContainerStatusArrayOutput { return o.ApplyT(func(v PodStatus) []ContainerStatus { return v.EphemeralContainerStatuses }).(ContainerStatusArrayOutput) } @@ -49415,7 +49645,7 @@ func (o PodStatusOutput) HostIPs() HostIPArrayOutput { return o.ApplyT(func(v PodStatus) []HostIP { return v.HostIPs }).(HostIPArrayOutput) } -// The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status +// Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status func (o PodStatusOutput) InitContainerStatuses() ContainerStatusArrayOutput { return o.ApplyT(func(v PodStatus) []ContainerStatus { return v.InitContainerStatuses }).(ContainerStatusArrayOutput) } @@ -49508,7 +49738,7 @@ func (o PodStatusPtrOutput) Conditions() PodConditionArrayOutput { }).(PodConditionArrayOutput) } -// The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status +// Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status func (o PodStatusPtrOutput) ContainerStatuses() ContainerStatusArrayOutput { return o.ApplyT(func(v *PodStatus) []ContainerStatus { if v == nil { @@ -49518,7 +49748,7 @@ func (o PodStatusPtrOutput) ContainerStatuses() ContainerStatusArrayOutput { }).(ContainerStatusArrayOutput) } -// Status for any ephemeral containers that have run in this pod. +// Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status func (o PodStatusPtrOutput) EphemeralContainerStatuses() ContainerStatusArrayOutput { return o.ApplyT(func(v *PodStatus) []ContainerStatus { if v == nil { @@ -49548,7 +49778,7 @@ func (o PodStatusPtrOutput) HostIPs() HostIPArrayOutput { }).(HostIPArrayOutput) } -// The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status +// Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status func (o PodStatusPtrOutput) InitContainerStatuses() ContainerStatusArrayOutput { return o.ApplyT(func(v *PodStatus) []ContainerStatus { if v == nil { @@ -49666,15 +49896,15 @@ func (o PodStatusPtrOutput) StartTime() pulumi.StringPtrOutput { type PodStatusPatch struct { // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Conditions []PodConditionPatch `pulumi:"conditions"` - // The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + // Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status ContainerStatuses []ContainerStatusPatch `pulumi:"containerStatuses"` - // Status for any ephemeral containers that have run in this pod. + // Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status EphemeralContainerStatuses []ContainerStatusPatch `pulumi:"ephemeralContainerStatuses"` // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod HostIP *string `pulumi:"hostIP"` // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. HostIPs []HostIPPatch `pulumi:"hostIPs"` - // The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + // Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status InitContainerStatuses []ContainerStatusPatch `pulumi:"initContainerStatuses"` // A human readable message indicating details about why the pod is in this condition. Message *string `pulumi:"message"` @@ -49717,15 +49947,15 @@ type PodStatusPatchInput interface { type PodStatusPatchArgs struct { // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Conditions PodConditionPatchArrayInput `pulumi:"conditions"` - // The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + // Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status ContainerStatuses ContainerStatusPatchArrayInput `pulumi:"containerStatuses"` - // Status for any ephemeral containers that have run in this pod. + // Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status EphemeralContainerStatuses ContainerStatusPatchArrayInput `pulumi:"ephemeralContainerStatuses"` // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod HostIP pulumi.StringPtrInput `pulumi:"hostIP"` // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. HostIPs HostIPPatchArrayInput `pulumi:"hostIPs"` - // The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + // Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status InitContainerStatuses ContainerStatusPatchArrayInput `pulumi:"initContainerStatuses"` // A human readable message indicating details about why the pod is in this condition. Message pulumi.StringPtrInput `pulumi:"message"` @@ -49836,12 +50066,12 @@ func (o PodStatusPatchOutput) Conditions() PodConditionPatchArrayOutput { return o.ApplyT(func(v PodStatusPatch) []PodConditionPatch { return v.Conditions }).(PodConditionPatchArrayOutput) } -// The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status +// Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status func (o PodStatusPatchOutput) ContainerStatuses() ContainerStatusPatchArrayOutput { return o.ApplyT(func(v PodStatusPatch) []ContainerStatusPatch { return v.ContainerStatuses }).(ContainerStatusPatchArrayOutput) } -// Status for any ephemeral containers that have run in this pod. +// Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status func (o PodStatusPatchOutput) EphemeralContainerStatuses() ContainerStatusPatchArrayOutput { return o.ApplyT(func(v PodStatusPatch) []ContainerStatusPatch { return v.EphemeralContainerStatuses }).(ContainerStatusPatchArrayOutput) } @@ -49856,7 +50086,7 @@ func (o PodStatusPatchOutput) HostIPs() HostIPPatchArrayOutput { return o.ApplyT(func(v PodStatusPatch) []HostIPPatch { return v.HostIPs }).(HostIPPatchArrayOutput) } -// The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status +// Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status func (o PodStatusPatchOutput) InitContainerStatuses() ContainerStatusPatchArrayOutput { return o.ApplyT(func(v PodStatusPatch) []ContainerStatusPatch { return v.InitContainerStatuses }).(ContainerStatusPatchArrayOutput) } @@ -49949,7 +50179,7 @@ func (o PodStatusPatchPtrOutput) Conditions() PodConditionPatchArrayOutput { }).(PodConditionPatchArrayOutput) } -// The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status +// Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status func (o PodStatusPatchPtrOutput) ContainerStatuses() ContainerStatusPatchArrayOutput { return o.ApplyT(func(v *PodStatusPatch) []ContainerStatusPatch { if v == nil { @@ -49959,7 +50189,7 @@ func (o PodStatusPatchPtrOutput) ContainerStatuses() ContainerStatusPatchArrayOu }).(ContainerStatusPatchArrayOutput) } -// Status for any ephemeral containers that have run in this pod. +// Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status func (o PodStatusPatchPtrOutput) EphemeralContainerStatuses() ContainerStatusPatchArrayOutput { return o.ApplyT(func(v *PodStatusPatch) []ContainerStatusPatch { if v == nil { @@ -49989,7 +50219,7 @@ func (o PodStatusPatchPtrOutput) HostIPs() HostIPPatchArrayOutput { }).(HostIPPatchArrayOutput) } -// The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status +// Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status func (o PodStatusPatchPtrOutput) InitContainerStatuses() ContainerStatusPatchArrayOutput { return o.ApplyT(func(v *PodStatusPatch) []ContainerStatusPatch { if v == nil { @@ -50712,6 +50942,7 @@ func (o PodTemplateSpecPatchPtrOutput) Spec() PodSpecPatchPtrOutput { }).(PodSpecPatchPtrOutput) } +// PortStatus represents the error condition of a service port type PortStatus struct { // Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use // CamelCase names @@ -50735,6 +50966,7 @@ type PortStatusInput interface { ToPortStatusOutputWithContext(context.Context) PortStatusOutput } +// PortStatus represents the error condition of a service port type PortStatusArgs struct { // Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use // CamelCase names @@ -50784,6 +51016,7 @@ func (i PortStatusArray) ToPortStatusArrayOutputWithContext(ctx context.Context) return pulumi.ToOutputWithContext(ctx, i).(PortStatusArrayOutput) } +// PortStatus represents the error condition of a service port type PortStatusOutput struct{ *pulumi.OutputState } func (PortStatusOutput) ElementType() reflect.Type { @@ -50837,6 +51070,7 @@ func (o PortStatusArrayOutput) Index(i pulumi.IntInput) PortStatusOutput { }).(PortStatusOutput) } +// PortStatus represents the error condition of a service port type PortStatusPatch struct { // Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use // CamelCase names @@ -50860,6 +51094,7 @@ type PortStatusPatchInput interface { ToPortStatusPatchOutputWithContext(context.Context) PortStatusPatchOutput } +// PortStatus represents the error condition of a service port type PortStatusPatchArgs struct { // Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use // CamelCase names @@ -50909,6 +51144,7 @@ func (i PortStatusPatchArray) ToPortStatusPatchArrayOutputWithContext(ctx contex return pulumi.ToOutputWithContext(ctx, i).(PortStatusPatchArrayOutput) } +// PortStatus represents the error condition of a service port type PortStatusPatchOutput struct{ *pulumi.OutputState } func (PortStatusPatchOutput) ElementType() reflect.Type { @@ -51538,13 +51774,13 @@ func (o PreferredSchedulingTermPatchArrayOutput) Index(i pulumi.IntInput) Prefer // Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. type Probe struct { - // Exec specifies the action to take. + // Exec specifies a command to execute in the container. Exec *ExecAction `pulumi:"exec"` // Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. FailureThreshold *int `pulumi:"failureThreshold"` - // GRPC specifies an action involving a GRPC port. + // GRPC specifies a GRPC HealthCheckRequest. Grpc *GRPCAction `pulumi:"grpc"` - // HTTPGet specifies the http request to perform. + // HTTPGet specifies an HTTP GET request to perform. HttpGet *HTTPGetAction `pulumi:"httpGet"` // Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes InitialDelaySeconds *int `pulumi:"initialDelaySeconds"` @@ -51552,7 +51788,7 @@ type Probe struct { PeriodSeconds *int `pulumi:"periodSeconds"` // Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. SuccessThreshold *int `pulumi:"successThreshold"` - // TCPSocket specifies an action involving a TCP port. + // TCPSocket specifies a connection to a TCP port. TcpSocket *TCPSocketAction `pulumi:"tcpSocket"` // Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. TerminationGracePeriodSeconds *int `pulumi:"terminationGracePeriodSeconds"` @@ -51573,13 +51809,13 @@ type ProbeInput interface { // Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. type ProbeArgs struct { - // Exec specifies the action to take. + // Exec specifies a command to execute in the container. Exec ExecActionPtrInput `pulumi:"exec"` // Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. FailureThreshold pulumi.IntPtrInput `pulumi:"failureThreshold"` - // GRPC specifies an action involving a GRPC port. + // GRPC specifies a GRPC HealthCheckRequest. Grpc GRPCActionPtrInput `pulumi:"grpc"` - // HTTPGet specifies the http request to perform. + // HTTPGet specifies an HTTP GET request to perform. HttpGet HTTPGetActionPtrInput `pulumi:"httpGet"` // Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes InitialDelaySeconds pulumi.IntPtrInput `pulumi:"initialDelaySeconds"` @@ -51587,7 +51823,7 @@ type ProbeArgs struct { PeriodSeconds pulumi.IntPtrInput `pulumi:"periodSeconds"` // Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. SuccessThreshold pulumi.IntPtrInput `pulumi:"successThreshold"` - // TCPSocket specifies an action involving a TCP port. + // TCPSocket specifies a connection to a TCP port. TcpSocket TCPSocketActionPtrInput `pulumi:"tcpSocket"` // Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. TerminationGracePeriodSeconds pulumi.IntPtrInput `pulumi:"terminationGracePeriodSeconds"` @@ -51673,7 +51909,7 @@ func (o ProbeOutput) ToProbePtrOutputWithContext(ctx context.Context) ProbePtrOu }).(ProbePtrOutput) } -// Exec specifies the action to take. +// Exec specifies a command to execute in the container. func (o ProbeOutput) Exec() ExecActionPtrOutput { return o.ApplyT(func(v Probe) *ExecAction { return v.Exec }).(ExecActionPtrOutput) } @@ -51683,12 +51919,12 @@ func (o ProbeOutput) FailureThreshold() pulumi.IntPtrOutput { return o.ApplyT(func(v Probe) *int { return v.FailureThreshold }).(pulumi.IntPtrOutput) } -// GRPC specifies an action involving a GRPC port. +// GRPC specifies a GRPC HealthCheckRequest. func (o ProbeOutput) Grpc() GRPCActionPtrOutput { return o.ApplyT(func(v Probe) *GRPCAction { return v.Grpc }).(GRPCActionPtrOutput) } -// HTTPGet specifies the http request to perform. +// HTTPGet specifies an HTTP GET request to perform. func (o ProbeOutput) HttpGet() HTTPGetActionPtrOutput { return o.ApplyT(func(v Probe) *HTTPGetAction { return v.HttpGet }).(HTTPGetActionPtrOutput) } @@ -51708,7 +51944,7 @@ func (o ProbeOutput) SuccessThreshold() pulumi.IntPtrOutput { return o.ApplyT(func(v Probe) *int { return v.SuccessThreshold }).(pulumi.IntPtrOutput) } -// TCPSocket specifies an action involving a TCP port. +// TCPSocket specifies a connection to a TCP port. func (o ProbeOutput) TcpSocket() TCPSocketActionPtrOutput { return o.ApplyT(func(v Probe) *TCPSocketAction { return v.TcpSocket }).(TCPSocketActionPtrOutput) } @@ -51747,7 +51983,7 @@ func (o ProbePtrOutput) Elem() ProbeOutput { }).(ProbeOutput) } -// Exec specifies the action to take. +// Exec specifies a command to execute in the container. func (o ProbePtrOutput) Exec() ExecActionPtrOutput { return o.ApplyT(func(v *Probe) *ExecAction { if v == nil { @@ -51767,7 +52003,7 @@ func (o ProbePtrOutput) FailureThreshold() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// GRPC specifies an action involving a GRPC port. +// GRPC specifies a GRPC HealthCheckRequest. func (o ProbePtrOutput) Grpc() GRPCActionPtrOutput { return o.ApplyT(func(v *Probe) *GRPCAction { if v == nil { @@ -51777,7 +52013,7 @@ func (o ProbePtrOutput) Grpc() GRPCActionPtrOutput { }).(GRPCActionPtrOutput) } -// HTTPGet specifies the http request to perform. +// HTTPGet specifies an HTTP GET request to perform. func (o ProbePtrOutput) HttpGet() HTTPGetActionPtrOutput { return o.ApplyT(func(v *Probe) *HTTPGetAction { if v == nil { @@ -51817,7 +52053,7 @@ func (o ProbePtrOutput) SuccessThreshold() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// TCPSocket specifies an action involving a TCP port. +// TCPSocket specifies a connection to a TCP port. func (o ProbePtrOutput) TcpSocket() TCPSocketActionPtrOutput { return o.ApplyT(func(v *Probe) *TCPSocketAction { if v == nil { @@ -51849,13 +52085,13 @@ func (o ProbePtrOutput) TimeoutSeconds() pulumi.IntPtrOutput { // Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. type ProbePatch struct { - // Exec specifies the action to take. + // Exec specifies a command to execute in the container. Exec *ExecActionPatch `pulumi:"exec"` // Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. FailureThreshold *int `pulumi:"failureThreshold"` - // GRPC specifies an action involving a GRPC port. + // GRPC specifies a GRPC HealthCheckRequest. Grpc *GRPCActionPatch `pulumi:"grpc"` - // HTTPGet specifies the http request to perform. + // HTTPGet specifies an HTTP GET request to perform. HttpGet *HTTPGetActionPatch `pulumi:"httpGet"` // Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes InitialDelaySeconds *int `pulumi:"initialDelaySeconds"` @@ -51863,7 +52099,7 @@ type ProbePatch struct { PeriodSeconds *int `pulumi:"periodSeconds"` // Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. SuccessThreshold *int `pulumi:"successThreshold"` - // TCPSocket specifies an action involving a TCP port. + // TCPSocket specifies a connection to a TCP port. TcpSocket *TCPSocketActionPatch `pulumi:"tcpSocket"` // Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. TerminationGracePeriodSeconds *int `pulumi:"terminationGracePeriodSeconds"` @@ -51884,13 +52120,13 @@ type ProbePatchInput interface { // Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. type ProbePatchArgs struct { - // Exec specifies the action to take. + // Exec specifies a command to execute in the container. Exec ExecActionPatchPtrInput `pulumi:"exec"` // Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. FailureThreshold pulumi.IntPtrInput `pulumi:"failureThreshold"` - // GRPC specifies an action involving a GRPC port. + // GRPC specifies a GRPC HealthCheckRequest. Grpc GRPCActionPatchPtrInput `pulumi:"grpc"` - // HTTPGet specifies the http request to perform. + // HTTPGet specifies an HTTP GET request to perform. HttpGet HTTPGetActionPatchPtrInput `pulumi:"httpGet"` // Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes InitialDelaySeconds pulumi.IntPtrInput `pulumi:"initialDelaySeconds"` @@ -51898,7 +52134,7 @@ type ProbePatchArgs struct { PeriodSeconds pulumi.IntPtrInput `pulumi:"periodSeconds"` // Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. SuccessThreshold pulumi.IntPtrInput `pulumi:"successThreshold"` - // TCPSocket specifies an action involving a TCP port. + // TCPSocket specifies a connection to a TCP port. TcpSocket TCPSocketActionPatchPtrInput `pulumi:"tcpSocket"` // Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. TerminationGracePeriodSeconds pulumi.IntPtrInput `pulumi:"terminationGracePeriodSeconds"` @@ -51984,7 +52220,7 @@ func (o ProbePatchOutput) ToProbePatchPtrOutputWithContext(ctx context.Context) }).(ProbePatchPtrOutput) } -// Exec specifies the action to take. +// Exec specifies a command to execute in the container. func (o ProbePatchOutput) Exec() ExecActionPatchPtrOutput { return o.ApplyT(func(v ProbePatch) *ExecActionPatch { return v.Exec }).(ExecActionPatchPtrOutput) } @@ -51994,12 +52230,12 @@ func (o ProbePatchOutput) FailureThreshold() pulumi.IntPtrOutput { return o.ApplyT(func(v ProbePatch) *int { return v.FailureThreshold }).(pulumi.IntPtrOutput) } -// GRPC specifies an action involving a GRPC port. +// GRPC specifies a GRPC HealthCheckRequest. func (o ProbePatchOutput) Grpc() GRPCActionPatchPtrOutput { return o.ApplyT(func(v ProbePatch) *GRPCActionPatch { return v.Grpc }).(GRPCActionPatchPtrOutput) } -// HTTPGet specifies the http request to perform. +// HTTPGet specifies an HTTP GET request to perform. func (o ProbePatchOutput) HttpGet() HTTPGetActionPatchPtrOutput { return o.ApplyT(func(v ProbePatch) *HTTPGetActionPatch { return v.HttpGet }).(HTTPGetActionPatchPtrOutput) } @@ -52019,7 +52255,7 @@ func (o ProbePatchOutput) SuccessThreshold() pulumi.IntPtrOutput { return o.ApplyT(func(v ProbePatch) *int { return v.SuccessThreshold }).(pulumi.IntPtrOutput) } -// TCPSocket specifies an action involving a TCP port. +// TCPSocket specifies a connection to a TCP port. func (o ProbePatchOutput) TcpSocket() TCPSocketActionPatchPtrOutput { return o.ApplyT(func(v ProbePatch) *TCPSocketActionPatch { return v.TcpSocket }).(TCPSocketActionPatchPtrOutput) } @@ -52058,7 +52294,7 @@ func (o ProbePatchPtrOutput) Elem() ProbePatchOutput { }).(ProbePatchOutput) } -// Exec specifies the action to take. +// Exec specifies a command to execute in the container. func (o ProbePatchPtrOutput) Exec() ExecActionPatchPtrOutput { return o.ApplyT(func(v *ProbePatch) *ExecActionPatch { if v == nil { @@ -52078,7 +52314,7 @@ func (o ProbePatchPtrOutput) FailureThreshold() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// GRPC specifies an action involving a GRPC port. +// GRPC specifies a GRPC HealthCheckRequest. func (o ProbePatchPtrOutput) Grpc() GRPCActionPatchPtrOutput { return o.ApplyT(func(v *ProbePatch) *GRPCActionPatch { if v == nil { @@ -52088,7 +52324,7 @@ func (o ProbePatchPtrOutput) Grpc() GRPCActionPatchPtrOutput { }).(GRPCActionPatchPtrOutput) } -// HTTPGet specifies the http request to perform. +// HTTPGet specifies an HTTP GET request to perform. func (o ProbePatchPtrOutput) HttpGet() HTTPGetActionPatchPtrOutput { return o.ApplyT(func(v *ProbePatch) *HTTPGetActionPatch { if v == nil { @@ -52128,7 +52364,7 @@ func (o ProbePatchPtrOutput) SuccessThreshold() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// TCPSocket specifies an action involving a TCP port. +// TCPSocket specifies a connection to a TCP port. func (o ProbePatchPtrOutput) TcpSocket() TCPSocketActionPatchPtrOutput { return o.ApplyT(func(v *ProbePatch) *TCPSocketActionPatch { if v == nil { @@ -56057,7 +56293,7 @@ func (o ResourceFieldSelectorPatchPtrOutput) Resource() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. +// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. type ResourceHealth struct { // Health of the resource. can be one of: // - Healthy: operates as normal @@ -56084,7 +56320,7 @@ type ResourceHealthInput interface { ToResourceHealthOutputWithContext(context.Context) ResourceHealthOutput } -// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. +// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. type ResourceHealthArgs struct { // Health of the resource. can be one of: // - Healthy: operates as normal @@ -56137,7 +56373,7 @@ func (i ResourceHealthArray) ToResourceHealthArrayOutputWithContext(ctx context. return pulumi.ToOutputWithContext(ctx, i).(ResourceHealthArrayOutput) } -// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. +// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. type ResourceHealthOutput struct{ *pulumi.OutputState } func (ResourceHealthOutput) ElementType() reflect.Type { @@ -56190,7 +56426,7 @@ func (o ResourceHealthArrayOutput) Index(i pulumi.IntInput) ResourceHealthOutput }).(ResourceHealthOutput) } -// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. +// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. type ResourceHealthPatch struct { // Health of the resource. can be one of: // - Healthy: operates as normal @@ -56217,7 +56453,7 @@ type ResourceHealthPatchInput interface { ToResourceHealthPatchOutputWithContext(context.Context) ResourceHealthPatchOutput } -// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. +// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. type ResourceHealthPatchArgs struct { // Health of the resource. can be one of: // - Healthy: operates as normal @@ -56270,7 +56506,7 @@ func (i ResourceHealthPatchArray) ToResourceHealthPatchArrayOutputWithContext(ct return pulumi.ToOutputWithContext(ctx, i).(ResourceHealthPatchArrayOutput) } -// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. +// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. type ResourceHealthPatchOutput struct{ *pulumi.OutputState } func (ResourceHealthPatchOutput) ElementType() reflect.Type { @@ -57694,10 +57930,11 @@ func (o ResourceRequirementsPatchPtrOutput) Requests() pulumi.StringMapOutput { }).(pulumi.StringMapOutput) } +// ResourceStatus represents the status of a single resource allocated to a Pod. type ResourceStatus struct { - // Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + // Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. Name string `pulumi:"name"` - // List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + // List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. Resources []ResourceHealth `pulumi:"resources"` } @@ -57712,10 +57949,11 @@ type ResourceStatusInput interface { ToResourceStatusOutputWithContext(context.Context) ResourceStatusOutput } +// ResourceStatus represents the status of a single resource allocated to a Pod. type ResourceStatusArgs struct { - // Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + // Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. Name pulumi.StringInput `pulumi:"name"` - // List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + // List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. Resources ResourceHealthArrayInput `pulumi:"resources"` } @@ -57756,6 +57994,7 @@ func (i ResourceStatusArray) ToResourceStatusArrayOutputWithContext(ctx context. return pulumi.ToOutputWithContext(ctx, i).(ResourceStatusArrayOutput) } +// ResourceStatus represents the status of a single resource allocated to a Pod. type ResourceStatusOutput struct{ *pulumi.OutputState } func (ResourceStatusOutput) ElementType() reflect.Type { @@ -57770,12 +58009,12 @@ func (o ResourceStatusOutput) ToResourceStatusOutputWithContext(ctx context.Cont return o } -// Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. +// Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. func (o ResourceStatusOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v ResourceStatus) string { return v.Name }).(pulumi.StringOutput) } -// List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. +// List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. func (o ResourceStatusOutput) Resources() ResourceHealthArrayOutput { return o.ApplyT(func(v ResourceStatus) []ResourceHealth { return v.Resources }).(ResourceHealthArrayOutput) } @@ -57800,10 +58039,11 @@ func (o ResourceStatusArrayOutput) Index(i pulumi.IntInput) ResourceStatusOutput }).(ResourceStatusOutput) } +// ResourceStatus represents the status of a single resource allocated to a Pod. type ResourceStatusPatch struct { - // Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + // Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. Name *string `pulumi:"name"` - // List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + // List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. Resources []ResourceHealthPatch `pulumi:"resources"` } @@ -57818,10 +58058,11 @@ type ResourceStatusPatchInput interface { ToResourceStatusPatchOutputWithContext(context.Context) ResourceStatusPatchOutput } +// ResourceStatus represents the status of a single resource allocated to a Pod. type ResourceStatusPatchArgs struct { - // Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + // Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. Name pulumi.StringPtrInput `pulumi:"name"` - // List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + // List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. Resources ResourceHealthPatchArrayInput `pulumi:"resources"` } @@ -57862,6 +58103,7 @@ func (i ResourceStatusPatchArray) ToResourceStatusPatchArrayOutputWithContext(ct return pulumi.ToOutputWithContext(ctx, i).(ResourceStatusPatchArrayOutput) } +// ResourceStatus represents the status of a single resource allocated to a Pod. type ResourceStatusPatchOutput struct{ *pulumi.OutputState } func (ResourceStatusPatchOutput) ElementType() reflect.Type { @@ -57876,12 +58118,12 @@ func (o ResourceStatusPatchOutput) ToResourceStatusPatchOutputWithContext(ctx co return o } -// Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. +// Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. func (o ResourceStatusPatchOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourceStatusPatch) *string { return v.Name }).(pulumi.StringPtrOutput) } -// List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. +// List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. func (o ResourceStatusPatchOutput) Resources() ResourceHealthPatchArrayOutput { return o.ApplyT(func(v ResourceStatusPatch) []ResourceHealthPatch { return v.Resources }).(ResourceHealthPatchArrayOutput) } @@ -63474,7 +63716,7 @@ type ServiceAccountType struct { Kind *string `pulumi:"kind"` // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata *metav1.ObjectMeta `pulumi:"metadata"` - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets []ObjectReference `pulumi:"secrets"` } @@ -63501,7 +63743,7 @@ type ServiceAccountTypeArgs struct { Kind pulumi.StringPtrInput `pulumi:"kind"` // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets ObjectReferenceArrayInput `pulumi:"secrets"` } @@ -63582,7 +63824,7 @@ func (o ServiceAccountTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { return o.ApplyT(func(v ServiceAccountType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) } -// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret +// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret func (o ServiceAccountTypeOutput) Secrets() ObjectReferenceArrayOutput { return o.ApplyT(func(v ServiceAccountType) []ObjectReference { return v.Secrets }).(ObjectReferenceArrayOutput) } @@ -63701,7 +63943,7 @@ type ServiceAccountPatchType struct { Kind *string `pulumi:"kind"` // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets []ObjectReferencePatch `pulumi:"secrets"` } @@ -63728,7 +63970,7 @@ type ServiceAccountPatchTypeArgs struct { Kind pulumi.StringPtrInput `pulumi:"kind"` // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets ObjectReferencePatchArrayInput `pulumi:"secrets"` } @@ -63784,7 +64026,7 @@ func (o ServiceAccountPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutpu return o.ApplyT(func(v ServiceAccountPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) } -// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret +// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret func (o ServiceAccountPatchTypeOutput) Secrets() ObjectReferencePatchArrayOutput { return o.ApplyT(func(v ServiceAccountPatchType) []ObjectReferencePatch { return v.Secrets }).(ObjectReferencePatchArrayOutput) } @@ -64759,7 +65001,7 @@ type ServiceSpec struct { SessionAffinityConfig *SessionAffinityConfig `pulumi:"sessionAffinityConfig"` // topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value "*" may be used to mean "any topology". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. TopologyKeys []string `pulumi:"topologyKeys"` - // TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + // TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. TrafficDistribution *string `pulumi:"trafficDistribution"` // type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types Type *string `pulumi:"type"` @@ -64822,7 +65064,7 @@ type ServiceSpecArgs struct { SessionAffinityConfig SessionAffinityConfigPtrInput `pulumi:"sessionAffinityConfig"` // topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value "*" may be used to mean "any topology". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. TopologyKeys pulumi.StringArrayInput `pulumi:"topologyKeys"` - // TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + // TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. TrafficDistribution pulumi.StringPtrInput `pulumi:"trafficDistribution"` // type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types Type pulumi.StringPtrInput `pulumi:"type"` @@ -65010,7 +65252,7 @@ func (o ServiceSpecOutput) TopologyKeys() pulumi.StringArrayOutput { return o.ApplyT(func(v ServiceSpec) []string { return v.TopologyKeys }).(pulumi.StringArrayOutput) } -// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. +// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. func (o ServiceSpecOutput) TrafficDistribution() pulumi.StringPtrOutput { return o.ApplyT(func(v ServiceSpec) *string { return v.TrafficDistribution }).(pulumi.StringPtrOutput) } @@ -65248,7 +65490,7 @@ func (o ServiceSpecPtrOutput) TopologyKeys() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } -// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. +// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. func (o ServiceSpecPtrOutput) TrafficDistribution() pulumi.StringPtrOutput { return o.ApplyT(func(v *ServiceSpec) *string { if v == nil { @@ -65314,7 +65556,7 @@ type ServiceSpecPatch struct { SessionAffinityConfig *SessionAffinityConfigPatch `pulumi:"sessionAffinityConfig"` // topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value "*" may be used to mean "any topology". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. TopologyKeys []string `pulumi:"topologyKeys"` - // TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + // TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. TrafficDistribution *string `pulumi:"trafficDistribution"` // type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types Type *string `pulumi:"type"` @@ -65377,7 +65619,7 @@ type ServiceSpecPatchArgs struct { SessionAffinityConfig SessionAffinityConfigPatchPtrInput `pulumi:"sessionAffinityConfig"` // topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value "*" may be used to mean "any topology". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. TopologyKeys pulumi.StringArrayInput `pulumi:"topologyKeys"` - // TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + // TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. TrafficDistribution pulumi.StringPtrInput `pulumi:"trafficDistribution"` // type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types Type pulumi.StringPtrInput `pulumi:"type"` @@ -65565,7 +65807,7 @@ func (o ServiceSpecPatchOutput) TopologyKeys() pulumi.StringArrayOutput { return o.ApplyT(func(v ServiceSpecPatch) []string { return v.TopologyKeys }).(pulumi.StringArrayOutput) } -// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. +// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. func (o ServiceSpecPatchOutput) TrafficDistribution() pulumi.StringPtrOutput { return o.ApplyT(func(v ServiceSpecPatch) *string { return v.TrafficDistribution }).(pulumi.StringPtrOutput) } @@ -65803,7 +66045,7 @@ func (o ServiceSpecPatchPtrOutput) TopologyKeys() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } -// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. +// TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. func (o ServiceSpecPatchPtrOutput) TrafficDistribution() pulumi.StringPtrOutput { return o.ApplyT(func(v *ServiceSpecPatch) *string { if v == nil { @@ -69799,6 +70041,7 @@ func (o TypedLocalObjectReferencePatchPtrOutput) Name() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// TypedObjectReference contains enough information to let you locate the typed referenced object type TypedObjectReference struct { // APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. ApiGroup *string `pulumi:"apiGroup"` @@ -69821,6 +70064,7 @@ type TypedObjectReferenceInput interface { ToTypedObjectReferenceOutputWithContext(context.Context) TypedObjectReferenceOutput } +// TypedObjectReference contains enough information to let you locate the typed referenced object type TypedObjectReferenceArgs struct { // APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. ApiGroup pulumi.StringPtrInput `pulumi:"apiGroup"` @@ -69885,6 +70129,7 @@ func (i *typedObjectReferencePtrType) ToTypedObjectReferencePtrOutputWithContext return pulumi.ToOutputWithContext(ctx, i).(TypedObjectReferencePtrOutput) } +// TypedObjectReference contains enough information to let you locate the typed referenced object type TypedObjectReferenceOutput struct{ *pulumi.OutputState } func (TypedObjectReferenceOutput) ElementType() reflect.Type { @@ -69993,6 +70238,7 @@ func (o TypedObjectReferencePtrOutput) Namespace() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// TypedObjectReference contains enough information to let you locate the typed referenced object type TypedObjectReferencePatch struct { // APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. ApiGroup *string `pulumi:"apiGroup"` @@ -70015,6 +70261,7 @@ type TypedObjectReferencePatchInput interface { ToTypedObjectReferencePatchOutputWithContext(context.Context) TypedObjectReferencePatchOutput } +// TypedObjectReference contains enough information to let you locate the typed referenced object type TypedObjectReferencePatchArgs struct { // APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. ApiGroup pulumi.StringPtrInput `pulumi:"apiGroup"` @@ -70079,6 +70326,7 @@ func (i *typedObjectReferencePatchPtrType) ToTypedObjectReferencePatchPtrOutputW return pulumi.ToOutputWithContext(ctx, i).(TypedObjectReferencePatchPtrOutput) } +// TypedObjectReference contains enough information to let you locate the typed referenced object type TypedObjectReferencePatchOutput struct{ *pulumi.OutputState } func (TypedObjectReferencePatchOutput) ElementType() reflect.Type { @@ -70189,19 +70437,19 @@ func (o TypedObjectReferencePatchPtrOutput) Namespace() pulumi.StringPtrOutput { // Volume represents a named volume in a pod that may be accessed by any container in the pod. type Volume struct { - // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore AwsElasticBlockStore *AWSElasticBlockStoreVolumeSource `pulumi:"awsElasticBlockStore"` - // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. AzureDisk *AzureDiskVolumeSource `pulumi:"azureDisk"` - // azureFile represents an Azure File Service mount on the host and bind mount to the pod. + // azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. AzureFile *AzureFileVolumeSource `pulumi:"azureFile"` - // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. Cephfs *CephFSVolumeSource `pulumi:"cephfs"` - // cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + // cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md Cinder *CinderVolumeSource `pulumi:"cinder"` // configMap represents a configMap that should populate this volume ConfigMap *ConfigMapVolumeSource `pulumi:"configMap"` - // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Csi *CSIVolumeSource `pulumi:"csi"` // downwardAPI represents downward API about the pod that should populate this volume DownwardAPI *DownwardAPIVolumeSource `pulumi:"downwardAPI"` @@ -70224,15 +70472,15 @@ type Volume struct { Ephemeral *EphemeralVolumeSource `pulumi:"ephemeral"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. Fc *FCVolumeSource `pulumi:"fc"` - // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. FlexVolume *FlexVolumeSource `pulumi:"flexVolume"` - // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. Flocker *FlockerVolumeSource `pulumi:"flocker"` - // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk GcePersistentDisk *GCEPersistentDiskVolumeSource `pulumi:"gcePersistentDisk"` - // gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + // gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. GitRepo *GitRepoVolumeSource `pulumi:"gitRepo"` - // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md Glusterfs *GlusterfsVolumeSource `pulumi:"glusterfs"` // hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath *HostPathVolumeSource `pulumi:"hostPath"` @@ -70250,23 +70498,23 @@ type Volume struct { Nfs *NFSVolumeSource `pulumi:"nfs"` // persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims PersistentVolumeClaim *PersistentVolumeClaimVolumeSource `pulumi:"persistentVolumeClaim"` - // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. PhotonPersistentDisk *PhotonPersistentDiskVolumeSource `pulumi:"photonPersistentDisk"` - // portworxVolume represents a portworx volume attached and mounted on kubelets host machine + // portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. PortworxVolume *PortworxVolumeSource `pulumi:"portworxVolume"` // projected items for all in one resources secrets, configmaps, and downward API Projected *ProjectedVolumeSource `pulumi:"projected"` - // quobyte represents a Quobyte mount on the host that shares a pod's lifetime + // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte *QuobyteVolumeSource `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md Rbd *RBDVolumeSource `pulumi:"rbd"` - // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO *ScaleIOVolumeSource `pulumi:"scaleIO"` // secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret Secret *SecretVolumeSource `pulumi:"secret"` - // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. Storageos *StorageOSVolumeSource `pulumi:"storageos"` - // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. VsphereVolume *VsphereVirtualDiskVolumeSource `pulumi:"vsphereVolume"` } @@ -70283,19 +70531,19 @@ type VolumeInput interface { // Volume represents a named volume in a pod that may be accessed by any container in the pod. type VolumeArgs struct { - // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore AwsElasticBlockStore AWSElasticBlockStoreVolumeSourcePtrInput `pulumi:"awsElasticBlockStore"` - // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. AzureDisk AzureDiskVolumeSourcePtrInput `pulumi:"azureDisk"` - // azureFile represents an Azure File Service mount on the host and bind mount to the pod. + // azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. AzureFile AzureFileVolumeSourcePtrInput `pulumi:"azureFile"` - // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. Cephfs CephFSVolumeSourcePtrInput `pulumi:"cephfs"` - // cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + // cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md Cinder CinderVolumeSourcePtrInput `pulumi:"cinder"` // configMap represents a configMap that should populate this volume ConfigMap ConfigMapVolumeSourcePtrInput `pulumi:"configMap"` - // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Csi CSIVolumeSourcePtrInput `pulumi:"csi"` // downwardAPI represents downward API about the pod that should populate this volume DownwardAPI DownwardAPIVolumeSourcePtrInput `pulumi:"downwardAPI"` @@ -70318,15 +70566,15 @@ type VolumeArgs struct { Ephemeral EphemeralVolumeSourcePtrInput `pulumi:"ephemeral"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. Fc FCVolumeSourcePtrInput `pulumi:"fc"` - // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. FlexVolume FlexVolumeSourcePtrInput `pulumi:"flexVolume"` - // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. Flocker FlockerVolumeSourcePtrInput `pulumi:"flocker"` - // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk GcePersistentDisk GCEPersistentDiskVolumeSourcePtrInput `pulumi:"gcePersistentDisk"` - // gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + // gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. GitRepo GitRepoVolumeSourcePtrInput `pulumi:"gitRepo"` - // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md Glusterfs GlusterfsVolumeSourcePtrInput `pulumi:"glusterfs"` // hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath HostPathVolumeSourcePtrInput `pulumi:"hostPath"` @@ -70344,23 +70592,23 @@ type VolumeArgs struct { Nfs NFSVolumeSourcePtrInput `pulumi:"nfs"` // persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims PersistentVolumeClaim PersistentVolumeClaimVolumeSourcePtrInput `pulumi:"persistentVolumeClaim"` - // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. PhotonPersistentDisk PhotonPersistentDiskVolumeSourcePtrInput `pulumi:"photonPersistentDisk"` - // portworxVolume represents a portworx volume attached and mounted on kubelets host machine + // portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. PortworxVolume PortworxVolumeSourcePtrInput `pulumi:"portworxVolume"` // projected items for all in one resources secrets, configmaps, and downward API Projected ProjectedVolumeSourcePtrInput `pulumi:"projected"` - // quobyte represents a Quobyte mount on the host that shares a pod's lifetime + // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte QuobyteVolumeSourcePtrInput `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md Rbd RBDVolumeSourcePtrInput `pulumi:"rbd"` - // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO ScaleIOVolumeSourcePtrInput `pulumi:"scaleIO"` // secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret Secret SecretVolumeSourcePtrInput `pulumi:"secret"` - // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. Storageos StorageOSVolumeSourcePtrInput `pulumi:"storageos"` - // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. VsphereVolume VsphereVirtualDiskVolumeSourcePtrInput `pulumi:"vsphereVolume"` } @@ -70416,27 +70664,27 @@ func (o VolumeOutput) ToVolumeOutputWithContext(ctx context.Context) VolumeOutpu return o } -// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore func (o VolumeOutput) AwsElasticBlockStore() AWSElasticBlockStoreVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *AWSElasticBlockStoreVolumeSource { return v.AwsElasticBlockStore }).(AWSElasticBlockStoreVolumeSourcePtrOutput) } -// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. func (o VolumeOutput) AzureDisk() AzureDiskVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *AzureDiskVolumeSource { return v.AzureDisk }).(AzureDiskVolumeSourcePtrOutput) } -// azureFile represents an Azure File Service mount on the host and bind mount to the pod. +// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. func (o VolumeOutput) AzureFile() AzureFileVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *AzureFileVolumeSource { return v.AzureFile }).(AzureFileVolumeSourcePtrOutput) } -// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime +// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. func (o VolumeOutput) Cephfs() CephFSVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *CephFSVolumeSource { return v.Cephfs }).(CephFSVolumeSourcePtrOutput) } -// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md func (o VolumeOutput) Cinder() CinderVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *CinderVolumeSource { return v.Cinder }).(CinderVolumeSourcePtrOutput) } @@ -70446,7 +70694,7 @@ func (o VolumeOutput) ConfigMap() ConfigMapVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *ConfigMapVolumeSource { return v.ConfigMap }).(ConfigMapVolumeSourcePtrOutput) } -// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. func (o VolumeOutput) Csi() CSIVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *CSIVolumeSource { return v.Csi }).(CSIVolumeSourcePtrOutput) } @@ -70487,27 +70735,27 @@ func (o VolumeOutput) Fc() FCVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *FCVolumeSource { return v.Fc }).(FCVolumeSourcePtrOutput) } -// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. func (o VolumeOutput) FlexVolume() FlexVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *FlexVolumeSource { return v.FlexVolume }).(FlexVolumeSourcePtrOutput) } -// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. func (o VolumeOutput) Flocker() FlockerVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *FlockerVolumeSource { return v.Flocker }).(FlockerVolumeSourcePtrOutput) } -// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk func (o VolumeOutput) GcePersistentDisk() GCEPersistentDiskVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *GCEPersistentDiskVolumeSource { return v.GcePersistentDisk }).(GCEPersistentDiskVolumeSourcePtrOutput) } -// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +// gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. func (o VolumeOutput) GitRepo() GitRepoVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *GitRepoVolumeSource { return v.GitRepo }).(GitRepoVolumeSourcePtrOutput) } -// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md func (o VolumeOutput) Glusterfs() GlusterfsVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *GlusterfsVolumeSource { return v.Glusterfs }).(GlusterfsVolumeSourcePtrOutput) } @@ -70546,12 +70794,12 @@ func (o VolumeOutput) PersistentVolumeClaim() PersistentVolumeClaimVolumeSourceP return o.ApplyT(func(v Volume) *PersistentVolumeClaimVolumeSource { return v.PersistentVolumeClaim }).(PersistentVolumeClaimVolumeSourcePtrOutput) } -// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. func (o VolumeOutput) PhotonPersistentDisk() PhotonPersistentDiskVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *PhotonPersistentDiskVolumeSource { return v.PhotonPersistentDisk }).(PhotonPersistentDiskVolumeSourcePtrOutput) } -// portworxVolume represents a portworx volume attached and mounted on kubelets host machine +// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. func (o VolumeOutput) PortworxVolume() PortworxVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *PortworxVolumeSource { return v.PortworxVolume }).(PortworxVolumeSourcePtrOutput) } @@ -70561,17 +70809,17 @@ func (o VolumeOutput) Projected() ProjectedVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *ProjectedVolumeSource { return v.Projected }).(ProjectedVolumeSourcePtrOutput) } -// quobyte represents a Quobyte mount on the host that shares a pod's lifetime +// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. func (o VolumeOutput) Quobyte() QuobyteVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *QuobyteVolumeSource { return v.Quobyte }).(QuobyteVolumeSourcePtrOutput) } -// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md func (o VolumeOutput) Rbd() RBDVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *RBDVolumeSource { return v.Rbd }).(RBDVolumeSourcePtrOutput) } -// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. func (o VolumeOutput) ScaleIO() ScaleIOVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *ScaleIOVolumeSource { return v.ScaleIO }).(ScaleIOVolumeSourcePtrOutput) } @@ -70581,12 +70829,12 @@ func (o VolumeOutput) Secret() SecretVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *SecretVolumeSource { return v.Secret }).(SecretVolumeSourcePtrOutput) } -// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. func (o VolumeOutput) Storageos() StorageOSVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *StorageOSVolumeSource { return v.Storageos }).(StorageOSVolumeSourcePtrOutput) } -// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. func (o VolumeOutput) VsphereVolume() VsphereVirtualDiskVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *VsphereVirtualDiskVolumeSource { return v.VsphereVolume }).(VsphereVirtualDiskVolumeSourcePtrOutput) } @@ -71721,19 +71969,19 @@ func (o VolumeNodeAffinityPatchPtrOutput) Required() NodeSelectorPatchPtrOutput // Volume represents a named volume in a pod that may be accessed by any container in the pod. type VolumePatch struct { - // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore AwsElasticBlockStore *AWSElasticBlockStoreVolumeSourcePatch `pulumi:"awsElasticBlockStore"` - // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. AzureDisk *AzureDiskVolumeSourcePatch `pulumi:"azureDisk"` - // azureFile represents an Azure File Service mount on the host and bind mount to the pod. + // azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. AzureFile *AzureFileVolumeSourcePatch `pulumi:"azureFile"` - // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. Cephfs *CephFSVolumeSourcePatch `pulumi:"cephfs"` - // cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + // cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md Cinder *CinderVolumeSourcePatch `pulumi:"cinder"` // configMap represents a configMap that should populate this volume ConfigMap *ConfigMapVolumeSourcePatch `pulumi:"configMap"` - // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Csi *CSIVolumeSourcePatch `pulumi:"csi"` // downwardAPI represents downward API about the pod that should populate this volume DownwardAPI *DownwardAPIVolumeSourcePatch `pulumi:"downwardAPI"` @@ -71756,15 +72004,15 @@ type VolumePatch struct { Ephemeral *EphemeralVolumeSourcePatch `pulumi:"ephemeral"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. Fc *FCVolumeSourcePatch `pulumi:"fc"` - // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. FlexVolume *FlexVolumeSourcePatch `pulumi:"flexVolume"` - // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. Flocker *FlockerVolumeSourcePatch `pulumi:"flocker"` - // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk GcePersistentDisk *GCEPersistentDiskVolumeSourcePatch `pulumi:"gcePersistentDisk"` - // gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + // gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. GitRepo *GitRepoVolumeSourcePatch `pulumi:"gitRepo"` - // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md Glusterfs *GlusterfsVolumeSourcePatch `pulumi:"glusterfs"` // hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath *HostPathVolumeSourcePatch `pulumi:"hostPath"` @@ -71782,23 +72030,23 @@ type VolumePatch struct { Nfs *NFSVolumeSourcePatch `pulumi:"nfs"` // persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims PersistentVolumeClaim *PersistentVolumeClaimVolumeSourcePatch `pulumi:"persistentVolumeClaim"` - // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. PhotonPersistentDisk *PhotonPersistentDiskVolumeSourcePatch `pulumi:"photonPersistentDisk"` - // portworxVolume represents a portworx volume attached and mounted on kubelets host machine + // portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. PortworxVolume *PortworxVolumeSourcePatch `pulumi:"portworxVolume"` // projected items for all in one resources secrets, configmaps, and downward API Projected *ProjectedVolumeSourcePatch `pulumi:"projected"` - // quobyte represents a Quobyte mount on the host that shares a pod's lifetime + // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte *QuobyteVolumeSourcePatch `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md Rbd *RBDVolumeSourcePatch `pulumi:"rbd"` - // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO *ScaleIOVolumeSourcePatch `pulumi:"scaleIO"` // secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret Secret *SecretVolumeSourcePatch `pulumi:"secret"` - // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. Storageos *StorageOSVolumeSourcePatch `pulumi:"storageos"` - // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. VsphereVolume *VsphereVirtualDiskVolumeSourcePatch `pulumi:"vsphereVolume"` } @@ -71815,19 +72063,19 @@ type VolumePatchInput interface { // Volume represents a named volume in a pod that may be accessed by any container in the pod. type VolumePatchArgs struct { - // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + // awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore AwsElasticBlockStore AWSElasticBlockStoreVolumeSourcePatchPtrInput `pulumi:"awsElasticBlockStore"` - // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. AzureDisk AzureDiskVolumeSourcePatchPtrInput `pulumi:"azureDisk"` - // azureFile represents an Azure File Service mount on the host and bind mount to the pod. + // azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. AzureFile AzureFileVolumeSourcePatchPtrInput `pulumi:"azureFile"` - // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. Cephfs CephFSVolumeSourcePatchPtrInput `pulumi:"cephfs"` - // cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + // cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md Cinder CinderVolumeSourcePatchPtrInput `pulumi:"cinder"` // configMap represents a configMap that should populate this volume ConfigMap ConfigMapVolumeSourcePatchPtrInput `pulumi:"configMap"` - // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Csi CSIVolumeSourcePatchPtrInput `pulumi:"csi"` // downwardAPI represents downward API about the pod that should populate this volume DownwardAPI DownwardAPIVolumeSourcePatchPtrInput `pulumi:"downwardAPI"` @@ -71850,15 +72098,15 @@ type VolumePatchArgs struct { Ephemeral EphemeralVolumeSourcePatchPtrInput `pulumi:"ephemeral"` // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. Fc FCVolumeSourcePatchPtrInput `pulumi:"fc"` - // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + // flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. FlexVolume FlexVolumeSourcePatchPtrInput `pulumi:"flexVolume"` - // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. Flocker FlockerVolumeSourcePatchPtrInput `pulumi:"flocker"` - // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + // gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk GcePersistentDisk GCEPersistentDiskVolumeSourcePatchPtrInput `pulumi:"gcePersistentDisk"` - // gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + // gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. GitRepo GitRepoVolumeSourcePatchPtrInput `pulumi:"gitRepo"` - // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md Glusterfs GlusterfsVolumeSourcePatchPtrInput `pulumi:"glusterfs"` // hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath HostPathVolumeSourcePatchPtrInput `pulumi:"hostPath"` @@ -71876,23 +72124,23 @@ type VolumePatchArgs struct { Nfs NFSVolumeSourcePatchPtrInput `pulumi:"nfs"` // persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims PersistentVolumeClaim PersistentVolumeClaimVolumeSourcePatchPtrInput `pulumi:"persistentVolumeClaim"` - // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. PhotonPersistentDisk PhotonPersistentDiskVolumeSourcePatchPtrInput `pulumi:"photonPersistentDisk"` - // portworxVolume represents a portworx volume attached and mounted on kubelets host machine + // portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. PortworxVolume PortworxVolumeSourcePatchPtrInput `pulumi:"portworxVolume"` // projected items for all in one resources secrets, configmaps, and downward API Projected ProjectedVolumeSourcePatchPtrInput `pulumi:"projected"` - // quobyte represents a Quobyte mount on the host that shares a pod's lifetime + // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte QuobyteVolumeSourcePatchPtrInput `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md Rbd RBDVolumeSourcePatchPtrInput `pulumi:"rbd"` - // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO ScaleIOVolumeSourcePatchPtrInput `pulumi:"scaleIO"` // secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret Secret SecretVolumeSourcePatchPtrInput `pulumi:"secret"` - // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. Storageos StorageOSVolumeSourcePatchPtrInput `pulumi:"storageos"` - // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. VsphereVolume VsphereVirtualDiskVolumeSourcePatchPtrInput `pulumi:"vsphereVolume"` } @@ -71948,27 +72196,27 @@ func (o VolumePatchOutput) ToVolumePatchOutputWithContext(ctx context.Context) V return o } -// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore func (o VolumePatchOutput) AwsElasticBlockStore() AWSElasticBlockStoreVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *AWSElasticBlockStoreVolumeSourcePatch { return v.AwsElasticBlockStore }).(AWSElasticBlockStoreVolumeSourcePatchPtrOutput) } -// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. func (o VolumePatchOutput) AzureDisk() AzureDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *AzureDiskVolumeSourcePatch { return v.AzureDisk }).(AzureDiskVolumeSourcePatchPtrOutput) } -// azureFile represents an Azure File Service mount on the host and bind mount to the pod. +// azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. func (o VolumePatchOutput) AzureFile() AzureFileVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *AzureFileVolumeSourcePatch { return v.AzureFile }).(AzureFileVolumeSourcePatchPtrOutput) } -// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime +// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. func (o VolumePatchOutput) Cephfs() CephFSVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *CephFSVolumeSourcePatch { return v.Cephfs }).(CephFSVolumeSourcePatchPtrOutput) } -// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +// cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md func (o VolumePatchOutput) Cinder() CinderVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *CinderVolumeSourcePatch { return v.Cinder }).(CinderVolumeSourcePatchPtrOutput) } @@ -71978,7 +72226,7 @@ func (o VolumePatchOutput) ConfigMap() ConfigMapVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *ConfigMapVolumeSourcePatch { return v.ConfigMap }).(ConfigMapVolumeSourcePatchPtrOutput) } -// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. func (o VolumePatchOutput) Csi() CSIVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *CSIVolumeSourcePatch { return v.Csi }).(CSIVolumeSourcePatchPtrOutput) } @@ -72019,27 +72267,27 @@ func (o VolumePatchOutput) Fc() FCVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *FCVolumeSourcePatch { return v.Fc }).(FCVolumeSourcePatchPtrOutput) } -// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. func (o VolumePatchOutput) FlexVolume() FlexVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *FlexVolumeSourcePatch { return v.FlexVolume }).(FlexVolumeSourcePatchPtrOutput) } -// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. func (o VolumePatchOutput) Flocker() FlockerVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *FlockerVolumeSourcePatch { return v.Flocker }).(FlockerVolumeSourcePatchPtrOutput) } -// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk func (o VolumePatchOutput) GcePersistentDisk() GCEPersistentDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *GCEPersistentDiskVolumeSourcePatch { return v.GcePersistentDisk }).(GCEPersistentDiskVolumeSourcePatchPtrOutput) } -// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +// gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. func (o VolumePatchOutput) GitRepo() GitRepoVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *GitRepoVolumeSourcePatch { return v.GitRepo }).(GitRepoVolumeSourcePatchPtrOutput) } -// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md func (o VolumePatchOutput) Glusterfs() GlusterfsVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *GlusterfsVolumeSourcePatch { return v.Glusterfs }).(GlusterfsVolumeSourcePatchPtrOutput) } @@ -72078,12 +72326,12 @@ func (o VolumePatchOutput) PersistentVolumeClaim() PersistentVolumeClaimVolumeSo return o.ApplyT(func(v VolumePatch) *PersistentVolumeClaimVolumeSourcePatch { return v.PersistentVolumeClaim }).(PersistentVolumeClaimVolumeSourcePatchPtrOutput) } -// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. func (o VolumePatchOutput) PhotonPersistentDisk() PhotonPersistentDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *PhotonPersistentDiskVolumeSourcePatch { return v.PhotonPersistentDisk }).(PhotonPersistentDiskVolumeSourcePatchPtrOutput) } -// portworxVolume represents a portworx volume attached and mounted on kubelets host machine +// portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. func (o VolumePatchOutput) PortworxVolume() PortworxVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *PortworxVolumeSourcePatch { return v.PortworxVolume }).(PortworxVolumeSourcePatchPtrOutput) } @@ -72093,17 +72341,17 @@ func (o VolumePatchOutput) Projected() ProjectedVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *ProjectedVolumeSourcePatch { return v.Projected }).(ProjectedVolumeSourcePatchPtrOutput) } -// quobyte represents a Quobyte mount on the host that shares a pod's lifetime +// quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. func (o VolumePatchOutput) Quobyte() QuobyteVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *QuobyteVolumeSourcePatch { return v.Quobyte }).(QuobyteVolumeSourcePatchPtrOutput) } -// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md func (o VolumePatchOutput) Rbd() RBDVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *RBDVolumeSourcePatch { return v.Rbd }).(RBDVolumeSourcePatchPtrOutput) } -// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. func (o VolumePatchOutput) ScaleIO() ScaleIOVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *ScaleIOVolumeSourcePatch { return v.ScaleIO }).(ScaleIOVolumeSourcePatchPtrOutput) } @@ -72113,12 +72361,12 @@ func (o VolumePatchOutput) Secret() SecretVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *SecretVolumeSourcePatch { return v.Secret }).(SecretVolumeSourcePatchPtrOutput) } -// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. func (o VolumePatchOutput) Storageos() StorageOSVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *StorageOSVolumeSourcePatch { return v.Storageos }).(StorageOSVolumeSourcePatchPtrOutput) } -// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. func (o VolumePatchOutput) VsphereVolume() VsphereVirtualDiskVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *VsphereVirtualDiskVolumeSourcePatch { return v.VsphereVolume }).(VsphereVirtualDiskVolumeSourcePatchPtrOutput) } diff --git a/sdk/go/kubernetes/core/v1/serviceAccount.go b/sdk/go/kubernetes/core/v1/serviceAccount.go index 5095fd6b62..15356ecaa6 100644 --- a/sdk/go/kubernetes/core/v1/serviceAccount.go +++ b/sdk/go/kubernetes/core/v1/serviceAccount.go @@ -26,7 +26,7 @@ type ServiceAccount struct { Kind pulumi.StringOutput `pulumi:"kind"` // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets ObjectReferenceArrayOutput `pulumi:"secrets"` } @@ -82,7 +82,7 @@ type serviceAccountArgs struct { Kind *string `pulumi:"kind"` // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata *metav1.ObjectMeta `pulumi:"metadata"` - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets []ObjectReference `pulumi:"secrets"` } @@ -98,7 +98,7 @@ type ServiceAccountArgs struct { Kind pulumi.StringPtrInput // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata metav1.ObjectMetaPtrInput - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets ObjectReferenceArrayInput } @@ -214,7 +214,7 @@ func (o ServiceAccountOutput) Metadata() metav1.ObjectMetaOutput { return o.ApplyT(func(v *ServiceAccount) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) } -// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret +// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret func (o ServiceAccountOutput) Secrets() ObjectReferenceArrayOutput { return o.ApplyT(func(v *ServiceAccount) ObjectReferenceArrayOutput { return v.Secrets }).(ObjectReferenceArrayOutput) } diff --git a/sdk/go/kubernetes/core/v1/serviceAccountPatch.go b/sdk/go/kubernetes/core/v1/serviceAccountPatch.go index b861b970b5..f330d3a792 100644 --- a/sdk/go/kubernetes/core/v1/serviceAccountPatch.go +++ b/sdk/go/kubernetes/core/v1/serviceAccountPatch.go @@ -32,7 +32,7 @@ type ServiceAccountPatch struct { Kind pulumi.StringPtrOutput `pulumi:"kind"` // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets ObjectReferencePatchArrayOutput `pulumi:"secrets"` } @@ -88,7 +88,7 @@ type serviceAccountPatchArgs struct { Kind *string `pulumi:"kind"` // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets []ObjectReferencePatch `pulumi:"secrets"` } @@ -104,7 +104,7 @@ type ServiceAccountPatchArgs struct { Kind pulumi.StringPtrInput // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Metadata metav1.ObjectMetaPatchPtrInput - // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret Secrets ObjectReferencePatchArrayInput } @@ -220,7 +220,7 @@ func (o ServiceAccountPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { return o.ApplyT(func(v *ServiceAccountPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) } -// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret +// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret func (o ServiceAccountPatchOutput) Secrets() ObjectReferencePatchArrayOutput { return o.ApplyT(func(v *ServiceAccountPatch) ObjectReferencePatchArrayOutput { return v.Secrets }).(ObjectReferencePatchArrayOutput) } diff --git a/sdk/go/kubernetes/flowcontrol/v1beta3/pulumiTypes.go b/sdk/go/kubernetes/flowcontrol/v1beta3/pulumiTypes.go index b1c3e6df54..3b1ef23b7d 100644 --- a/sdk/go/kubernetes/flowcontrol/v1beta3/pulumiTypes.go +++ b/sdk/go/kubernetes/flowcontrol/v1beta3/pulumiTypes.go @@ -2533,9 +2533,9 @@ type LimitedPriorityLevelConfiguration struct { LimitResponse *LimitResponse `pulumi:"limitResponse"` // `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: // - // NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + // NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) // - // Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + // Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. NominalConcurrencyShares *int `pulumi:"nominalConcurrencyShares"` } @@ -2568,9 +2568,9 @@ type LimitedPriorityLevelConfigurationArgs struct { LimitResponse LimitResponsePtrInput `pulumi:"limitResponse"` // `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: // - // NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + // NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) // - // Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + // Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. NominalConcurrencyShares pulumi.IntPtrInput `pulumi:"nominalConcurrencyShares"` } @@ -2677,9 +2677,9 @@ func (o LimitedPriorityLevelConfigurationOutput) LimitResponse() LimitResponsePt // `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: // -// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) +// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) // -// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. +// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. func (o LimitedPriorityLevelConfigurationOutput) NominalConcurrencyShares() pulumi.IntPtrOutput { return o.ApplyT(func(v LimitedPriorityLevelConfiguration) *int { return v.NominalConcurrencyShares }).(pulumi.IntPtrOutput) } @@ -2746,9 +2746,9 @@ func (o LimitedPriorityLevelConfigurationPtrOutput) LimitResponse() LimitRespons // `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: // -// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) +// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) // -// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. +// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. func (o LimitedPriorityLevelConfigurationPtrOutput) NominalConcurrencyShares() pulumi.IntPtrOutput { return o.ApplyT(func(v *LimitedPriorityLevelConfiguration) *int { if v == nil { @@ -2776,9 +2776,9 @@ type LimitedPriorityLevelConfigurationPatch struct { LimitResponse *LimitResponsePatch `pulumi:"limitResponse"` // `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: // - // NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + // NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) // - // Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + // Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. NominalConcurrencyShares *int `pulumi:"nominalConcurrencyShares"` } @@ -2811,9 +2811,9 @@ type LimitedPriorityLevelConfigurationPatchArgs struct { LimitResponse LimitResponsePatchPtrInput `pulumi:"limitResponse"` // `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: // - // NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + // NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) // - // Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + // Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. NominalConcurrencyShares pulumi.IntPtrInput `pulumi:"nominalConcurrencyShares"` } @@ -2920,9 +2920,9 @@ func (o LimitedPriorityLevelConfigurationPatchOutput) LimitResponse() LimitRespo // `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: // -// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) +// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) // -// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. +// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. func (o LimitedPriorityLevelConfigurationPatchOutput) NominalConcurrencyShares() pulumi.IntPtrOutput { return o.ApplyT(func(v LimitedPriorityLevelConfigurationPatch) *int { return v.NominalConcurrencyShares }).(pulumi.IntPtrOutput) } @@ -2989,9 +2989,9 @@ func (o LimitedPriorityLevelConfigurationPatchPtrOutput) LimitResponse() LimitRe // `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: // -// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) +// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) // -// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. +// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. func (o LimitedPriorityLevelConfigurationPatchPtrOutput) NominalConcurrencyShares() pulumi.IntPtrOutput { return o.ApplyT(func(v *LimitedPriorityLevelConfigurationPatch) *int { if v == nil { diff --git a/sdk/go/kubernetes/meta/v1/pulumiTypes.go b/sdk/go/kubernetes/meta/v1/pulumiTypes.go index 8afc4eaa33..3da048fe8e 100644 --- a/sdk/go/kubernetes/meta/v1/pulumiTypes.go +++ b/sdk/go/kubernetes/meta/v1/pulumiTypes.go @@ -1192,6 +1192,8 @@ type DeleteOptions struct { DryRun []string `pulumi:"dryRun"` // The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. GracePeriodSeconds *int `pulumi:"gracePeriodSeconds"` + // if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it + IgnoreStoreReadErrorWithClusterBreakingPotential *bool `pulumi:"ignoreStoreReadErrorWithClusterBreakingPotential"` // 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 Kind *string `pulumi:"kind"` // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. @@ -1221,6 +1223,8 @@ type DeleteOptionsArgs struct { DryRun pulumi.StringArrayInput `pulumi:"dryRun"` // The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. GracePeriodSeconds pulumi.IntPtrInput `pulumi:"gracePeriodSeconds"` + // if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it + IgnoreStoreReadErrorWithClusterBreakingPotential pulumi.BoolPtrInput `pulumi:"ignoreStoreReadErrorWithClusterBreakingPotential"` // 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 Kind pulumi.StringPtrInput `pulumi:"kind"` // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. @@ -1324,6 +1328,11 @@ func (o DeleteOptionsOutput) GracePeriodSeconds() pulumi.IntPtrOutput { return o.ApplyT(func(v DeleteOptions) *int { return v.GracePeriodSeconds }).(pulumi.IntPtrOutput) } +// if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it +func (o DeleteOptionsOutput) IgnoreStoreReadErrorWithClusterBreakingPotential() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeleteOptions) *bool { return v.IgnoreStoreReadErrorWithClusterBreakingPotential }).(pulumi.BoolPtrOutput) +} + // 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 func (o DeleteOptionsOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v DeleteOptions) *string { return v.Kind }).(pulumi.StringPtrOutput) @@ -1398,6 +1407,16 @@ func (o DeleteOptionsPtrOutput) GracePeriodSeconds() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it +func (o DeleteOptionsPtrOutput) IgnoreStoreReadErrorWithClusterBreakingPotential() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DeleteOptions) *bool { + if v == nil { + return nil + } + return v.IgnoreStoreReadErrorWithClusterBreakingPotential + }).(pulumi.BoolPtrOutput) +} + // 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 func (o DeleteOptionsPtrOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v *DeleteOptions) *string { @@ -1446,6 +1465,8 @@ type DeleteOptionsPatch struct { DryRun []string `pulumi:"dryRun"` // The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. GracePeriodSeconds *int `pulumi:"gracePeriodSeconds"` + // if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it + IgnoreStoreReadErrorWithClusterBreakingPotential *bool `pulumi:"ignoreStoreReadErrorWithClusterBreakingPotential"` // 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 Kind *string `pulumi:"kind"` // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. @@ -1475,6 +1496,8 @@ type DeleteOptionsPatchArgs struct { DryRun pulumi.StringArrayInput `pulumi:"dryRun"` // The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. GracePeriodSeconds pulumi.IntPtrInput `pulumi:"gracePeriodSeconds"` + // if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it + IgnoreStoreReadErrorWithClusterBreakingPotential pulumi.BoolPtrInput `pulumi:"ignoreStoreReadErrorWithClusterBreakingPotential"` // 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 Kind pulumi.StringPtrInput `pulumi:"kind"` // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. @@ -1578,6 +1601,11 @@ func (o DeleteOptionsPatchOutput) GracePeriodSeconds() pulumi.IntPtrOutput { return o.ApplyT(func(v DeleteOptionsPatch) *int { return v.GracePeriodSeconds }).(pulumi.IntPtrOutput) } +// if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it +func (o DeleteOptionsPatchOutput) IgnoreStoreReadErrorWithClusterBreakingPotential() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeleteOptionsPatch) *bool { return v.IgnoreStoreReadErrorWithClusterBreakingPotential }).(pulumi.BoolPtrOutput) +} + // 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 func (o DeleteOptionsPatchOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v DeleteOptionsPatch) *string { return v.Kind }).(pulumi.StringPtrOutput) @@ -1652,6 +1680,16 @@ func (o DeleteOptionsPatchPtrOutput) GracePeriodSeconds() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it +func (o DeleteOptionsPatchPtrOutput) IgnoreStoreReadErrorWithClusterBreakingPotential() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DeleteOptionsPatch) *bool { + if v == nil { + return nil + } + return v.IgnoreStoreReadErrorWithClusterBreakingPotential + }).(pulumi.BoolPtrOutput) +} + // 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 func (o DeleteOptionsPatchPtrOutput) Kind() pulumi.StringPtrOutput { return o.ApplyT(func(v *DeleteOptionsPatch) *string { diff --git a/sdk/go/kubernetes/resource/v1alpha1/resourceClaim.go b/sdk/go/kubernetes/resource/v1alpha1/resourceClaim.go index 61535297ae..8d75a3dc76 100644 --- a/sdk/go/kubernetes/resource/v1alpha1/resourceClaim.go +++ b/sdk/go/kubernetes/resource/v1alpha1/resourceClaim.go @@ -50,6 +50,9 @@ func NewResourceClaim(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaim"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaim"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha1/resourceClaimPatch.go b/sdk/go/kubernetes/resource/v1alpha1/resourceClaimPatch.go index c7b6251748..7355e4cf60 100644 --- a/sdk/go/kubernetes/resource/v1alpha1/resourceClaimPatch.go +++ b/sdk/go/kubernetes/resource/v1alpha1/resourceClaimPatch.go @@ -52,6 +52,9 @@ func NewResourceClaimPatch(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha1/resourceClaimTemplate.go b/sdk/go/kubernetes/resource/v1alpha1/resourceClaimTemplate.go index ee4555a720..598b564ab6 100644 --- a/sdk/go/kubernetes/resource/v1alpha1/resourceClaimTemplate.go +++ b/sdk/go/kubernetes/resource/v1alpha1/resourceClaimTemplate.go @@ -48,6 +48,9 @@ func NewResourceClaimTemplate(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha1/resourceClaimTemplatePatch.go b/sdk/go/kubernetes/resource/v1alpha1/resourceClaimTemplatePatch.go index eef77338ca..644cb066b6 100644 --- a/sdk/go/kubernetes/resource/v1alpha1/resourceClaimTemplatePatch.go +++ b/sdk/go/kubernetes/resource/v1alpha1/resourceClaimTemplatePatch.go @@ -50,6 +50,9 @@ func NewResourceClaimTemplatePatch(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha2/resourceClaim.go b/sdk/go/kubernetes/resource/v1alpha2/resourceClaim.go index 9dd3cecfc9..8ae9a24fb9 100644 --- a/sdk/go/kubernetes/resource/v1alpha2/resourceClaim.go +++ b/sdk/go/kubernetes/resource/v1alpha2/resourceClaim.go @@ -50,6 +50,9 @@ func NewResourceClaim(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaim"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaim"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha2/resourceClaimPatch.go b/sdk/go/kubernetes/resource/v1alpha2/resourceClaimPatch.go index 402504a0a7..5fdc839435 100644 --- a/sdk/go/kubernetes/resource/v1alpha2/resourceClaimPatch.go +++ b/sdk/go/kubernetes/resource/v1alpha2/resourceClaimPatch.go @@ -52,6 +52,9 @@ func NewResourceClaimPatch(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha2/resourceClaimTemplate.go b/sdk/go/kubernetes/resource/v1alpha2/resourceClaimTemplate.go index a515c6cbab..c94a632f2a 100644 --- a/sdk/go/kubernetes/resource/v1alpha2/resourceClaimTemplate.go +++ b/sdk/go/kubernetes/resource/v1alpha2/resourceClaimTemplate.go @@ -48,6 +48,9 @@ func NewResourceClaimTemplate(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha2/resourceClaimTemplatePatch.go b/sdk/go/kubernetes/resource/v1alpha2/resourceClaimTemplatePatch.go index 5b327a1e70..8bbef172b2 100644 --- a/sdk/go/kubernetes/resource/v1alpha2/resourceClaimTemplatePatch.go +++ b/sdk/go/kubernetes/resource/v1alpha2/resourceClaimTemplatePatch.go @@ -50,6 +50,9 @@ func NewResourceClaimTemplatePatch(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha2/resourceSlice.go b/sdk/go/kubernetes/resource/v1alpha2/resourceSlice.go index 27fc83c8f7..2c7b6ae7e7 100644 --- a/sdk/go/kubernetes/resource/v1alpha2/resourceSlice.go +++ b/sdk/go/kubernetes/resource/v1alpha2/resourceSlice.go @@ -49,6 +49,9 @@ func NewResourceSlice(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceSlice"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceSlice"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha2/resourceSlicePatch.go b/sdk/go/kubernetes/resource/v1alpha2/resourceSlicePatch.go index 6a16c93dd1..400e4202ff 100644 --- a/sdk/go/kubernetes/resource/v1alpha2/resourceSlicePatch.go +++ b/sdk/go/kubernetes/resource/v1alpha2/resourceSlicePatch.go @@ -51,6 +51,9 @@ func NewResourceSlicePatch(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha3/deviceClass.go b/sdk/go/kubernetes/resource/v1alpha3/deviceClass.go index e28b373a15..6ae45d51cb 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/deviceClass.go +++ b/sdk/go/kubernetes/resource/v1alpha3/deviceClass.go @@ -45,6 +45,12 @@ func NewDeviceClass(ctx *pulumi.Context, } args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1alpha3") args.Kind = pulumi.StringPtr("DeviceClass") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:DeviceClass"), + }, + }) + opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) var resource DeviceClass err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha3:DeviceClass", name, args, &resource, opts...) diff --git a/sdk/go/kubernetes/resource/v1alpha3/deviceClassPatch.go b/sdk/go/kubernetes/resource/v1alpha3/deviceClassPatch.go index 99b91d364b..7de4f2e9ee 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/deviceClassPatch.go +++ b/sdk/go/kubernetes/resource/v1alpha3/deviceClassPatch.go @@ -47,6 +47,12 @@ func NewDeviceClassPatch(ctx *pulumi.Context, args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1alpha3") args.Kind = pulumi.StringPtr("DeviceClass") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch"), + }, + }) + opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) var resource DeviceClassPatch err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha3:DeviceClassPatch", name, args, &resource, opts...) diff --git a/sdk/go/kubernetes/resource/v1alpha3/init.go b/sdk/go/kubernetes/resource/v1alpha3/init.go index 6d38c35521..447d1ec04d 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/init.go +++ b/sdk/go/kubernetes/resource/v1alpha3/init.go @@ -47,6 +47,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ResourceClaimTemplatePatch{} case "kubernetes:resource.k8s.io/v1alpha3:ResourceSlice": r = &ResourceSlice{} + case "kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList": + r = &ResourceSliceList{} case "kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch": r = &ResourceSlicePatch{} default: diff --git a/sdk/go/kubernetes/resource/v1alpha3/pulumiTypes.go b/sdk/go/kubernetes/resource/v1alpha3/pulumiTypes.go index ee8862bb9a..aa4c0884cc 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/pulumiTypes.go +++ b/sdk/go/kubernetes/resource/v1alpha3/pulumiTypes.go @@ -15,6 +15,332 @@ import ( var _ = utilities.GetEnvOrDefault +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatus struct { + // 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. + Conditions []metav1.Condition `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data interface{} `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device string `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver string `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData *NetworkDeviceData `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool string `pulumi:"pool"` +} + +// AllocatedDeviceStatusInput is an input type that accepts AllocatedDeviceStatusArgs and AllocatedDeviceStatusOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusInput` via: +// +// AllocatedDeviceStatusArgs{...} +type AllocatedDeviceStatusInput interface { + pulumi.Input + + ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput + ToAllocatedDeviceStatusOutputWithContext(context.Context) AllocatedDeviceStatusOutput +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusArgs struct { + // 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. + Conditions metav1.ConditionArrayInput `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data pulumi.Input `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringInput `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver pulumi.StringInput `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData NetworkDeviceDataPtrInput `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringInput `pulumi:"pool"` +} + +func (AllocatedDeviceStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatus)(nil)).Elem() +} + +func (i AllocatedDeviceStatusArgs) ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput { + return i.ToAllocatedDeviceStatusOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusArgs) ToAllocatedDeviceStatusOutputWithContext(ctx context.Context) AllocatedDeviceStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusOutput) +} + +// AllocatedDeviceStatusArrayInput is an input type that accepts AllocatedDeviceStatusArray and AllocatedDeviceStatusArrayOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusArrayInput` via: +// +// AllocatedDeviceStatusArray{ AllocatedDeviceStatusArgs{...} } +type AllocatedDeviceStatusArrayInput interface { + pulumi.Input + + ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput + ToAllocatedDeviceStatusArrayOutputWithContext(context.Context) AllocatedDeviceStatusArrayOutput +} + +type AllocatedDeviceStatusArray []AllocatedDeviceStatusInput + +func (AllocatedDeviceStatusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatus)(nil)).Elem() +} + +func (i AllocatedDeviceStatusArray) ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput { + return i.ToAllocatedDeviceStatusArrayOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusArray) ToAllocatedDeviceStatusArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusArrayOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatus)(nil)).Elem() +} + +func (o AllocatedDeviceStatusOutput) ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput { + return o +} + +func (o AllocatedDeviceStatusOutput) ToAllocatedDeviceStatusOutputWithContext(ctx context.Context) AllocatedDeviceStatusOutput { + return o +} + +// 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. +func (o AllocatedDeviceStatusOutput) Conditions() metav1.ConditionArrayOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) []metav1.Condition { return v.Conditions }).(metav1.ConditionArrayOutput) +} + +// Data contains arbitrary driver-specific data. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o AllocatedDeviceStatusOutput) Data() pulumi.AnyOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) interface{} { return v.Data }).(pulumi.AnyOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o AllocatedDeviceStatusOutput) Device() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Device }).(pulumi.StringOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o AllocatedDeviceStatusOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Driver }).(pulumi.StringOutput) +} + +// NetworkData contains network-related information specific to the device. +func (o AllocatedDeviceStatusOutput) NetworkData() NetworkDeviceDataPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) *NetworkDeviceData { return v.NetworkData }).(NetworkDeviceDataPtrOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o AllocatedDeviceStatusOutput) Pool() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Pool }).(pulumi.StringOutput) +} + +type AllocatedDeviceStatusArrayOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatus)(nil)).Elem() +} + +func (o AllocatedDeviceStatusArrayOutput) ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput { + return o +} + +func (o AllocatedDeviceStatusArrayOutput) ToAllocatedDeviceStatusArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusArrayOutput { + return o +} + +func (o AllocatedDeviceStatusArrayOutput) Index(i pulumi.IntInput) AllocatedDeviceStatusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AllocatedDeviceStatus { + return vs[0].([]AllocatedDeviceStatus)[vs[1].(int)] + }).(AllocatedDeviceStatusOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusPatch struct { + // 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. + Conditions []metav1.ConditionPatch `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data interface{} `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device *string `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver *string `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData *NetworkDeviceDataPatch `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool *string `pulumi:"pool"` +} + +// AllocatedDeviceStatusPatchInput is an input type that accepts AllocatedDeviceStatusPatchArgs and AllocatedDeviceStatusPatchOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusPatchInput` via: +// +// AllocatedDeviceStatusPatchArgs{...} +type AllocatedDeviceStatusPatchInput interface { + pulumi.Input + + ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput + ToAllocatedDeviceStatusPatchOutputWithContext(context.Context) AllocatedDeviceStatusPatchOutput +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusPatchArgs struct { + // 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. + Conditions metav1.ConditionPatchArrayInput `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data pulumi.Input `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringPtrInput `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver pulumi.StringPtrInput `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData NetworkDeviceDataPatchPtrInput `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringPtrInput `pulumi:"pool"` +} + +func (AllocatedDeviceStatusPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (i AllocatedDeviceStatusPatchArgs) ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput { + return i.ToAllocatedDeviceStatusPatchOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusPatchArgs) ToAllocatedDeviceStatusPatchOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusPatchOutput) +} + +// AllocatedDeviceStatusPatchArrayInput is an input type that accepts AllocatedDeviceStatusPatchArray and AllocatedDeviceStatusPatchArrayOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusPatchArrayInput` via: +// +// AllocatedDeviceStatusPatchArray{ AllocatedDeviceStatusPatchArgs{...} } +type AllocatedDeviceStatusPatchArrayInput interface { + pulumi.Input + + ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput + ToAllocatedDeviceStatusPatchArrayOutputWithContext(context.Context) AllocatedDeviceStatusPatchArrayOutput +} + +type AllocatedDeviceStatusPatchArray []AllocatedDeviceStatusPatchInput + +func (AllocatedDeviceStatusPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (i AllocatedDeviceStatusPatchArray) ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput { + return i.ToAllocatedDeviceStatusPatchArrayOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusPatchArray) ToAllocatedDeviceStatusPatchArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusPatchArrayOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusPatchOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (o AllocatedDeviceStatusPatchOutput) ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput { + return o +} + +func (o AllocatedDeviceStatusPatchOutput) ToAllocatedDeviceStatusPatchOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchOutput { + return o +} + +// 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. +func (o AllocatedDeviceStatusPatchOutput) Conditions() metav1.ConditionPatchArrayOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) []metav1.ConditionPatch { return v.Conditions }).(metav1.ConditionPatchArrayOutput) +} + +// Data contains arbitrary driver-specific data. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o AllocatedDeviceStatusPatchOutput) Data() pulumi.AnyOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) interface{} { return v.Data }).(pulumi.AnyOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o AllocatedDeviceStatusPatchOutput) Device() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Device }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o AllocatedDeviceStatusPatchOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Driver }).(pulumi.StringPtrOutput) +} + +// NetworkData contains network-related information specific to the device. +func (o AllocatedDeviceStatusPatchOutput) NetworkData() NetworkDeviceDataPatchPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *NetworkDeviceDataPatch { return v.NetworkData }).(NetworkDeviceDataPatchPtrOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o AllocatedDeviceStatusPatchOutput) Pool() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Pool }).(pulumi.StringPtrOutput) +} + +type AllocatedDeviceStatusPatchArrayOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (o AllocatedDeviceStatusPatchArrayOutput) ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput { + return o +} + +func (o AllocatedDeviceStatusPatchArrayOutput) ToAllocatedDeviceStatusPatchArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchArrayOutput { + return o +} + +func (o AllocatedDeviceStatusPatchArrayOutput) Index(i pulumi.IntInput) AllocatedDeviceStatusPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AllocatedDeviceStatusPatch { + return vs[0].([]AllocatedDeviceStatusPatch)[vs[1].(int)] + }).(AllocatedDeviceStatusPatchOutput) +} + // AllocationResult contains attributes of an allocated resource. type AllocationResult struct { // Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver. @@ -782,6 +1108,8 @@ type CELDeviceSelector struct { // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: // // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. Expression string `pulumi:"expression"` } @@ -825,6 +1153,8 @@ type CELDeviceSelectorArgs struct { // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: // // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. Expression pulumi.StringInput `pulumi:"expression"` } @@ -933,6 +1263,8 @@ func (o CELDeviceSelectorOutput) ToCELDeviceSelectorPtrOutputWithContext(ctx con // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: // // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. func (o CELDeviceSelectorOutput) Expression() pulumi.StringOutput { return o.ApplyT(func(v CELDeviceSelector) string { return v.Expression }).(pulumi.StringOutput) } @@ -988,6 +1320,8 @@ func (o CELDeviceSelectorPtrOutput) Elem() CELDeviceSelectorOutput { // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: // // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. func (o CELDeviceSelectorPtrOutput) Expression() pulumi.StringPtrOutput { return o.ApplyT(func(v *CELDeviceSelector) *string { if v == nil { @@ -1026,6 +1360,8 @@ type CELDeviceSelectorPatch struct { // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: // // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. Expression *string `pulumi:"expression"` } @@ -1069,6 +1405,8 @@ type CELDeviceSelectorPatchArgs struct { // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: // // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. Expression pulumi.StringPtrInput `pulumi:"expression"` } @@ -1177,6 +1515,8 @@ func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchPtrOutputWithConte // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: // // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. func (o CELDeviceSelectorPatchOutput) Expression() pulumi.StringPtrOutput { return o.ApplyT(func(v CELDeviceSelectorPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) } @@ -1232,6 +1572,8 @@ func (o CELDeviceSelectorPatchPtrOutput) Elem() CELDeviceSelectorPatchOutput { // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: // // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. func (o CELDeviceSelectorPatchPtrOutput) Expression() pulumi.StringPtrOutput { return o.ApplyT(func(v *CELDeviceSelectorPatch) *string { if v == nil { @@ -3879,6 +4221,8 @@ func (o DevicePatchArrayOutput) Index(i pulumi.IntInput) DevicePatchOutput { // 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. type DeviceRequest struct { // 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. + // + // 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. AdminAccess *bool `pulumi:"adminAccess"` // AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: // @@ -3926,6 +4270,8 @@ type DeviceRequestInput interface { // 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. type DeviceRequestArgs struct { // 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. + // + // 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. AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` // AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: // @@ -4012,6 +4358,8 @@ func (o DeviceRequestOutput) ToDeviceRequestOutputWithContext(ctx context.Contex } // 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. +// +// 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. func (o DeviceRequestOutput) AdminAccess() pulumi.BoolPtrOutput { return o.ApplyT(func(v DeviceRequest) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) } @@ -4081,6 +4429,10 @@ func (o DeviceRequestArrayOutput) Index(i pulumi.IntInput) DeviceRequestOutput { // DeviceRequestAllocationResult contains the allocation result for one request. type DeviceRequestAllocationResult struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // 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. + AdminAccess *bool `pulumi:"adminAccess"` // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. Device string `pulumi:"device"` // 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. @@ -4108,6 +4460,10 @@ type DeviceRequestAllocationResultInput interface { // DeviceRequestAllocationResult contains the allocation result for one request. type DeviceRequestAllocationResultArgs struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // 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. + AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. Device pulumi.StringInput `pulumi:"device"` // 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. @@ -4174,6 +4530,13 @@ func (o DeviceRequestAllocationResultOutput) ToDeviceRequestAllocationResultOutp return o } +// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. +// +// 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. +func (o DeviceRequestAllocationResultOutput) AdminAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) +} + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. func (o DeviceRequestAllocationResultOutput) Device() pulumi.StringOutput { return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Device }).(pulumi.StringOutput) @@ -4220,6 +4583,10 @@ func (o DeviceRequestAllocationResultArrayOutput) Index(i pulumi.IntInput) Devic // DeviceRequestAllocationResult contains the allocation result for one request. type DeviceRequestAllocationResultPatch struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // 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. + AdminAccess *bool `pulumi:"adminAccess"` // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. Device *string `pulumi:"device"` // 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. @@ -4247,6 +4614,10 @@ type DeviceRequestAllocationResultPatchInput interface { // DeviceRequestAllocationResult contains the allocation result for one request. type DeviceRequestAllocationResultPatchArgs struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // 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. + AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. Device pulumi.StringPtrInput `pulumi:"device"` // 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. @@ -4313,6 +4684,13 @@ func (o DeviceRequestAllocationResultPatchOutput) ToDeviceRequestAllocationResul return o } +// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. +// +// 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. +func (o DeviceRequestAllocationResultPatchOutput) AdminAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) +} + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. func (o DeviceRequestAllocationResultPatchOutput) Device() pulumi.StringPtrOutput { return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Device }).(pulumi.StringPtrOutput) @@ -4362,6 +4740,8 @@ func (o DeviceRequestAllocationResultPatchArrayOutput) Index(i pulumi.IntInput) // 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. type DeviceRequestPatch struct { // 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. + // + // 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. AdminAccess *bool `pulumi:"adminAccess"` // AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: // @@ -4409,6 +4789,8 @@ type DeviceRequestPatchInput interface { // 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. type DeviceRequestPatchArgs struct { // 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. + // + // 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. AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` // AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: // @@ -4495,6 +4877,8 @@ func (o DeviceRequestPatchOutput) ToDeviceRequestPatchOutputWithContext(ctx cont } // 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. +// +// 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. func (o DeviceRequestPatchOutput) AdminAccess() pulumi.BoolPtrOutput { return o.ApplyT(func(v DeviceRequestPatch) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) } @@ -4762,6 +5146,394 @@ func (o DeviceSelectorPatchArrayOutput) Index(i pulumi.IntInput) DeviceSelectorP }).(DeviceSelectorPatchOutput) } +// 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. +type NetworkDeviceData struct { + // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + // + // Must not be longer than 128 characters. + HardwareAddress *string `pulumi:"hardwareAddress"` + // 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. + // + // Must not be longer than 256 characters. + InterfaceName *string `pulumi:"interfaceName"` + // 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. + Ips []string `pulumi:"ips"` +} + +// NetworkDeviceDataInput is an input type that accepts NetworkDeviceDataArgs and NetworkDeviceDataOutput values. +// You can construct a concrete instance of `NetworkDeviceDataInput` via: +// +// NetworkDeviceDataArgs{...} +type NetworkDeviceDataInput interface { + pulumi.Input + + ToNetworkDeviceDataOutput() NetworkDeviceDataOutput + ToNetworkDeviceDataOutputWithContext(context.Context) NetworkDeviceDataOutput +} + +// 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. +type NetworkDeviceDataArgs struct { + // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + // + // Must not be longer than 128 characters. + HardwareAddress pulumi.StringPtrInput `pulumi:"hardwareAddress"` + // 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. + // + // Must not be longer than 256 characters. + InterfaceName pulumi.StringPtrInput `pulumi:"interfaceName"` + // 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. + Ips pulumi.StringArrayInput `pulumi:"ips"` +} + +func (NetworkDeviceDataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkDeviceData)(nil)).Elem() +} + +func (i NetworkDeviceDataArgs) ToNetworkDeviceDataOutput() NetworkDeviceDataOutput { + return i.ToNetworkDeviceDataOutputWithContext(context.Background()) +} + +func (i NetworkDeviceDataArgs) ToNetworkDeviceDataOutputWithContext(ctx context.Context) NetworkDeviceDataOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataOutput) +} + +func (i NetworkDeviceDataArgs) ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput { + return i.ToNetworkDeviceDataPtrOutputWithContext(context.Background()) +} + +func (i NetworkDeviceDataArgs) ToNetworkDeviceDataPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataOutput).ToNetworkDeviceDataPtrOutputWithContext(ctx) +} + +// NetworkDeviceDataPtrInput is an input type that accepts NetworkDeviceDataArgs, NetworkDeviceDataPtr and NetworkDeviceDataPtrOutput values. +// You can construct a concrete instance of `NetworkDeviceDataPtrInput` via: +// +// NetworkDeviceDataArgs{...} +// +// or: +// +// nil +type NetworkDeviceDataPtrInput interface { + pulumi.Input + + ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput + ToNetworkDeviceDataPtrOutputWithContext(context.Context) NetworkDeviceDataPtrOutput +} + +type networkDeviceDataPtrType NetworkDeviceDataArgs + +func NetworkDeviceDataPtr(v *NetworkDeviceDataArgs) NetworkDeviceDataPtrInput { + return (*networkDeviceDataPtrType)(v) +} + +func (*networkDeviceDataPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkDeviceData)(nil)).Elem() +} + +func (i *networkDeviceDataPtrType) ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput { + return i.ToNetworkDeviceDataPtrOutputWithContext(context.Background()) +} + +func (i *networkDeviceDataPtrType) ToNetworkDeviceDataPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataPtrOutput) +} + +// 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. +type NetworkDeviceDataOutput struct{ *pulumi.OutputState } + +func (NetworkDeviceDataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkDeviceData)(nil)).Elem() +} + +func (o NetworkDeviceDataOutput) ToNetworkDeviceDataOutput() NetworkDeviceDataOutput { + return o +} + +func (o NetworkDeviceDataOutput) ToNetworkDeviceDataOutputWithContext(ctx context.Context) NetworkDeviceDataOutput { + return o +} + +func (o NetworkDeviceDataOutput) ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput { + return o.ToNetworkDeviceDataPtrOutputWithContext(context.Background()) +} + +func (o NetworkDeviceDataOutput) ToNetworkDeviceDataPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkDeviceData) *NetworkDeviceData { + return &v + }).(NetworkDeviceDataPtrOutput) +} + +// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. +// +// Must not be longer than 128 characters. +func (o NetworkDeviceDataOutput) HardwareAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkDeviceData) *string { return v.HardwareAddress }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must not be longer than 256 characters. +func (o NetworkDeviceDataOutput) InterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkDeviceData) *string { return v.InterfaceName }).(pulumi.StringPtrOutput) +} + +// 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. +func (o NetworkDeviceDataOutput) Ips() pulumi.StringArrayOutput { + return o.ApplyT(func(v NetworkDeviceData) []string { return v.Ips }).(pulumi.StringArrayOutput) +} + +type NetworkDeviceDataPtrOutput struct{ *pulumi.OutputState } + +func (NetworkDeviceDataPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkDeviceData)(nil)).Elem() +} + +func (o NetworkDeviceDataPtrOutput) ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput { + return o +} + +func (o NetworkDeviceDataPtrOutput) ToNetworkDeviceDataPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPtrOutput { + return o +} + +func (o NetworkDeviceDataPtrOutput) Elem() NetworkDeviceDataOutput { + return o.ApplyT(func(v *NetworkDeviceData) NetworkDeviceData { + if v != nil { + return *v + } + var ret NetworkDeviceData + return ret + }).(NetworkDeviceDataOutput) +} + +// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. +// +// Must not be longer than 128 characters. +func (o NetworkDeviceDataPtrOutput) HardwareAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkDeviceData) *string { + if v == nil { + return nil + } + return v.HardwareAddress + }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must not be longer than 256 characters. +func (o NetworkDeviceDataPtrOutput) InterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkDeviceData) *string { + if v == nil { + return nil + } + return v.InterfaceName + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o NetworkDeviceDataPtrOutput) Ips() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NetworkDeviceData) []string { + if v == nil { + return nil + } + return v.Ips + }).(pulumi.StringArrayOutput) +} + +// 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. +type NetworkDeviceDataPatch struct { + // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + // + // Must not be longer than 128 characters. + HardwareAddress *string `pulumi:"hardwareAddress"` + // 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. + // + // Must not be longer than 256 characters. + InterfaceName *string `pulumi:"interfaceName"` + // 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. + Ips []string `pulumi:"ips"` +} + +// NetworkDeviceDataPatchInput is an input type that accepts NetworkDeviceDataPatchArgs and NetworkDeviceDataPatchOutput values. +// You can construct a concrete instance of `NetworkDeviceDataPatchInput` via: +// +// NetworkDeviceDataPatchArgs{...} +type NetworkDeviceDataPatchInput interface { + pulumi.Input + + ToNetworkDeviceDataPatchOutput() NetworkDeviceDataPatchOutput + ToNetworkDeviceDataPatchOutputWithContext(context.Context) NetworkDeviceDataPatchOutput +} + +// 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. +type NetworkDeviceDataPatchArgs struct { + // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + // + // Must not be longer than 128 characters. + HardwareAddress pulumi.StringPtrInput `pulumi:"hardwareAddress"` + // 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. + // + // Must not be longer than 256 characters. + InterfaceName pulumi.StringPtrInput `pulumi:"interfaceName"` + // 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. + Ips pulumi.StringArrayInput `pulumi:"ips"` +} + +func (NetworkDeviceDataPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkDeviceDataPatch)(nil)).Elem() +} + +func (i NetworkDeviceDataPatchArgs) ToNetworkDeviceDataPatchOutput() NetworkDeviceDataPatchOutput { + return i.ToNetworkDeviceDataPatchOutputWithContext(context.Background()) +} + +func (i NetworkDeviceDataPatchArgs) ToNetworkDeviceDataPatchOutputWithContext(ctx context.Context) NetworkDeviceDataPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataPatchOutput) +} + +func (i NetworkDeviceDataPatchArgs) ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput { + return i.ToNetworkDeviceDataPatchPtrOutputWithContext(context.Background()) +} + +func (i NetworkDeviceDataPatchArgs) ToNetworkDeviceDataPatchPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataPatchOutput).ToNetworkDeviceDataPatchPtrOutputWithContext(ctx) +} + +// NetworkDeviceDataPatchPtrInput is an input type that accepts NetworkDeviceDataPatchArgs, NetworkDeviceDataPatchPtr and NetworkDeviceDataPatchPtrOutput values. +// You can construct a concrete instance of `NetworkDeviceDataPatchPtrInput` via: +// +// NetworkDeviceDataPatchArgs{...} +// +// or: +// +// nil +type NetworkDeviceDataPatchPtrInput interface { + pulumi.Input + + ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput + ToNetworkDeviceDataPatchPtrOutputWithContext(context.Context) NetworkDeviceDataPatchPtrOutput +} + +type networkDeviceDataPatchPtrType NetworkDeviceDataPatchArgs + +func NetworkDeviceDataPatchPtr(v *NetworkDeviceDataPatchArgs) NetworkDeviceDataPatchPtrInput { + return (*networkDeviceDataPatchPtrType)(v) +} + +func (*networkDeviceDataPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkDeviceDataPatch)(nil)).Elem() +} + +func (i *networkDeviceDataPatchPtrType) ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput { + return i.ToNetworkDeviceDataPatchPtrOutputWithContext(context.Background()) +} + +func (i *networkDeviceDataPatchPtrType) ToNetworkDeviceDataPatchPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataPatchPtrOutput) +} + +// 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. +type NetworkDeviceDataPatchOutput struct{ *pulumi.OutputState } + +func (NetworkDeviceDataPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkDeviceDataPatch)(nil)).Elem() +} + +func (o NetworkDeviceDataPatchOutput) ToNetworkDeviceDataPatchOutput() NetworkDeviceDataPatchOutput { + return o +} + +func (o NetworkDeviceDataPatchOutput) ToNetworkDeviceDataPatchOutputWithContext(ctx context.Context) NetworkDeviceDataPatchOutput { + return o +} + +func (o NetworkDeviceDataPatchOutput) ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput { + return o.ToNetworkDeviceDataPatchPtrOutputWithContext(context.Background()) +} + +func (o NetworkDeviceDataPatchOutput) ToNetworkDeviceDataPatchPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkDeviceDataPatch) *NetworkDeviceDataPatch { + return &v + }).(NetworkDeviceDataPatchPtrOutput) +} + +// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. +// +// Must not be longer than 128 characters. +func (o NetworkDeviceDataPatchOutput) HardwareAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkDeviceDataPatch) *string { return v.HardwareAddress }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must not be longer than 256 characters. +func (o NetworkDeviceDataPatchOutput) InterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkDeviceDataPatch) *string { return v.InterfaceName }).(pulumi.StringPtrOutput) +} + +// 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. +func (o NetworkDeviceDataPatchOutput) Ips() pulumi.StringArrayOutput { + return o.ApplyT(func(v NetworkDeviceDataPatch) []string { return v.Ips }).(pulumi.StringArrayOutput) +} + +type NetworkDeviceDataPatchPtrOutput struct{ *pulumi.OutputState } + +func (NetworkDeviceDataPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkDeviceDataPatch)(nil)).Elem() +} + +func (o NetworkDeviceDataPatchPtrOutput) ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput { + return o +} + +func (o NetworkDeviceDataPatchPtrOutput) ToNetworkDeviceDataPatchPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPatchPtrOutput { + return o +} + +func (o NetworkDeviceDataPatchPtrOutput) Elem() NetworkDeviceDataPatchOutput { + return o.ApplyT(func(v *NetworkDeviceDataPatch) NetworkDeviceDataPatch { + if v != nil { + return *v + } + var ret NetworkDeviceDataPatch + return ret + }).(NetworkDeviceDataPatchOutput) +} + +// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. +// +// Must not be longer than 128 characters. +func (o NetworkDeviceDataPatchPtrOutput) HardwareAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkDeviceDataPatch) *string { + if v == nil { + return nil + } + return v.HardwareAddress + }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must not be longer than 256 characters. +func (o NetworkDeviceDataPatchPtrOutput) InterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkDeviceDataPatch) *string { + if v == nil { + return nil + } + return v.InterfaceName + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o NetworkDeviceDataPatchPtrOutput) Ips() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NetworkDeviceDataPatch) []string { + if v == nil { + return nil + } + return v.Ips + }).(pulumi.StringArrayOutput) +} + // OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. type OpaqueDeviceConfiguration struct { // Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. @@ -4771,6 +5543,8 @@ type OpaqueDeviceConfiguration struct { // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. Driver string `pulumi:"driver"` // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + // + // The length of the raw data must be smaller or equal to 10 Ki. Parameters interface{} `pulumi:"parameters"` } @@ -4794,6 +5568,8 @@ type OpaqueDeviceConfigurationArgs struct { // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. Driver pulumi.StringInput `pulumi:"driver"` // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + // + // The length of the raw data must be smaller or equal to 10 Ki. Parameters pulumi.Input `pulumi:"parameters"` } @@ -4885,6 +5661,8 @@ func (o OpaqueDeviceConfigurationOutput) Driver() pulumi.StringOutput { } // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. +// +// The length of the raw data must be smaller or equal to 10 Ki. func (o OpaqueDeviceConfigurationOutput) Parameters() pulumi.AnyOutput { return o.ApplyT(func(v OpaqueDeviceConfiguration) interface{} { return v.Parameters }).(pulumi.AnyOutput) } @@ -4928,6 +5706,8 @@ func (o OpaqueDeviceConfigurationPtrOutput) Driver() pulumi.StringPtrOutput { } // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. +// +// The length of the raw data must be smaller or equal to 10 Ki. func (o OpaqueDeviceConfigurationPtrOutput) Parameters() pulumi.AnyOutput { return o.ApplyT(func(v *OpaqueDeviceConfiguration) interface{} { if v == nil { @@ -4946,6 +5726,8 @@ type OpaqueDeviceConfigurationPatch struct { // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. Driver *string `pulumi:"driver"` // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + // + // The length of the raw data must be smaller or equal to 10 Ki. Parameters interface{} `pulumi:"parameters"` } @@ -4969,6 +5751,8 @@ type OpaqueDeviceConfigurationPatchArgs struct { // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. Driver pulumi.StringPtrInput `pulumi:"driver"` // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + // + // The length of the raw data must be smaller or equal to 10 Ki. Parameters pulumi.Input `pulumi:"parameters"` } @@ -5060,6 +5844,8 @@ func (o OpaqueDeviceConfigurationPatchOutput) Driver() pulumi.StringPtrOutput { } // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. +// +// The length of the raw data must be smaller or equal to 10 Ki. func (o OpaqueDeviceConfigurationPatchOutput) Parameters() pulumi.AnyOutput { return o.ApplyT(func(v OpaqueDeviceConfigurationPatch) interface{} { return v.Parameters }).(pulumi.AnyOutput) } @@ -5103,6 +5889,8 @@ func (o OpaqueDeviceConfigurationPatchPtrOutput) Driver() pulumi.StringPtrOutput } // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. +// +// The length of the raw data must be smaller or equal to 10 Ki. func (o OpaqueDeviceConfigurationPatchPtrOutput) Parameters() pulumi.AnyOutput { return o.ApplyT(func(v *OpaqueDeviceConfigurationPatch) interface{} { if v == nil { @@ -7016,6 +7804,8 @@ type ResourceClaimStatus struct { // // This is an alpha field and requires enabling the DRAControlPlaneController feature gate. DeallocationRequested *bool `pulumi:"deallocationRequested"` + // Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + Devices []AllocatedDeviceStatus `pulumi:"devices"` // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. // // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -7047,6 +7837,8 @@ type ResourceClaimStatusArgs struct { // // This is an alpha field and requires enabling the DRAControlPlaneController feature gate. DeallocationRequested pulumi.BoolPtrInput `pulumi:"deallocationRequested"` + // Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + Devices AllocatedDeviceStatusArrayInput `pulumi:"devices"` // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. // // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -7149,6 +7941,11 @@ func (o ResourceClaimStatusOutput) DeallocationRequested() pulumi.BoolPtrOutput return o.ApplyT(func(v ResourceClaimStatus) *bool { return v.DeallocationRequested }).(pulumi.BoolPtrOutput) } +// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. +func (o ResourceClaimStatusOutput) Devices() AllocatedDeviceStatusArrayOutput { + return o.ApplyT(func(v ResourceClaimStatus) []AllocatedDeviceStatus { return v.Devices }).(AllocatedDeviceStatusArrayOutput) +} + // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. // // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -7208,6 +8005,16 @@ func (o ResourceClaimStatusPtrOutput) DeallocationRequested() pulumi.BoolPtrOutp }).(pulumi.BoolPtrOutput) } +// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. +func (o ResourceClaimStatusPtrOutput) Devices() AllocatedDeviceStatusArrayOutput { + return o.ApplyT(func(v *ResourceClaimStatus) []AllocatedDeviceStatus { + if v == nil { + return nil + } + return v.Devices + }).(AllocatedDeviceStatusArrayOutput) +} + // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. // // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -7234,6 +8041,8 @@ type ResourceClaimStatusPatch struct { // // This is an alpha field and requires enabling the DRAControlPlaneController feature gate. DeallocationRequested *bool `pulumi:"deallocationRequested"` + // Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + Devices []AllocatedDeviceStatusPatch `pulumi:"devices"` // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. // // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -7265,6 +8074,8 @@ type ResourceClaimStatusPatchArgs struct { // // This is an alpha field and requires enabling the DRAControlPlaneController feature gate. DeallocationRequested pulumi.BoolPtrInput `pulumi:"deallocationRequested"` + // Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + Devices AllocatedDeviceStatusPatchArrayInput `pulumi:"devices"` // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. // // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -7367,6 +8178,11 @@ func (o ResourceClaimStatusPatchOutput) DeallocationRequested() pulumi.BoolPtrOu return o.ApplyT(func(v ResourceClaimStatusPatch) *bool { return v.DeallocationRequested }).(pulumi.BoolPtrOutput) } +// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. +func (o ResourceClaimStatusPatchOutput) Devices() AllocatedDeviceStatusPatchArrayOutput { + return o.ApplyT(func(v ResourceClaimStatusPatch) []AllocatedDeviceStatusPatch { return v.Devices }).(AllocatedDeviceStatusPatchArrayOutput) +} + // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. // // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -7426,6 +8242,16 @@ func (o ResourceClaimStatusPatchPtrOutput) DeallocationRequested() pulumi.BoolPt }).(pulumi.BoolPtrOutput) } +// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. +func (o ResourceClaimStatusPatchPtrOutput) Devices() AllocatedDeviceStatusPatchArrayOutput { + return o.ApplyT(func(v *ResourceClaimStatusPatch) []AllocatedDeviceStatusPatch { + if v == nil { + return nil + } + return v.Devices + }).(AllocatedDeviceStatusPatchArrayOutput) +} + // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. // // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -7759,7 +8585,7 @@ func (o ResourceClaimTemplatePatchTypeOutput) Spec() ResourceClaimTemplateSpecPa // ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. type ResourceClaimTemplateSpec struct { - // ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. Metadata *metav1.ObjectMeta `pulumi:"metadata"` // Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. Spec ResourceClaimSpec `pulumi:"spec"` @@ -7778,7 +8604,7 @@ type ResourceClaimTemplateSpecInput interface { // ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. type ResourceClaimTemplateSpecArgs struct { - // ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` // Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. Spec ResourceClaimSpecInput `pulumi:"spec"` @@ -7811,7 +8637,7 @@ func (o ResourceClaimTemplateSpecOutput) ToResourceClaimTemplateSpecOutputWithCo return o } -// ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. +// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. func (o ResourceClaimTemplateSpecOutput) Metadata() metav1.ObjectMetaPtrOutput { return o.ApplyT(func(v ResourceClaimTemplateSpec) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) } @@ -7823,7 +8649,7 @@ func (o ResourceClaimTemplateSpecOutput) Spec() ResourceClaimSpecOutput { // ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. type ResourceClaimTemplateSpecPatch struct { - // ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` // Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. Spec *ResourceClaimSpecPatch `pulumi:"spec"` @@ -7842,7 +8668,7 @@ type ResourceClaimTemplateSpecPatchInput interface { // ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. type ResourceClaimTemplateSpecPatchArgs struct { - // ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` // Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. Spec ResourceClaimSpecPatchPtrInput `pulumi:"spec"` @@ -7926,7 +8752,7 @@ func (o ResourceClaimTemplateSpecPatchOutput) ToResourceClaimTemplateSpecPatchPt }).(ResourceClaimTemplateSpecPatchPtrOutput) } -// ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. +// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. func (o ResourceClaimTemplateSpecPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { return o.ApplyT(func(v ResourceClaimTemplateSpecPatch) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) } @@ -7960,7 +8786,7 @@ func (o ResourceClaimTemplateSpecPatchPtrOutput) Elem() ResourceClaimTemplateSpe }).(ResourceClaimTemplateSpecPatchOutput) } -// ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. +// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. func (o ResourceClaimTemplateSpecPatchPtrOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { return o.ApplyT(func(v *ResourceClaimTemplateSpecPatch) *metav1.ObjectMetaPatch { if v == nil { @@ -8437,7 +9263,7 @@ func (o ResourceSliceTypeArrayOutput) Index(i pulumi.IntInput) ResourceSliceType } // ResourceSliceList is a collection of ResourceSlices. -type ResourceSliceList struct { +type ResourceSliceListType struct { // 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 ApiVersion *string `pulumi:"apiVersion"` // Items is the list of resource ResourceSlices. @@ -8446,21 +9272,23 @@ type ResourceSliceList struct { Kind *string `pulumi:"kind"` // Standard list metadata ListMeta *metav1.ListMeta `pulumi:"listMeta"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` } -// ResourceSliceListInput is an input type that accepts ResourceSliceListArgs and ResourceSliceListOutput values. -// You can construct a concrete instance of `ResourceSliceListInput` via: +// ResourceSliceListTypeInput is an input type that accepts ResourceSliceListTypeArgs and ResourceSliceListTypeOutput values. +// You can construct a concrete instance of `ResourceSliceListTypeInput` via: // -// ResourceSliceListArgs{...} -type ResourceSliceListInput interface { +// ResourceSliceListTypeArgs{...} +type ResourceSliceListTypeInput interface { pulumi.Input - ToResourceSliceListOutput() ResourceSliceListOutput - ToResourceSliceListOutputWithContext(context.Context) ResourceSliceListOutput + ToResourceSliceListTypeOutput() ResourceSliceListTypeOutput + ToResourceSliceListTypeOutputWithContext(context.Context) ResourceSliceListTypeOutput } // ResourceSliceList is a collection of ResourceSlices. -type ResourceSliceListArgs struct { +type ResourceSliceListTypeArgs struct { // 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 ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` // Items is the list of resource ResourceSlices. @@ -8469,53 +9297,60 @@ type ResourceSliceListArgs struct { Kind pulumi.StringPtrInput `pulumi:"kind"` // Standard list metadata ListMeta metav1.ListMetaPtrInput `pulumi:"listMeta"` + // Standard list metadata + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` } -func (ResourceSliceListArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourceSliceList)(nil)).Elem() +func (ResourceSliceListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceListType)(nil)).Elem() } -func (i ResourceSliceListArgs) ToResourceSliceListOutput() ResourceSliceListOutput { - return i.ToResourceSliceListOutputWithContext(context.Background()) +func (i ResourceSliceListTypeArgs) ToResourceSliceListTypeOutput() ResourceSliceListTypeOutput { + return i.ToResourceSliceListTypeOutputWithContext(context.Background()) } -func (i ResourceSliceListArgs) ToResourceSliceListOutputWithContext(ctx context.Context) ResourceSliceListOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListOutput) +func (i ResourceSliceListTypeArgs) ToResourceSliceListTypeOutputWithContext(ctx context.Context) ResourceSliceListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListTypeOutput) } // ResourceSliceList is a collection of ResourceSlices. -type ResourceSliceListOutput struct{ *pulumi.OutputState } +type ResourceSliceListTypeOutput struct{ *pulumi.OutputState } -func (ResourceSliceListOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourceSliceList)(nil)).Elem() +func (ResourceSliceListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceListType)(nil)).Elem() } -func (o ResourceSliceListOutput) ToResourceSliceListOutput() ResourceSliceListOutput { +func (o ResourceSliceListTypeOutput) ToResourceSliceListTypeOutput() ResourceSliceListTypeOutput { return o } -func (o ResourceSliceListOutput) ToResourceSliceListOutputWithContext(ctx context.Context) ResourceSliceListOutput { +func (o ResourceSliceListTypeOutput) ToResourceSliceListTypeOutputWithContext(ctx context.Context) ResourceSliceListTypeOutput { return o } // 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 -func (o ResourceSliceListOutput) ApiVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceSliceList) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +func (o ResourceSliceListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) } // Items is the list of resource ResourceSlices. -func (o ResourceSliceListOutput) Items() ResourceSliceTypeArrayOutput { - return o.ApplyT(func(v ResourceSliceList) []ResourceSliceType { return v.Items }).(ResourceSliceTypeArrayOutput) +func (o ResourceSliceListTypeOutput) Items() ResourceSliceTypeArrayOutput { + return o.ApplyT(func(v ResourceSliceListType) []ResourceSliceType { return v.Items }).(ResourceSliceTypeArrayOutput) } // 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 -func (o ResourceSliceListOutput) Kind() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceSliceList) *string { return v.Kind }).(pulumi.StringPtrOutput) +func (o ResourceSliceListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata +func (o ResourceSliceListTypeOutput) ListMeta() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v ResourceSliceListType) *metav1.ListMeta { return v.ListMeta }).(metav1.ListMetaPtrOutput) } // Standard list metadata -func (o ResourceSliceListOutput) ListMeta() metav1.ListMetaPtrOutput { - return o.ApplyT(func(v ResourceSliceList) *metav1.ListMeta { return v.ListMeta }).(metav1.ListMetaPtrOutput) +func (o ResourceSliceListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v ResourceSliceListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) } // 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. @@ -9070,6 +9905,10 @@ func (o ResourceSliceSpecPatchPtrOutput) Pool() ResourcePoolPatchPtrOutput { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AllocatedDeviceStatusInput)(nil)).Elem(), AllocatedDeviceStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocatedDeviceStatusArrayInput)(nil)).Elem(), AllocatedDeviceStatusArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocatedDeviceStatusPatchInput)(nil)).Elem(), AllocatedDeviceStatusPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocatedDeviceStatusPatchArrayInput)(nil)).Elem(), AllocatedDeviceStatusPatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationResultInput)(nil)).Elem(), AllocationResultArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationResultPtrInput)(nil)).Elem(), AllocationResultArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationResultPatchInput)(nil)).Elem(), AllocationResultPatchArgs{}) @@ -9132,6 +9971,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DeviceSelectorArrayInput)(nil)).Elem(), DeviceSelectorArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DeviceSelectorPatchInput)(nil)).Elem(), DeviceSelectorPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeviceSelectorPatchArrayInput)(nil)).Elem(), DeviceSelectorPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkDeviceDataInput)(nil)).Elem(), NetworkDeviceDataArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkDeviceDataPtrInput)(nil)).Elem(), NetworkDeviceDataArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkDeviceDataPatchInput)(nil)).Elem(), NetworkDeviceDataPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkDeviceDataPatchPtrInput)(nil)).Elem(), NetworkDeviceDataPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OpaqueDeviceConfigurationInput)(nil)).Elem(), OpaqueDeviceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OpaqueDeviceConfigurationPtrInput)(nil)).Elem(), OpaqueDeviceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OpaqueDeviceConfigurationPatchInput)(nil)).Elem(), OpaqueDeviceConfigurationPatchArgs{}) @@ -9178,11 +10021,15 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ResourcePoolPatchPtrInput)(nil)).Elem(), ResourcePoolPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceTypeInput)(nil)).Elem(), ResourceSliceTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceTypeArrayInput)(nil)).Elem(), ResourceSliceTypeArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListInput)(nil)).Elem(), ResourceSliceListArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListTypeInput)(nil)).Elem(), ResourceSliceListTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceSlicePatchTypeInput)(nil)).Elem(), ResourceSlicePatchTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceSpecInput)(nil)).Elem(), ResourceSliceSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceSpecPatchInput)(nil)).Elem(), ResourceSliceSpecPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceSpecPatchPtrInput)(nil)).Elem(), ResourceSliceSpecPatchArgs{}) + pulumi.RegisterOutputType(AllocatedDeviceStatusOutput{}) + pulumi.RegisterOutputType(AllocatedDeviceStatusArrayOutput{}) + pulumi.RegisterOutputType(AllocatedDeviceStatusPatchOutput{}) + pulumi.RegisterOutputType(AllocatedDeviceStatusPatchArrayOutput{}) pulumi.RegisterOutputType(AllocationResultOutput{}) pulumi.RegisterOutputType(AllocationResultPtrOutput{}) pulumi.RegisterOutputType(AllocationResultPatchOutput{}) @@ -9245,6 +10092,10 @@ func init() { pulumi.RegisterOutputType(DeviceSelectorArrayOutput{}) pulumi.RegisterOutputType(DeviceSelectorPatchOutput{}) pulumi.RegisterOutputType(DeviceSelectorPatchArrayOutput{}) + pulumi.RegisterOutputType(NetworkDeviceDataOutput{}) + pulumi.RegisterOutputType(NetworkDeviceDataPtrOutput{}) + pulumi.RegisterOutputType(NetworkDeviceDataPatchOutput{}) + pulumi.RegisterOutputType(NetworkDeviceDataPatchPtrOutput{}) pulumi.RegisterOutputType(OpaqueDeviceConfigurationOutput{}) pulumi.RegisterOutputType(OpaqueDeviceConfigurationPtrOutput{}) pulumi.RegisterOutputType(OpaqueDeviceConfigurationPatchOutput{}) @@ -9291,7 +10142,7 @@ func init() { pulumi.RegisterOutputType(ResourcePoolPatchPtrOutput{}) pulumi.RegisterOutputType(ResourceSliceTypeOutput{}) pulumi.RegisterOutputType(ResourceSliceTypeArrayOutput{}) - pulumi.RegisterOutputType(ResourceSliceListOutput{}) + pulumi.RegisterOutputType(ResourceSliceListTypeOutput{}) pulumi.RegisterOutputType(ResourceSlicePatchTypeOutput{}) pulumi.RegisterOutputType(ResourceSliceSpecOutput{}) pulumi.RegisterOutputType(ResourceSliceSpecPatchOutput{}) diff --git a/sdk/go/kubernetes/resource/v1alpha3/resourceClaim.go b/sdk/go/kubernetes/resource/v1alpha3/resourceClaim.go index ea0d014c8b..c83d9807a0 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/resourceClaim.go +++ b/sdk/go/kubernetes/resource/v1alpha3/resourceClaim.go @@ -50,6 +50,9 @@ func NewResourceClaim(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceClaim"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaim"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha3/resourceClaimPatch.go b/sdk/go/kubernetes/resource/v1alpha3/resourceClaimPatch.go index 6ce070ac16..ef4a0a9255 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/resourceClaimPatch.go +++ b/sdk/go/kubernetes/resource/v1alpha3/resourceClaimPatch.go @@ -52,6 +52,9 @@ func NewResourceClaimPatch(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha3/resourceClaimTemplate.go b/sdk/go/kubernetes/resource/v1alpha3/resourceClaimTemplate.go index 155a2fa508..5e390cfa7e 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/resourceClaimTemplate.go +++ b/sdk/go/kubernetes/resource/v1alpha3/resourceClaimTemplate.go @@ -50,6 +50,9 @@ func NewResourceClaimTemplate(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha3/resourceClaimTemplatePatch.go b/sdk/go/kubernetes/resource/v1alpha3/resourceClaimTemplatePatch.go index 740745e72a..44b90d6f02 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/resourceClaimTemplatePatch.go +++ b/sdk/go/kubernetes/resource/v1alpha3/resourceClaimTemplatePatch.go @@ -52,6 +52,9 @@ func NewResourceClaimTemplatePatch(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha3/resourceSlice.go b/sdk/go/kubernetes/resource/v1alpha3/resourceSlice.go index 35db99a5a7..19ae4bc96a 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/resourceSlice.go +++ b/sdk/go/kubernetes/resource/v1alpha3/resourceSlice.go @@ -55,6 +55,9 @@ func NewResourceSlice(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceSlice"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceSlice"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1alpha3/resourceSliceList.go b/sdk/go/kubernetes/resource/v1alpha3/resourceSliceList.go new file mode 100644 index 0000000000..3da4cba231 --- /dev/null +++ b/sdk/go/kubernetes/resource/v1alpha3/resourceSliceList.go @@ -0,0 +1,262 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1alpha3 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ResourceSliceList is a collection of ResourceSlices. +type ResourceSliceList struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Items is the list of resource ResourceSlices. + Items ResourceSliceTypeArrayOutput `pulumi:"items"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata + ListMeta metav1.ListMetaOutput `pulumi:"listMeta"` + // Standard list metadata + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewResourceSliceList registers a new resource with the given unique name, arguments, and options. +func NewResourceSliceList(ctx *pulumi.Context, + name string, args *ResourceSliceListArgs, opts ...pulumi.ResourceOption) (*ResourceSliceList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1alpha3") + args.Kind = pulumi.StringPtr("ResourceSliceList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceSliceList + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceSliceList gets an existing ResourceSliceList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceSliceList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceSliceListState, opts ...pulumi.ResourceOption) (*ResourceSliceList, error) { + var resource ResourceSliceList + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceSliceList resources. +type resourceSliceListState struct { +} + +type ResourceSliceListState struct { +} + +func (ResourceSliceListState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceSliceListState)(nil)).Elem() +} + +type resourceSliceListArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource ResourceSlices. + Items []ResourceSliceType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + ListMeta *metav1.ListMeta `pulumi:"listMeta"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a ResourceSliceList resource. +type ResourceSliceListArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // Items is the list of resource ResourceSlices. + Items ResourceSliceTypeArrayInput + // 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 + Kind pulumi.StringPtrInput + // Standard list metadata + ListMeta metav1.ListMetaPtrInput + // Standard list metadata + Metadata metav1.ListMetaPtrInput +} + +func (ResourceSliceListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceSliceListArgs)(nil)).Elem() +} + +type ResourceSliceListInput interface { + pulumi.Input + + ToResourceSliceListOutput() ResourceSliceListOutput + ToResourceSliceListOutputWithContext(ctx context.Context) ResourceSliceListOutput +} + +func (*ResourceSliceList) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSliceList)(nil)).Elem() +} + +func (i *ResourceSliceList) ToResourceSliceListOutput() ResourceSliceListOutput { + return i.ToResourceSliceListOutputWithContext(context.Background()) +} + +func (i *ResourceSliceList) ToResourceSliceListOutputWithContext(ctx context.Context) ResourceSliceListOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListOutput) +} + +// ResourceSliceListArrayInput is an input type that accepts ResourceSliceListArray and ResourceSliceListArrayOutput values. +// You can construct a concrete instance of `ResourceSliceListArrayInput` via: +// +// ResourceSliceListArray{ ResourceSliceListArgs{...} } +type ResourceSliceListArrayInput interface { + pulumi.Input + + ToResourceSliceListArrayOutput() ResourceSliceListArrayOutput + ToResourceSliceListArrayOutputWithContext(context.Context) ResourceSliceListArrayOutput +} + +type ResourceSliceListArray []ResourceSliceListInput + +func (ResourceSliceListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceSliceList)(nil)).Elem() +} + +func (i ResourceSliceListArray) ToResourceSliceListArrayOutput() ResourceSliceListArrayOutput { + return i.ToResourceSliceListArrayOutputWithContext(context.Background()) +} + +func (i ResourceSliceListArray) ToResourceSliceListArrayOutputWithContext(ctx context.Context) ResourceSliceListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListArrayOutput) +} + +// ResourceSliceListMapInput is an input type that accepts ResourceSliceListMap and ResourceSliceListMapOutput values. +// You can construct a concrete instance of `ResourceSliceListMapInput` via: +// +// ResourceSliceListMap{ "key": ResourceSliceListArgs{...} } +type ResourceSliceListMapInput interface { + pulumi.Input + + ToResourceSliceListMapOutput() ResourceSliceListMapOutput + ToResourceSliceListMapOutputWithContext(context.Context) ResourceSliceListMapOutput +} + +type ResourceSliceListMap map[string]ResourceSliceListInput + +func (ResourceSliceListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceSliceList)(nil)).Elem() +} + +func (i ResourceSliceListMap) ToResourceSliceListMapOutput() ResourceSliceListMapOutput { + return i.ToResourceSliceListMapOutputWithContext(context.Background()) +} + +func (i ResourceSliceListMap) ToResourceSliceListMapOutputWithContext(ctx context.Context) ResourceSliceListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListMapOutput) +} + +type ResourceSliceListOutput struct{ *pulumi.OutputState } + +func (ResourceSliceListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSliceList)(nil)).Elem() +} + +func (o ResourceSliceListOutput) ToResourceSliceListOutput() ResourceSliceListOutput { + return o +} + +func (o ResourceSliceListOutput) ToResourceSliceListOutputWithContext(ctx context.Context) ResourceSliceListOutput { + return o +} + +// 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 +func (o ResourceSliceListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceSliceList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Items is the list of resource ResourceSlices. +func (o ResourceSliceListOutput) Items() ResourceSliceTypeArrayOutput { + return o.ApplyT(func(v *ResourceSliceList) ResourceSliceTypeArrayOutput { return v.Items }).(ResourceSliceTypeArrayOutput) +} + +// 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 +func (o ResourceSliceListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceSliceList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata +func (o ResourceSliceListOutput) ListMeta() metav1.ListMetaOutput { + return o.ApplyT(func(v *ResourceSliceList) metav1.ListMetaOutput { return v.ListMeta }).(metav1.ListMetaOutput) +} + +// Standard list metadata +func (o ResourceSliceListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *ResourceSliceList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type ResourceSliceListArrayOutput struct{ *pulumi.OutputState } + +func (ResourceSliceListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceSliceList)(nil)).Elem() +} + +func (o ResourceSliceListArrayOutput) ToResourceSliceListArrayOutput() ResourceSliceListArrayOutput { + return o +} + +func (o ResourceSliceListArrayOutput) ToResourceSliceListArrayOutputWithContext(ctx context.Context) ResourceSliceListArrayOutput { + return o +} + +func (o ResourceSliceListArrayOutput) Index(i pulumi.IntInput) ResourceSliceListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceSliceList { + return vs[0].([]*ResourceSliceList)[vs[1].(int)] + }).(ResourceSliceListOutput) +} + +type ResourceSliceListMapOutput struct{ *pulumi.OutputState } + +func (ResourceSliceListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceSliceList)(nil)).Elem() +} + +func (o ResourceSliceListMapOutput) ToResourceSliceListMapOutput() ResourceSliceListMapOutput { + return o +} + +func (o ResourceSliceListMapOutput) ToResourceSliceListMapOutputWithContext(ctx context.Context) ResourceSliceListMapOutput { + return o +} + +func (o ResourceSliceListMapOutput) MapIndex(k pulumi.StringInput) ResourceSliceListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceSliceList { + return vs[0].(map[string]*ResourceSliceList)[vs[1].(string)] + }).(ResourceSliceListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListInput)(nil)).Elem(), &ResourceSliceList{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListArrayInput)(nil)).Elem(), ResourceSliceListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListMapInput)(nil)).Elem(), ResourceSliceListMap{}) + pulumi.RegisterOutputType(ResourceSliceListOutput{}) + pulumi.RegisterOutputType(ResourceSliceListArrayOutput{}) + pulumi.RegisterOutputType(ResourceSliceListMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1alpha3/resourceSlicePatch.go b/sdk/go/kubernetes/resource/v1alpha3/resourceSlicePatch.go index 2d03c67eae..d2c0295467 100644 --- a/sdk/go/kubernetes/resource/v1alpha3/resourceSlicePatch.go +++ b/sdk/go/kubernetes/resource/v1alpha3/resourceSlicePatch.go @@ -57,6 +57,9 @@ func NewResourceSlicePatch(ctx *pulumi.Context, { Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch"), }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch"), + }, }) opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/kubernetes/resource/v1beta1/deviceClass.go b/sdk/go/kubernetes/resource/v1beta1/deviceClass.go new file mode 100644 index 0000000000..7cb8375b00 --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/deviceClass.go @@ -0,0 +1,275 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// 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. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClass struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecOutput `pulumi:"spec"` +} + +// NewDeviceClass registers a new resource with the given unique name, arguments, and options. +func NewDeviceClass(ctx *pulumi.Context, + name string, args *DeviceClassArgs, opts ...pulumi.ResourceOption) (*DeviceClass, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Spec == nil { + return nil, errors.New("invalid value for required argument 'Spec'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("DeviceClass") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:DeviceClass"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeviceClass + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:DeviceClass", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeviceClass gets an existing DeviceClass resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeviceClass(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeviceClassState, opts ...pulumi.ResourceOption) (*DeviceClass, error) { + var resource DeviceClass + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:DeviceClass", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeviceClass resources. +type deviceClassState struct { +} + +type DeviceClassState struct { +} + +func (DeviceClassState) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassState)(nil)).Elem() +} + +type deviceClassArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a DeviceClass resource. +type DeviceClassArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecInput +} + +func (DeviceClassArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassArgs)(nil)).Elem() +} + +type DeviceClassInput interface { + pulumi.Input + + ToDeviceClassOutput() DeviceClassOutput + ToDeviceClassOutputWithContext(ctx context.Context) DeviceClassOutput +} + +func (*DeviceClass) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClass)(nil)).Elem() +} + +func (i *DeviceClass) ToDeviceClassOutput() DeviceClassOutput { + return i.ToDeviceClassOutputWithContext(context.Background()) +} + +func (i *DeviceClass) ToDeviceClassOutputWithContext(ctx context.Context) DeviceClassOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassOutput) +} + +// DeviceClassArrayInput is an input type that accepts DeviceClassArray and DeviceClassArrayOutput values. +// You can construct a concrete instance of `DeviceClassArrayInput` via: +// +// DeviceClassArray{ DeviceClassArgs{...} } +type DeviceClassArrayInput interface { + pulumi.Input + + ToDeviceClassArrayOutput() DeviceClassArrayOutput + ToDeviceClassArrayOutputWithContext(context.Context) DeviceClassArrayOutput +} + +type DeviceClassArray []DeviceClassInput + +func (DeviceClassArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClass)(nil)).Elem() +} + +func (i DeviceClassArray) ToDeviceClassArrayOutput() DeviceClassArrayOutput { + return i.ToDeviceClassArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassArray) ToDeviceClassArrayOutputWithContext(ctx context.Context) DeviceClassArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassArrayOutput) +} + +// DeviceClassMapInput is an input type that accepts DeviceClassMap and DeviceClassMapOutput values. +// You can construct a concrete instance of `DeviceClassMapInput` via: +// +// DeviceClassMap{ "key": DeviceClassArgs{...} } +type DeviceClassMapInput interface { + pulumi.Input + + ToDeviceClassMapOutput() DeviceClassMapOutput + ToDeviceClassMapOutputWithContext(context.Context) DeviceClassMapOutput +} + +type DeviceClassMap map[string]DeviceClassInput + +func (DeviceClassMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClass)(nil)).Elem() +} + +func (i DeviceClassMap) ToDeviceClassMapOutput() DeviceClassMapOutput { + return i.ToDeviceClassMapOutputWithContext(context.Background()) +} + +func (i DeviceClassMap) ToDeviceClassMapOutputWithContext(ctx context.Context) DeviceClassMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassMapOutput) +} + +type DeviceClassOutput struct{ *pulumi.OutputState } + +func (DeviceClassOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClass)(nil)).Elem() +} + +func (o DeviceClassOutput) ToDeviceClassOutput() DeviceClassOutput { + return o +} + +func (o DeviceClassOutput) ToDeviceClassOutputWithContext(ctx context.Context) DeviceClassOutput { + return o +} + +// 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 +func (o DeviceClassOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *DeviceClass) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// 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 +func (o DeviceClassOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *DeviceClass) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata +func (o DeviceClassOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *DeviceClass) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Spec defines what can be allocated and how to configure it. +// +// 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. +// +// Changing the spec automatically increments the metadata.generation number. +func (o DeviceClassOutput) Spec() DeviceClassSpecOutput { + return o.ApplyT(func(v *DeviceClass) DeviceClassSpecOutput { return v.Spec }).(DeviceClassSpecOutput) +} + +type DeviceClassArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClass)(nil)).Elem() +} + +func (o DeviceClassArrayOutput) ToDeviceClassArrayOutput() DeviceClassArrayOutput { + return o +} + +func (o DeviceClassArrayOutput) ToDeviceClassArrayOutputWithContext(ctx context.Context) DeviceClassArrayOutput { + return o +} + +func (o DeviceClassArrayOutput) Index(i pulumi.IntInput) DeviceClassOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DeviceClass { + return vs[0].([]*DeviceClass)[vs[1].(int)] + }).(DeviceClassOutput) +} + +type DeviceClassMapOutput struct{ *pulumi.OutputState } + +func (DeviceClassMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClass)(nil)).Elem() +} + +func (o DeviceClassMapOutput) ToDeviceClassMapOutput() DeviceClassMapOutput { + return o +} + +func (o DeviceClassMapOutput) ToDeviceClassMapOutputWithContext(ctx context.Context) DeviceClassMapOutput { + return o +} + +func (o DeviceClassMapOutput) MapIndex(k pulumi.StringInput) DeviceClassOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DeviceClass { + return vs[0].(map[string]*DeviceClass)[vs[1].(string)] + }).(DeviceClassOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassInput)(nil)).Elem(), &DeviceClass{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassArrayInput)(nil)).Elem(), DeviceClassArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassMapInput)(nil)).Elem(), DeviceClassMap{}) + pulumi.RegisterOutputType(DeviceClassOutput{}) + pulumi.RegisterOutputType(DeviceClassArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/deviceClassList.go b/sdk/go/kubernetes/resource/v1beta1/deviceClassList.go new file mode 100644 index 0000000000..783229dc0e --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/deviceClassList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// DeviceClassList is a collection of classes. +type DeviceClassList struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Items is the list of resource classes. + Items DeviceClassTypeArrayOutput `pulumi:"items"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewDeviceClassList registers a new resource with the given unique name, arguments, and options. +func NewDeviceClassList(ctx *pulumi.Context, + name string, args *DeviceClassListArgs, opts ...pulumi.ResourceOption) (*DeviceClassList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("DeviceClassList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeviceClassList + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:DeviceClassList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeviceClassList gets an existing DeviceClassList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeviceClassList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeviceClassListState, opts ...pulumi.ResourceOption) (*DeviceClassList, error) { + var resource DeviceClassList + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:DeviceClassList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeviceClassList resources. +type deviceClassListState struct { +} + +type DeviceClassListState struct { +} + +func (DeviceClassListState) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassListState)(nil)).Elem() +} + +type deviceClassListArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource classes. + Items []DeviceClassType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a DeviceClassList resource. +type DeviceClassListArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // Items is the list of resource classes. + Items DeviceClassTypeArrayInput + // 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 + Kind pulumi.StringPtrInput + // Standard list metadata + Metadata metav1.ListMetaPtrInput +} + +func (DeviceClassListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassListArgs)(nil)).Elem() +} + +type DeviceClassListInput interface { + pulumi.Input + + ToDeviceClassListOutput() DeviceClassListOutput + ToDeviceClassListOutputWithContext(ctx context.Context) DeviceClassListOutput +} + +func (*DeviceClassList) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassList)(nil)).Elem() +} + +func (i *DeviceClassList) ToDeviceClassListOutput() DeviceClassListOutput { + return i.ToDeviceClassListOutputWithContext(context.Background()) +} + +func (i *DeviceClassList) ToDeviceClassListOutputWithContext(ctx context.Context) DeviceClassListOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassListOutput) +} + +// DeviceClassListArrayInput is an input type that accepts DeviceClassListArray and DeviceClassListArrayOutput values. +// You can construct a concrete instance of `DeviceClassListArrayInput` via: +// +// DeviceClassListArray{ DeviceClassListArgs{...} } +type DeviceClassListArrayInput interface { + pulumi.Input + + ToDeviceClassListArrayOutput() DeviceClassListArrayOutput + ToDeviceClassListArrayOutputWithContext(context.Context) DeviceClassListArrayOutput +} + +type DeviceClassListArray []DeviceClassListInput + +func (DeviceClassListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClassList)(nil)).Elem() +} + +func (i DeviceClassListArray) ToDeviceClassListArrayOutput() DeviceClassListArrayOutput { + return i.ToDeviceClassListArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassListArray) ToDeviceClassListArrayOutputWithContext(ctx context.Context) DeviceClassListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassListArrayOutput) +} + +// DeviceClassListMapInput is an input type that accepts DeviceClassListMap and DeviceClassListMapOutput values. +// You can construct a concrete instance of `DeviceClassListMapInput` via: +// +// DeviceClassListMap{ "key": DeviceClassListArgs{...} } +type DeviceClassListMapInput interface { + pulumi.Input + + ToDeviceClassListMapOutput() DeviceClassListMapOutput + ToDeviceClassListMapOutputWithContext(context.Context) DeviceClassListMapOutput +} + +type DeviceClassListMap map[string]DeviceClassListInput + +func (DeviceClassListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClassList)(nil)).Elem() +} + +func (i DeviceClassListMap) ToDeviceClassListMapOutput() DeviceClassListMapOutput { + return i.ToDeviceClassListMapOutputWithContext(context.Background()) +} + +func (i DeviceClassListMap) ToDeviceClassListMapOutputWithContext(ctx context.Context) DeviceClassListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassListMapOutput) +} + +type DeviceClassListOutput struct{ *pulumi.OutputState } + +func (DeviceClassListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassList)(nil)).Elem() +} + +func (o DeviceClassListOutput) ToDeviceClassListOutput() DeviceClassListOutput { + return o +} + +func (o DeviceClassListOutput) ToDeviceClassListOutputWithContext(ctx context.Context) DeviceClassListOutput { + return o +} + +// 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 +func (o DeviceClassListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *DeviceClassList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Items is the list of resource classes. +func (o DeviceClassListOutput) Items() DeviceClassTypeArrayOutput { + return o.ApplyT(func(v *DeviceClassList) DeviceClassTypeArrayOutput { return v.Items }).(DeviceClassTypeArrayOutput) +} + +// 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 +func (o DeviceClassListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *DeviceClassList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata +func (o DeviceClassListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *DeviceClassList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type DeviceClassListArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClassList)(nil)).Elem() +} + +func (o DeviceClassListArrayOutput) ToDeviceClassListArrayOutput() DeviceClassListArrayOutput { + return o +} + +func (o DeviceClassListArrayOutput) ToDeviceClassListArrayOutputWithContext(ctx context.Context) DeviceClassListArrayOutput { + return o +} + +func (o DeviceClassListArrayOutput) Index(i pulumi.IntInput) DeviceClassListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DeviceClassList { + return vs[0].([]*DeviceClassList)[vs[1].(int)] + }).(DeviceClassListOutput) +} + +type DeviceClassListMapOutput struct{ *pulumi.OutputState } + +func (DeviceClassListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClassList)(nil)).Elem() +} + +func (o DeviceClassListMapOutput) ToDeviceClassListMapOutput() DeviceClassListMapOutput { + return o +} + +func (o DeviceClassListMapOutput) ToDeviceClassListMapOutputWithContext(ctx context.Context) DeviceClassListMapOutput { + return o +} + +func (o DeviceClassListMapOutput) MapIndex(k pulumi.StringInput) DeviceClassListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DeviceClassList { + return vs[0].(map[string]*DeviceClassList)[vs[1].(string)] + }).(DeviceClassListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassListInput)(nil)).Elem(), &DeviceClassList{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassListArrayInput)(nil)).Elem(), DeviceClassListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassListMapInput)(nil)).Elem(), DeviceClassListMap{}) + pulumi.RegisterOutputType(DeviceClassListOutput{}) + pulumi.RegisterOutputType(DeviceClassListArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassListMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/deviceClassPatch.go b/sdk/go/kubernetes/resource/v1beta1/deviceClassPatch.go new file mode 100644 index 0000000000..28c482361e --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/deviceClassPatch.go @@ -0,0 +1,277 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// 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. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassPatch struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecPatchPtrOutput `pulumi:"spec"` +} + +// NewDeviceClassPatch registers a new resource with the given unique name, arguments, and options. +func NewDeviceClassPatch(ctx *pulumi.Context, + name string, args *DeviceClassPatchArgs, opts ...pulumi.ResourceOption) (*DeviceClassPatch, error) { + if args == nil { + args = &DeviceClassPatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("DeviceClass") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:DeviceClassPatch"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeviceClassPatch + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeviceClassPatch gets an existing DeviceClassPatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeviceClassPatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeviceClassPatchState, opts ...pulumi.ResourceOption) (*DeviceClassPatch, error) { + var resource DeviceClassPatch + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeviceClassPatch resources. +type deviceClassPatchState struct { +} + +type DeviceClassPatchState struct { +} + +func (DeviceClassPatchState) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassPatchState)(nil)).Elem() +} + +type deviceClassPatchArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec *DeviceClassSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a DeviceClassPatch resource. +type DeviceClassPatchArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecPatchPtrInput +} + +func (DeviceClassPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassPatchArgs)(nil)).Elem() +} + +type DeviceClassPatchInput interface { + pulumi.Input + + ToDeviceClassPatchOutput() DeviceClassPatchOutput + ToDeviceClassPatchOutputWithContext(ctx context.Context) DeviceClassPatchOutput +} + +func (*DeviceClassPatch) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassPatch)(nil)).Elem() +} + +func (i *DeviceClassPatch) ToDeviceClassPatchOutput() DeviceClassPatchOutput { + return i.ToDeviceClassPatchOutputWithContext(context.Background()) +} + +func (i *DeviceClassPatch) ToDeviceClassPatchOutputWithContext(ctx context.Context) DeviceClassPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassPatchOutput) +} + +// DeviceClassPatchArrayInput is an input type that accepts DeviceClassPatchArray and DeviceClassPatchArrayOutput values. +// You can construct a concrete instance of `DeviceClassPatchArrayInput` via: +// +// DeviceClassPatchArray{ DeviceClassPatchArgs{...} } +type DeviceClassPatchArrayInput interface { + pulumi.Input + + ToDeviceClassPatchArrayOutput() DeviceClassPatchArrayOutput + ToDeviceClassPatchArrayOutputWithContext(context.Context) DeviceClassPatchArrayOutput +} + +type DeviceClassPatchArray []DeviceClassPatchInput + +func (DeviceClassPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClassPatch)(nil)).Elem() +} + +func (i DeviceClassPatchArray) ToDeviceClassPatchArrayOutput() DeviceClassPatchArrayOutput { + return i.ToDeviceClassPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassPatchArray) ToDeviceClassPatchArrayOutputWithContext(ctx context.Context) DeviceClassPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassPatchArrayOutput) +} + +// DeviceClassPatchMapInput is an input type that accepts DeviceClassPatchMap and DeviceClassPatchMapOutput values. +// You can construct a concrete instance of `DeviceClassPatchMapInput` via: +// +// DeviceClassPatchMap{ "key": DeviceClassPatchArgs{...} } +type DeviceClassPatchMapInput interface { + pulumi.Input + + ToDeviceClassPatchMapOutput() DeviceClassPatchMapOutput + ToDeviceClassPatchMapOutputWithContext(context.Context) DeviceClassPatchMapOutput +} + +type DeviceClassPatchMap map[string]DeviceClassPatchInput + +func (DeviceClassPatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClassPatch)(nil)).Elem() +} + +func (i DeviceClassPatchMap) ToDeviceClassPatchMapOutput() DeviceClassPatchMapOutput { + return i.ToDeviceClassPatchMapOutputWithContext(context.Background()) +} + +func (i DeviceClassPatchMap) ToDeviceClassPatchMapOutputWithContext(ctx context.Context) DeviceClassPatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassPatchMapOutput) +} + +type DeviceClassPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClassPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassPatch)(nil)).Elem() +} + +func (o DeviceClassPatchOutput) ToDeviceClassPatchOutput() DeviceClassPatchOutput { + return o +} + +func (o DeviceClassPatchOutput) ToDeviceClassPatchOutputWithContext(ctx context.Context) DeviceClassPatchOutput { + return o +} + +// 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 +func (o DeviceClassPatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeviceClassPatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o DeviceClassPatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeviceClassPatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o DeviceClassPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *DeviceClassPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Spec defines what can be allocated and how to configure it. +// +// 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. +// +// Changing the spec automatically increments the metadata.generation number. +func (o DeviceClassPatchOutput) Spec() DeviceClassSpecPatchPtrOutput { + return o.ApplyT(func(v *DeviceClassPatch) DeviceClassSpecPatchPtrOutput { return v.Spec }).(DeviceClassSpecPatchPtrOutput) +} + +type DeviceClassPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClassPatch)(nil)).Elem() +} + +func (o DeviceClassPatchArrayOutput) ToDeviceClassPatchArrayOutput() DeviceClassPatchArrayOutput { + return o +} + +func (o DeviceClassPatchArrayOutput) ToDeviceClassPatchArrayOutputWithContext(ctx context.Context) DeviceClassPatchArrayOutput { + return o +} + +func (o DeviceClassPatchArrayOutput) Index(i pulumi.IntInput) DeviceClassPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DeviceClassPatch { + return vs[0].([]*DeviceClassPatch)[vs[1].(int)] + }).(DeviceClassPatchOutput) +} + +type DeviceClassPatchMapOutput struct{ *pulumi.OutputState } + +func (DeviceClassPatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClassPatch)(nil)).Elem() +} + +func (o DeviceClassPatchMapOutput) ToDeviceClassPatchMapOutput() DeviceClassPatchMapOutput { + return o +} + +func (o DeviceClassPatchMapOutput) ToDeviceClassPatchMapOutputWithContext(ctx context.Context) DeviceClassPatchMapOutput { + return o +} + +func (o DeviceClassPatchMapOutput) MapIndex(k pulumi.StringInput) DeviceClassPatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DeviceClassPatch { + return vs[0].(map[string]*DeviceClassPatch)[vs[1].(string)] + }).(DeviceClassPatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassPatchInput)(nil)).Elem(), &DeviceClassPatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassPatchArrayInput)(nil)).Elem(), DeviceClassPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassPatchMapInput)(nil)).Elem(), DeviceClassPatchMap{}) + pulumi.RegisterOutputType(DeviceClassPatchOutput{}) + pulumi.RegisterOutputType(DeviceClassPatchArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassPatchMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/init.go b/sdk/go/kubernetes/resource/v1beta1/init.go new file mode 100644 index 0000000000..af497e439b --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/init.go @@ -0,0 +1,66 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "kubernetes:resource.k8s.io/v1beta1:DeviceClass": + r = &DeviceClass{} + case "kubernetes:resource.k8s.io/v1beta1:DeviceClassList": + r = &DeviceClassList{} + case "kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch": + r = &DeviceClassPatch{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaim": + r = &ResourceClaim{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimList": + r = &ResourceClaimList{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch": + r = &ResourceClaimPatch{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate": + r = &ResourceClaimTemplate{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList": + r = &ResourceClaimTemplateList{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch": + r = &ResourceClaimTemplatePatch{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceSlice": + r = &ResourceSlice{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceSliceList": + r = &ResourceSliceList{} + case "kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch": + r = &ResourceSlicePatch{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := utilities.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "kubernetes", + "resource.k8s.io/v1beta1", + &module{version}, + ) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/pulumiTypes.go b/sdk/go/kubernetes/resource/v1beta1/pulumiTypes.go new file mode 100644 index 0000000000..e2b3907847 --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/pulumiTypes.go @@ -0,0 +1,8952 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = utilities.GetEnvOrDefault + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatus struct { + // 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. + Conditions []metav1.Condition `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data interface{} `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device string `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver string `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData *NetworkDeviceData `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool string `pulumi:"pool"` +} + +// AllocatedDeviceStatusInput is an input type that accepts AllocatedDeviceStatusArgs and AllocatedDeviceStatusOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusInput` via: +// +// AllocatedDeviceStatusArgs{...} +type AllocatedDeviceStatusInput interface { + pulumi.Input + + ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput + ToAllocatedDeviceStatusOutputWithContext(context.Context) AllocatedDeviceStatusOutput +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusArgs struct { + // 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. + Conditions metav1.ConditionArrayInput `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data pulumi.Input `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringInput `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver pulumi.StringInput `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData NetworkDeviceDataPtrInput `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringInput `pulumi:"pool"` +} + +func (AllocatedDeviceStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatus)(nil)).Elem() +} + +func (i AllocatedDeviceStatusArgs) ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput { + return i.ToAllocatedDeviceStatusOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusArgs) ToAllocatedDeviceStatusOutputWithContext(ctx context.Context) AllocatedDeviceStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusOutput) +} + +// AllocatedDeviceStatusArrayInput is an input type that accepts AllocatedDeviceStatusArray and AllocatedDeviceStatusArrayOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusArrayInput` via: +// +// AllocatedDeviceStatusArray{ AllocatedDeviceStatusArgs{...} } +type AllocatedDeviceStatusArrayInput interface { + pulumi.Input + + ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput + ToAllocatedDeviceStatusArrayOutputWithContext(context.Context) AllocatedDeviceStatusArrayOutput +} + +type AllocatedDeviceStatusArray []AllocatedDeviceStatusInput + +func (AllocatedDeviceStatusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatus)(nil)).Elem() +} + +func (i AllocatedDeviceStatusArray) ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput { + return i.ToAllocatedDeviceStatusArrayOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusArray) ToAllocatedDeviceStatusArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusArrayOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatus)(nil)).Elem() +} + +func (o AllocatedDeviceStatusOutput) ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput { + return o +} + +func (o AllocatedDeviceStatusOutput) ToAllocatedDeviceStatusOutputWithContext(ctx context.Context) AllocatedDeviceStatusOutput { + return o +} + +// 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. +func (o AllocatedDeviceStatusOutput) Conditions() metav1.ConditionArrayOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) []metav1.Condition { return v.Conditions }).(metav1.ConditionArrayOutput) +} + +// Data contains arbitrary driver-specific data. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o AllocatedDeviceStatusOutput) Data() pulumi.AnyOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) interface{} { return v.Data }).(pulumi.AnyOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o AllocatedDeviceStatusOutput) Device() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Device }).(pulumi.StringOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o AllocatedDeviceStatusOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Driver }).(pulumi.StringOutput) +} + +// NetworkData contains network-related information specific to the device. +func (o AllocatedDeviceStatusOutput) NetworkData() NetworkDeviceDataPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) *NetworkDeviceData { return v.NetworkData }).(NetworkDeviceDataPtrOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o AllocatedDeviceStatusOutput) Pool() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Pool }).(pulumi.StringOutput) +} + +type AllocatedDeviceStatusArrayOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatus)(nil)).Elem() +} + +func (o AllocatedDeviceStatusArrayOutput) ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput { + return o +} + +func (o AllocatedDeviceStatusArrayOutput) ToAllocatedDeviceStatusArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusArrayOutput { + return o +} + +func (o AllocatedDeviceStatusArrayOutput) Index(i pulumi.IntInput) AllocatedDeviceStatusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AllocatedDeviceStatus { + return vs[0].([]AllocatedDeviceStatus)[vs[1].(int)] + }).(AllocatedDeviceStatusOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusPatch struct { + // 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. + Conditions []metav1.ConditionPatch `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data interface{} `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device *string `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver *string `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData *NetworkDeviceDataPatch `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool *string `pulumi:"pool"` +} + +// AllocatedDeviceStatusPatchInput is an input type that accepts AllocatedDeviceStatusPatchArgs and AllocatedDeviceStatusPatchOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusPatchInput` via: +// +// AllocatedDeviceStatusPatchArgs{...} +type AllocatedDeviceStatusPatchInput interface { + pulumi.Input + + ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput + ToAllocatedDeviceStatusPatchOutputWithContext(context.Context) AllocatedDeviceStatusPatchOutput +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusPatchArgs struct { + // 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. + Conditions metav1.ConditionPatchArrayInput `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data pulumi.Input `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringPtrInput `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver pulumi.StringPtrInput `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData NetworkDeviceDataPatchPtrInput `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringPtrInput `pulumi:"pool"` +} + +func (AllocatedDeviceStatusPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (i AllocatedDeviceStatusPatchArgs) ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput { + return i.ToAllocatedDeviceStatusPatchOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusPatchArgs) ToAllocatedDeviceStatusPatchOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusPatchOutput) +} + +// AllocatedDeviceStatusPatchArrayInput is an input type that accepts AllocatedDeviceStatusPatchArray and AllocatedDeviceStatusPatchArrayOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusPatchArrayInput` via: +// +// AllocatedDeviceStatusPatchArray{ AllocatedDeviceStatusPatchArgs{...} } +type AllocatedDeviceStatusPatchArrayInput interface { + pulumi.Input + + ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput + ToAllocatedDeviceStatusPatchArrayOutputWithContext(context.Context) AllocatedDeviceStatusPatchArrayOutput +} + +type AllocatedDeviceStatusPatchArray []AllocatedDeviceStatusPatchInput + +func (AllocatedDeviceStatusPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (i AllocatedDeviceStatusPatchArray) ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput { + return i.ToAllocatedDeviceStatusPatchArrayOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusPatchArray) ToAllocatedDeviceStatusPatchArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusPatchArrayOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +type AllocatedDeviceStatusPatchOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (o AllocatedDeviceStatusPatchOutput) ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput { + return o +} + +func (o AllocatedDeviceStatusPatchOutput) ToAllocatedDeviceStatusPatchOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchOutput { + return o +} + +// 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. +func (o AllocatedDeviceStatusPatchOutput) Conditions() metav1.ConditionPatchArrayOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) []metav1.ConditionPatch { return v.Conditions }).(metav1.ConditionPatchArrayOutput) +} + +// Data contains arbitrary driver-specific data. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o AllocatedDeviceStatusPatchOutput) Data() pulumi.AnyOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) interface{} { return v.Data }).(pulumi.AnyOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o AllocatedDeviceStatusPatchOutput) Device() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Device }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o AllocatedDeviceStatusPatchOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Driver }).(pulumi.StringPtrOutput) +} + +// NetworkData contains network-related information specific to the device. +func (o AllocatedDeviceStatusPatchOutput) NetworkData() NetworkDeviceDataPatchPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *NetworkDeviceDataPatch { return v.NetworkData }).(NetworkDeviceDataPatchPtrOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o AllocatedDeviceStatusPatchOutput) Pool() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Pool }).(pulumi.StringPtrOutput) +} + +type AllocatedDeviceStatusPatchArrayOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (o AllocatedDeviceStatusPatchArrayOutput) ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput { + return o +} + +func (o AllocatedDeviceStatusPatchArrayOutput) ToAllocatedDeviceStatusPatchArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchArrayOutput { + return o +} + +func (o AllocatedDeviceStatusPatchArrayOutput) Index(i pulumi.IntInput) AllocatedDeviceStatusPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AllocatedDeviceStatusPatch { + return vs[0].([]AllocatedDeviceStatusPatch)[vs[1].(int)] + }).(AllocatedDeviceStatusPatchOutput) +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResult struct { + // Devices is the result of allocating devices. + Devices *DeviceAllocationResult `pulumi:"devices"` + // NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + NodeSelector *corev1.NodeSelector `pulumi:"nodeSelector"` +} + +// AllocationResultInput is an input type that accepts AllocationResultArgs and AllocationResultOutput values. +// You can construct a concrete instance of `AllocationResultInput` via: +// +// AllocationResultArgs{...} +type AllocationResultInput interface { + pulumi.Input + + ToAllocationResultOutput() AllocationResultOutput + ToAllocationResultOutputWithContext(context.Context) AllocationResultOutput +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultArgs struct { + // Devices is the result of allocating devices. + Devices DeviceAllocationResultPtrInput `pulumi:"devices"` + // NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + NodeSelector corev1.NodeSelectorPtrInput `pulumi:"nodeSelector"` +} + +func (AllocationResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocationResult)(nil)).Elem() +} + +func (i AllocationResultArgs) ToAllocationResultOutput() AllocationResultOutput { + return i.ToAllocationResultOutputWithContext(context.Background()) +} + +func (i AllocationResultArgs) ToAllocationResultOutputWithContext(ctx context.Context) AllocationResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultOutput) +} + +func (i AllocationResultArgs) ToAllocationResultPtrOutput() AllocationResultPtrOutput { + return i.ToAllocationResultPtrOutputWithContext(context.Background()) +} + +func (i AllocationResultArgs) ToAllocationResultPtrOutputWithContext(ctx context.Context) AllocationResultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultOutput).ToAllocationResultPtrOutputWithContext(ctx) +} + +// AllocationResultPtrInput is an input type that accepts AllocationResultArgs, AllocationResultPtr and AllocationResultPtrOutput values. +// You can construct a concrete instance of `AllocationResultPtrInput` via: +// +// AllocationResultArgs{...} +// +// or: +// +// nil +type AllocationResultPtrInput interface { + pulumi.Input + + ToAllocationResultPtrOutput() AllocationResultPtrOutput + ToAllocationResultPtrOutputWithContext(context.Context) AllocationResultPtrOutput +} + +type allocationResultPtrType AllocationResultArgs + +func AllocationResultPtr(v *AllocationResultArgs) AllocationResultPtrInput { + return (*allocationResultPtrType)(v) +} + +func (*allocationResultPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AllocationResult)(nil)).Elem() +} + +func (i *allocationResultPtrType) ToAllocationResultPtrOutput() AllocationResultPtrOutput { + return i.ToAllocationResultPtrOutputWithContext(context.Background()) +} + +func (i *allocationResultPtrType) ToAllocationResultPtrOutputWithContext(ctx context.Context) AllocationResultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultPtrOutput) +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultOutput struct{ *pulumi.OutputState } + +func (AllocationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocationResult)(nil)).Elem() +} + +func (o AllocationResultOutput) ToAllocationResultOutput() AllocationResultOutput { + return o +} + +func (o AllocationResultOutput) ToAllocationResultOutputWithContext(ctx context.Context) AllocationResultOutput { + return o +} + +func (o AllocationResultOutput) ToAllocationResultPtrOutput() AllocationResultPtrOutput { + return o.ToAllocationResultPtrOutputWithContext(context.Background()) +} + +func (o AllocationResultOutput) ToAllocationResultPtrOutputWithContext(ctx context.Context) AllocationResultPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AllocationResult) *AllocationResult { + return &v + }).(AllocationResultPtrOutput) +} + +// Devices is the result of allocating devices. +func (o AllocationResultOutput) Devices() DeviceAllocationResultPtrOutput { + return o.ApplyT(func(v AllocationResult) *DeviceAllocationResult { return v.Devices }).(DeviceAllocationResultPtrOutput) +} + +// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. +func (o AllocationResultOutput) NodeSelector() corev1.NodeSelectorPtrOutput { + return o.ApplyT(func(v AllocationResult) *corev1.NodeSelector { return v.NodeSelector }).(corev1.NodeSelectorPtrOutput) +} + +type AllocationResultPtrOutput struct{ *pulumi.OutputState } + +func (AllocationResultPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AllocationResult)(nil)).Elem() +} + +func (o AllocationResultPtrOutput) ToAllocationResultPtrOutput() AllocationResultPtrOutput { + return o +} + +func (o AllocationResultPtrOutput) ToAllocationResultPtrOutputWithContext(ctx context.Context) AllocationResultPtrOutput { + return o +} + +func (o AllocationResultPtrOutput) Elem() AllocationResultOutput { + return o.ApplyT(func(v *AllocationResult) AllocationResult { + if v != nil { + return *v + } + var ret AllocationResult + return ret + }).(AllocationResultOutput) +} + +// Devices is the result of allocating devices. +func (o AllocationResultPtrOutput) Devices() DeviceAllocationResultPtrOutput { + return o.ApplyT(func(v *AllocationResult) *DeviceAllocationResult { + if v == nil { + return nil + } + return v.Devices + }).(DeviceAllocationResultPtrOutput) +} + +// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. +func (o AllocationResultPtrOutput) NodeSelector() corev1.NodeSelectorPtrOutput { + return o.ApplyT(func(v *AllocationResult) *corev1.NodeSelector { + if v == nil { + return nil + } + return v.NodeSelector + }).(corev1.NodeSelectorPtrOutput) +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultPatch struct { + // Devices is the result of allocating devices. + Devices *DeviceAllocationResultPatch `pulumi:"devices"` + // NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + NodeSelector *corev1.NodeSelectorPatch `pulumi:"nodeSelector"` +} + +// AllocationResultPatchInput is an input type that accepts AllocationResultPatchArgs and AllocationResultPatchOutput values. +// You can construct a concrete instance of `AllocationResultPatchInput` via: +// +// AllocationResultPatchArgs{...} +type AllocationResultPatchInput interface { + pulumi.Input + + ToAllocationResultPatchOutput() AllocationResultPatchOutput + ToAllocationResultPatchOutputWithContext(context.Context) AllocationResultPatchOutput +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultPatchArgs struct { + // Devices is the result of allocating devices. + Devices DeviceAllocationResultPatchPtrInput `pulumi:"devices"` + // NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + NodeSelector corev1.NodeSelectorPatchPtrInput `pulumi:"nodeSelector"` +} + +func (AllocationResultPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocationResultPatch)(nil)).Elem() +} + +func (i AllocationResultPatchArgs) ToAllocationResultPatchOutput() AllocationResultPatchOutput { + return i.ToAllocationResultPatchOutputWithContext(context.Background()) +} + +func (i AllocationResultPatchArgs) ToAllocationResultPatchOutputWithContext(ctx context.Context) AllocationResultPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultPatchOutput) +} + +func (i AllocationResultPatchArgs) ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput { + return i.ToAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (i AllocationResultPatchArgs) ToAllocationResultPatchPtrOutputWithContext(ctx context.Context) AllocationResultPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultPatchOutput).ToAllocationResultPatchPtrOutputWithContext(ctx) +} + +// AllocationResultPatchPtrInput is an input type that accepts AllocationResultPatchArgs, AllocationResultPatchPtr and AllocationResultPatchPtrOutput values. +// You can construct a concrete instance of `AllocationResultPatchPtrInput` via: +// +// AllocationResultPatchArgs{...} +// +// or: +// +// nil +type AllocationResultPatchPtrInput interface { + pulumi.Input + + ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput + ToAllocationResultPatchPtrOutputWithContext(context.Context) AllocationResultPatchPtrOutput +} + +type allocationResultPatchPtrType AllocationResultPatchArgs + +func AllocationResultPatchPtr(v *AllocationResultPatchArgs) AllocationResultPatchPtrInput { + return (*allocationResultPatchPtrType)(v) +} + +func (*allocationResultPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AllocationResultPatch)(nil)).Elem() +} + +func (i *allocationResultPatchPtrType) ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput { + return i.ToAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (i *allocationResultPatchPtrType) ToAllocationResultPatchPtrOutputWithContext(ctx context.Context) AllocationResultPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultPatchPtrOutput) +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultPatchOutput struct{ *pulumi.OutputState } + +func (AllocationResultPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocationResultPatch)(nil)).Elem() +} + +func (o AllocationResultPatchOutput) ToAllocationResultPatchOutput() AllocationResultPatchOutput { + return o +} + +func (o AllocationResultPatchOutput) ToAllocationResultPatchOutputWithContext(ctx context.Context) AllocationResultPatchOutput { + return o +} + +func (o AllocationResultPatchOutput) ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput { + return o.ToAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (o AllocationResultPatchOutput) ToAllocationResultPatchPtrOutputWithContext(ctx context.Context) AllocationResultPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AllocationResultPatch) *AllocationResultPatch { + return &v + }).(AllocationResultPatchPtrOutput) +} + +// Devices is the result of allocating devices. +func (o AllocationResultPatchOutput) Devices() DeviceAllocationResultPatchPtrOutput { + return o.ApplyT(func(v AllocationResultPatch) *DeviceAllocationResultPatch { return v.Devices }).(DeviceAllocationResultPatchPtrOutput) +} + +// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. +func (o AllocationResultPatchOutput) NodeSelector() corev1.NodeSelectorPatchPtrOutput { + return o.ApplyT(func(v AllocationResultPatch) *corev1.NodeSelectorPatch { return v.NodeSelector }).(corev1.NodeSelectorPatchPtrOutput) +} + +type AllocationResultPatchPtrOutput struct{ *pulumi.OutputState } + +func (AllocationResultPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AllocationResultPatch)(nil)).Elem() +} + +func (o AllocationResultPatchPtrOutput) ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput { + return o +} + +func (o AllocationResultPatchPtrOutput) ToAllocationResultPatchPtrOutputWithContext(ctx context.Context) AllocationResultPatchPtrOutput { + return o +} + +func (o AllocationResultPatchPtrOutput) Elem() AllocationResultPatchOutput { + return o.ApplyT(func(v *AllocationResultPatch) AllocationResultPatch { + if v != nil { + return *v + } + var ret AllocationResultPatch + return ret + }).(AllocationResultPatchOutput) +} + +// Devices is the result of allocating devices. +func (o AllocationResultPatchPtrOutput) Devices() DeviceAllocationResultPatchPtrOutput { + return o.ApplyT(func(v *AllocationResultPatch) *DeviceAllocationResultPatch { + if v == nil { + return nil + } + return v.Devices + }).(DeviceAllocationResultPatchPtrOutput) +} + +// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. +func (o AllocationResultPatchPtrOutput) NodeSelector() corev1.NodeSelectorPatchPtrOutput { + return o.ApplyT(func(v *AllocationResultPatch) *corev1.NodeSelectorPatch { + if v == nil { + return nil + } + return v.NodeSelector + }).(corev1.NodeSelectorPatchPtrOutput) +} + +// BasicDevice defines one device instance. +type BasicDevice struct { + // Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Attributes map[string]DeviceAttribute `pulumi:"attributes"` + // Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Capacity map[string]DeviceCapacity `pulumi:"capacity"` +} + +// BasicDeviceInput is an input type that accepts BasicDeviceArgs and BasicDeviceOutput values. +// You can construct a concrete instance of `BasicDeviceInput` via: +// +// BasicDeviceArgs{...} +type BasicDeviceInput interface { + pulumi.Input + + ToBasicDeviceOutput() BasicDeviceOutput + ToBasicDeviceOutputWithContext(context.Context) BasicDeviceOutput +} + +// BasicDevice defines one device instance. +type BasicDeviceArgs struct { + // Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Attributes DeviceAttributeMapInput `pulumi:"attributes"` + // Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Capacity DeviceCapacityMapInput `pulumi:"capacity"` +} + +func (BasicDeviceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BasicDevice)(nil)).Elem() +} + +func (i BasicDeviceArgs) ToBasicDeviceOutput() BasicDeviceOutput { + return i.ToBasicDeviceOutputWithContext(context.Background()) +} + +func (i BasicDeviceArgs) ToBasicDeviceOutputWithContext(ctx context.Context) BasicDeviceOutput { + return pulumi.ToOutputWithContext(ctx, i).(BasicDeviceOutput) +} + +func (i BasicDeviceArgs) ToBasicDevicePtrOutput() BasicDevicePtrOutput { + return i.ToBasicDevicePtrOutputWithContext(context.Background()) +} + +func (i BasicDeviceArgs) ToBasicDevicePtrOutputWithContext(ctx context.Context) BasicDevicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BasicDeviceOutput).ToBasicDevicePtrOutputWithContext(ctx) +} + +// BasicDevicePtrInput is an input type that accepts BasicDeviceArgs, BasicDevicePtr and BasicDevicePtrOutput values. +// You can construct a concrete instance of `BasicDevicePtrInput` via: +// +// BasicDeviceArgs{...} +// +// or: +// +// nil +type BasicDevicePtrInput interface { + pulumi.Input + + ToBasicDevicePtrOutput() BasicDevicePtrOutput + ToBasicDevicePtrOutputWithContext(context.Context) BasicDevicePtrOutput +} + +type basicDevicePtrType BasicDeviceArgs + +func BasicDevicePtr(v *BasicDeviceArgs) BasicDevicePtrInput { + return (*basicDevicePtrType)(v) +} + +func (*basicDevicePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BasicDevice)(nil)).Elem() +} + +func (i *basicDevicePtrType) ToBasicDevicePtrOutput() BasicDevicePtrOutput { + return i.ToBasicDevicePtrOutputWithContext(context.Background()) +} + +func (i *basicDevicePtrType) ToBasicDevicePtrOutputWithContext(ctx context.Context) BasicDevicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BasicDevicePtrOutput) +} + +// BasicDevice defines one device instance. +type BasicDeviceOutput struct{ *pulumi.OutputState } + +func (BasicDeviceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BasicDevice)(nil)).Elem() +} + +func (o BasicDeviceOutput) ToBasicDeviceOutput() BasicDeviceOutput { + return o +} + +func (o BasicDeviceOutput) ToBasicDeviceOutputWithContext(ctx context.Context) BasicDeviceOutput { + return o +} + +func (o BasicDeviceOutput) ToBasicDevicePtrOutput() BasicDevicePtrOutput { + return o.ToBasicDevicePtrOutputWithContext(context.Background()) +} + +func (o BasicDeviceOutput) ToBasicDevicePtrOutputWithContext(ctx context.Context) BasicDevicePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BasicDevice) *BasicDevice { + return &v + }).(BasicDevicePtrOutput) +} + +// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o BasicDeviceOutput) Attributes() DeviceAttributeMapOutput { + return o.ApplyT(func(v BasicDevice) map[string]DeviceAttribute { return v.Attributes }).(DeviceAttributeMapOutput) +} + +// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o BasicDeviceOutput) Capacity() DeviceCapacityMapOutput { + return o.ApplyT(func(v BasicDevice) map[string]DeviceCapacity { return v.Capacity }).(DeviceCapacityMapOutput) +} + +type BasicDevicePtrOutput struct{ *pulumi.OutputState } + +func (BasicDevicePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BasicDevice)(nil)).Elem() +} + +func (o BasicDevicePtrOutput) ToBasicDevicePtrOutput() BasicDevicePtrOutput { + return o +} + +func (o BasicDevicePtrOutput) ToBasicDevicePtrOutputWithContext(ctx context.Context) BasicDevicePtrOutput { + return o +} + +func (o BasicDevicePtrOutput) Elem() BasicDeviceOutput { + return o.ApplyT(func(v *BasicDevice) BasicDevice { + if v != nil { + return *v + } + var ret BasicDevice + return ret + }).(BasicDeviceOutput) +} + +// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o BasicDevicePtrOutput) Attributes() DeviceAttributeMapOutput { + return o.ApplyT(func(v *BasicDevice) map[string]DeviceAttribute { + if v == nil { + return nil + } + return v.Attributes + }).(DeviceAttributeMapOutput) +} + +// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o BasicDevicePtrOutput) Capacity() DeviceCapacityMapOutput { + return o.ApplyT(func(v *BasicDevice) map[string]DeviceCapacity { + if v == nil { + return nil + } + return v.Capacity + }).(DeviceCapacityMapOutput) +} + +// BasicDevice defines one device instance. +type BasicDevicePatch struct { + // Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Attributes map[string]DeviceAttribute `pulumi:"attributes"` + // Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Capacity map[string]DeviceCapacity `pulumi:"capacity"` +} + +// BasicDevicePatchInput is an input type that accepts BasicDevicePatchArgs and BasicDevicePatchOutput values. +// You can construct a concrete instance of `BasicDevicePatchInput` via: +// +// BasicDevicePatchArgs{...} +type BasicDevicePatchInput interface { + pulumi.Input + + ToBasicDevicePatchOutput() BasicDevicePatchOutput + ToBasicDevicePatchOutputWithContext(context.Context) BasicDevicePatchOutput +} + +// BasicDevice defines one device instance. +type BasicDevicePatchArgs struct { + // Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Attributes DeviceAttributeMapInput `pulumi:"attributes"` + // Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Capacity DeviceCapacityMapInput `pulumi:"capacity"` +} + +func (BasicDevicePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BasicDevicePatch)(nil)).Elem() +} + +func (i BasicDevicePatchArgs) ToBasicDevicePatchOutput() BasicDevicePatchOutput { + return i.ToBasicDevicePatchOutputWithContext(context.Background()) +} + +func (i BasicDevicePatchArgs) ToBasicDevicePatchOutputWithContext(ctx context.Context) BasicDevicePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(BasicDevicePatchOutput) +} + +func (i BasicDevicePatchArgs) ToBasicDevicePatchPtrOutput() BasicDevicePatchPtrOutput { + return i.ToBasicDevicePatchPtrOutputWithContext(context.Background()) +} + +func (i BasicDevicePatchArgs) ToBasicDevicePatchPtrOutputWithContext(ctx context.Context) BasicDevicePatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BasicDevicePatchOutput).ToBasicDevicePatchPtrOutputWithContext(ctx) +} + +// BasicDevicePatchPtrInput is an input type that accepts BasicDevicePatchArgs, BasicDevicePatchPtr and BasicDevicePatchPtrOutput values. +// You can construct a concrete instance of `BasicDevicePatchPtrInput` via: +// +// BasicDevicePatchArgs{...} +// +// or: +// +// nil +type BasicDevicePatchPtrInput interface { + pulumi.Input + + ToBasicDevicePatchPtrOutput() BasicDevicePatchPtrOutput + ToBasicDevicePatchPtrOutputWithContext(context.Context) BasicDevicePatchPtrOutput +} + +type basicDevicePatchPtrType BasicDevicePatchArgs + +func BasicDevicePatchPtr(v *BasicDevicePatchArgs) BasicDevicePatchPtrInput { + return (*basicDevicePatchPtrType)(v) +} + +func (*basicDevicePatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BasicDevicePatch)(nil)).Elem() +} + +func (i *basicDevicePatchPtrType) ToBasicDevicePatchPtrOutput() BasicDevicePatchPtrOutput { + return i.ToBasicDevicePatchPtrOutputWithContext(context.Background()) +} + +func (i *basicDevicePatchPtrType) ToBasicDevicePatchPtrOutputWithContext(ctx context.Context) BasicDevicePatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BasicDevicePatchPtrOutput) +} + +// BasicDevice defines one device instance. +type BasicDevicePatchOutput struct{ *pulumi.OutputState } + +func (BasicDevicePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BasicDevicePatch)(nil)).Elem() +} + +func (o BasicDevicePatchOutput) ToBasicDevicePatchOutput() BasicDevicePatchOutput { + return o +} + +func (o BasicDevicePatchOutput) ToBasicDevicePatchOutputWithContext(ctx context.Context) BasicDevicePatchOutput { + return o +} + +func (o BasicDevicePatchOutput) ToBasicDevicePatchPtrOutput() BasicDevicePatchPtrOutput { + return o.ToBasicDevicePatchPtrOutputWithContext(context.Background()) +} + +func (o BasicDevicePatchOutput) ToBasicDevicePatchPtrOutputWithContext(ctx context.Context) BasicDevicePatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BasicDevicePatch) *BasicDevicePatch { + return &v + }).(BasicDevicePatchPtrOutput) +} + +// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o BasicDevicePatchOutput) Attributes() DeviceAttributeMapOutput { + return o.ApplyT(func(v BasicDevicePatch) map[string]DeviceAttribute { return v.Attributes }).(DeviceAttributeMapOutput) +} + +// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o BasicDevicePatchOutput) Capacity() DeviceCapacityMapOutput { + return o.ApplyT(func(v BasicDevicePatch) map[string]DeviceCapacity { return v.Capacity }).(DeviceCapacityMapOutput) +} + +type BasicDevicePatchPtrOutput struct{ *pulumi.OutputState } + +func (BasicDevicePatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BasicDevicePatch)(nil)).Elem() +} + +func (o BasicDevicePatchPtrOutput) ToBasicDevicePatchPtrOutput() BasicDevicePatchPtrOutput { + return o +} + +func (o BasicDevicePatchPtrOutput) ToBasicDevicePatchPtrOutputWithContext(ctx context.Context) BasicDevicePatchPtrOutput { + return o +} + +func (o BasicDevicePatchPtrOutput) Elem() BasicDevicePatchOutput { + return o.ApplyT(func(v *BasicDevicePatch) BasicDevicePatch { + if v != nil { + return *v + } + var ret BasicDevicePatch + return ret + }).(BasicDevicePatchOutput) +} + +// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o BasicDevicePatchPtrOutput) Attributes() DeviceAttributeMapOutput { + return o.ApplyT(func(v *BasicDevicePatch) map[string]DeviceAttribute { + if v == nil { + return nil + } + return v.Attributes + }).(DeviceAttributeMapOutput) +} + +// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o BasicDevicePatchPtrOutput) Capacity() DeviceCapacityMapOutput { + return o.ApplyT(func(v *BasicDevicePatch) map[string]DeviceCapacity { + if v == nil { + return nil + } + return v.Capacity + }).(DeviceCapacityMapOutput) +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelector struct { + // 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. + // + // The expression's input is an object named "device", which carries the following properties: + // - driver (string): the name of the driver which defines this device. + // - attributes (map[string]object): the device's attributes, grouped by prefix + // (e.g. device.attributes["dra.example.com"] evaluates to an object with all + // of the attributes which were prefixed by "dra.example.com". + // - capacity (map[string]object): the device's capacities, grouped by prefix. + // + // Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + // + // device.driver + // device.attributes["dra.example.com"].model + // device.attributes["ext.example.com"].family + // device.capacity["dra.example.com"].modules + // + // The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + // + // The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + // + // If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + // + // A robust expression should check for the existence of attributes before referencing them. + // + // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + // + // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + Expression string `pulumi:"expression"` +} + +// CELDeviceSelectorInput is an input type that accepts CELDeviceSelectorArgs and CELDeviceSelectorOutput values. +// You can construct a concrete instance of `CELDeviceSelectorInput` via: +// +// CELDeviceSelectorArgs{...} +type CELDeviceSelectorInput interface { + pulumi.Input + + ToCELDeviceSelectorOutput() CELDeviceSelectorOutput + ToCELDeviceSelectorOutputWithContext(context.Context) CELDeviceSelectorOutput +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorArgs struct { + // 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. + // + // The expression's input is an object named "device", which carries the following properties: + // - driver (string): the name of the driver which defines this device. + // - attributes (map[string]object): the device's attributes, grouped by prefix + // (e.g. device.attributes["dra.example.com"] evaluates to an object with all + // of the attributes which were prefixed by "dra.example.com". + // - capacity (map[string]object): the device's capacities, grouped by prefix. + // + // Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + // + // device.driver + // device.attributes["dra.example.com"].model + // device.attributes["ext.example.com"].family + // device.capacity["dra.example.com"].modules + // + // The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + // + // The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + // + // If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + // + // A robust expression should check for the existence of attributes before referencing them. + // + // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + // + // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + Expression pulumi.StringInput `pulumi:"expression"` +} + +func (CELDeviceSelectorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CELDeviceSelector)(nil)).Elem() +} + +func (i CELDeviceSelectorArgs) ToCELDeviceSelectorOutput() CELDeviceSelectorOutput { + return i.ToCELDeviceSelectorOutputWithContext(context.Background()) +} + +func (i CELDeviceSelectorArgs) ToCELDeviceSelectorOutputWithContext(ctx context.Context) CELDeviceSelectorOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorOutput) +} + +func (i CELDeviceSelectorArgs) ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput { + return i.ToCELDeviceSelectorPtrOutputWithContext(context.Background()) +} + +func (i CELDeviceSelectorArgs) ToCELDeviceSelectorPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorOutput).ToCELDeviceSelectorPtrOutputWithContext(ctx) +} + +// CELDeviceSelectorPtrInput is an input type that accepts CELDeviceSelectorArgs, CELDeviceSelectorPtr and CELDeviceSelectorPtrOutput values. +// You can construct a concrete instance of `CELDeviceSelectorPtrInput` via: +// +// CELDeviceSelectorArgs{...} +// +// or: +// +// nil +type CELDeviceSelectorPtrInput interface { + pulumi.Input + + ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput + ToCELDeviceSelectorPtrOutputWithContext(context.Context) CELDeviceSelectorPtrOutput +} + +type celdeviceSelectorPtrType CELDeviceSelectorArgs + +func CELDeviceSelectorPtr(v *CELDeviceSelectorArgs) CELDeviceSelectorPtrInput { + return (*celdeviceSelectorPtrType)(v) +} + +func (*celdeviceSelectorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CELDeviceSelector)(nil)).Elem() +} + +func (i *celdeviceSelectorPtrType) ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput { + return i.ToCELDeviceSelectorPtrOutputWithContext(context.Background()) +} + +func (i *celdeviceSelectorPtrType) ToCELDeviceSelectorPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorPtrOutput) +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorOutput struct{ *pulumi.OutputState } + +func (CELDeviceSelectorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CELDeviceSelector)(nil)).Elem() +} + +func (o CELDeviceSelectorOutput) ToCELDeviceSelectorOutput() CELDeviceSelectorOutput { + return o +} + +func (o CELDeviceSelectorOutput) ToCELDeviceSelectorOutputWithContext(ctx context.Context) CELDeviceSelectorOutput { + return o +} + +func (o CELDeviceSelectorOutput) ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput { + return o.ToCELDeviceSelectorPtrOutputWithContext(context.Background()) +} + +func (o CELDeviceSelectorOutput) ToCELDeviceSelectorPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CELDeviceSelector) *CELDeviceSelector { + return &v + }).(CELDeviceSelectorPtrOutput) +} + +// 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. +// +// The expression's input is an object named "device", which carries the following properties: +// - driver (string): the name of the driver which defines this device. +// - attributes (map[string]object): the device's attributes, grouped by prefix +// (e.g. device.attributes["dra.example.com"] evaluates to an object with all +// of the attributes which were prefixed by "dra.example.com". +// - capacity (map[string]object): the device's capacities, grouped by prefix. +// +// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: +// +// device.driver +// device.attributes["dra.example.com"].model +// device.attributes["ext.example.com"].family +// device.capacity["dra.example.com"].modules +// +// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. +// +// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. +// +// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. +// +// A robust expression should check for the existence of attributes before referencing them. +// +// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: +// +// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. +func (o CELDeviceSelectorOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v CELDeviceSelector) string { return v.Expression }).(pulumi.StringOutput) +} + +type CELDeviceSelectorPtrOutput struct{ *pulumi.OutputState } + +func (CELDeviceSelectorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CELDeviceSelector)(nil)).Elem() +} + +func (o CELDeviceSelectorPtrOutput) ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput { + return o +} + +func (o CELDeviceSelectorPtrOutput) ToCELDeviceSelectorPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPtrOutput { + return o +} + +func (o CELDeviceSelectorPtrOutput) Elem() CELDeviceSelectorOutput { + return o.ApplyT(func(v *CELDeviceSelector) CELDeviceSelector { + if v != nil { + return *v + } + var ret CELDeviceSelector + return ret + }).(CELDeviceSelectorOutput) +} + +// 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. +// +// The expression's input is an object named "device", which carries the following properties: +// - driver (string): the name of the driver which defines this device. +// - attributes (map[string]object): the device's attributes, grouped by prefix +// (e.g. device.attributes["dra.example.com"] evaluates to an object with all +// of the attributes which were prefixed by "dra.example.com". +// - capacity (map[string]object): the device's capacities, grouped by prefix. +// +// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: +// +// device.driver +// device.attributes["dra.example.com"].model +// device.attributes["ext.example.com"].family +// device.capacity["dra.example.com"].modules +// +// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. +// +// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. +// +// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. +// +// A robust expression should check for the existence of attributes before referencing them. +// +// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: +// +// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. +func (o CELDeviceSelectorPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CELDeviceSelector) *string { + if v == nil { + return nil + } + return &v.Expression + }).(pulumi.StringPtrOutput) +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorPatch struct { + // 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. + // + // The expression's input is an object named "device", which carries the following properties: + // - driver (string): the name of the driver which defines this device. + // - attributes (map[string]object): the device's attributes, grouped by prefix + // (e.g. device.attributes["dra.example.com"] evaluates to an object with all + // of the attributes which were prefixed by "dra.example.com". + // - capacity (map[string]object): the device's capacities, grouped by prefix. + // + // Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + // + // device.driver + // device.attributes["dra.example.com"].model + // device.attributes["ext.example.com"].family + // device.capacity["dra.example.com"].modules + // + // The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + // + // The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + // + // If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + // + // A robust expression should check for the existence of attributes before referencing them. + // + // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + // + // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + Expression *string `pulumi:"expression"` +} + +// CELDeviceSelectorPatchInput is an input type that accepts CELDeviceSelectorPatchArgs and CELDeviceSelectorPatchOutput values. +// You can construct a concrete instance of `CELDeviceSelectorPatchInput` via: +// +// CELDeviceSelectorPatchArgs{...} +type CELDeviceSelectorPatchInput interface { + pulumi.Input + + ToCELDeviceSelectorPatchOutput() CELDeviceSelectorPatchOutput + ToCELDeviceSelectorPatchOutputWithContext(context.Context) CELDeviceSelectorPatchOutput +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorPatchArgs struct { + // 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. + // + // The expression's input is an object named "device", which carries the following properties: + // - driver (string): the name of the driver which defines this device. + // - attributes (map[string]object): the device's attributes, grouped by prefix + // (e.g. device.attributes["dra.example.com"] evaluates to an object with all + // of the attributes which were prefixed by "dra.example.com". + // - capacity (map[string]object): the device's capacities, grouped by prefix. + // + // Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + // + // device.driver + // device.attributes["dra.example.com"].model + // device.attributes["ext.example.com"].family + // device.capacity["dra.example.com"].modules + // + // The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + // + // The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + // + // If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + // + // A robust expression should check for the existence of attributes before referencing them. + // + // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + // + // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + Expression pulumi.StringPtrInput `pulumi:"expression"` +} + +func (CELDeviceSelectorPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CELDeviceSelectorPatch)(nil)).Elem() +} + +func (i CELDeviceSelectorPatchArgs) ToCELDeviceSelectorPatchOutput() CELDeviceSelectorPatchOutput { + return i.ToCELDeviceSelectorPatchOutputWithContext(context.Background()) +} + +func (i CELDeviceSelectorPatchArgs) ToCELDeviceSelectorPatchOutputWithContext(ctx context.Context) CELDeviceSelectorPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorPatchOutput) +} + +func (i CELDeviceSelectorPatchArgs) ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput { + return i.ToCELDeviceSelectorPatchPtrOutputWithContext(context.Background()) +} + +func (i CELDeviceSelectorPatchArgs) ToCELDeviceSelectorPatchPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorPatchOutput).ToCELDeviceSelectorPatchPtrOutputWithContext(ctx) +} + +// CELDeviceSelectorPatchPtrInput is an input type that accepts CELDeviceSelectorPatchArgs, CELDeviceSelectorPatchPtr and CELDeviceSelectorPatchPtrOutput values. +// You can construct a concrete instance of `CELDeviceSelectorPatchPtrInput` via: +// +// CELDeviceSelectorPatchArgs{...} +// +// or: +// +// nil +type CELDeviceSelectorPatchPtrInput interface { + pulumi.Input + + ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput + ToCELDeviceSelectorPatchPtrOutputWithContext(context.Context) CELDeviceSelectorPatchPtrOutput +} + +type celdeviceSelectorPatchPtrType CELDeviceSelectorPatchArgs + +func CELDeviceSelectorPatchPtr(v *CELDeviceSelectorPatchArgs) CELDeviceSelectorPatchPtrInput { + return (*celdeviceSelectorPatchPtrType)(v) +} + +func (*celdeviceSelectorPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CELDeviceSelectorPatch)(nil)).Elem() +} + +func (i *celdeviceSelectorPatchPtrType) ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput { + return i.ToCELDeviceSelectorPatchPtrOutputWithContext(context.Background()) +} + +func (i *celdeviceSelectorPatchPtrType) ToCELDeviceSelectorPatchPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorPatchPtrOutput) +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorPatchOutput struct{ *pulumi.OutputState } + +func (CELDeviceSelectorPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CELDeviceSelectorPatch)(nil)).Elem() +} + +func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchOutput() CELDeviceSelectorPatchOutput { + return o +} + +func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchOutputWithContext(ctx context.Context) CELDeviceSelectorPatchOutput { + return o +} + +func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput { + return o.ToCELDeviceSelectorPatchPtrOutputWithContext(context.Background()) +} + +func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CELDeviceSelectorPatch) *CELDeviceSelectorPatch { + return &v + }).(CELDeviceSelectorPatchPtrOutput) +} + +// 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. +// +// The expression's input is an object named "device", which carries the following properties: +// - driver (string): the name of the driver which defines this device. +// - attributes (map[string]object): the device's attributes, grouped by prefix +// (e.g. device.attributes["dra.example.com"] evaluates to an object with all +// of the attributes which were prefixed by "dra.example.com". +// - capacity (map[string]object): the device's capacities, grouped by prefix. +// +// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: +// +// device.driver +// device.attributes["dra.example.com"].model +// device.attributes["ext.example.com"].family +// device.capacity["dra.example.com"].modules +// +// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. +// +// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. +// +// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. +// +// A robust expression should check for the existence of attributes before referencing them. +// +// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: +// +// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. +func (o CELDeviceSelectorPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v CELDeviceSelectorPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +type CELDeviceSelectorPatchPtrOutput struct{ *pulumi.OutputState } + +func (CELDeviceSelectorPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CELDeviceSelectorPatch)(nil)).Elem() +} + +func (o CELDeviceSelectorPatchPtrOutput) ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput { + return o +} + +func (o CELDeviceSelectorPatchPtrOutput) ToCELDeviceSelectorPatchPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPatchPtrOutput { + return o +} + +func (o CELDeviceSelectorPatchPtrOutput) Elem() CELDeviceSelectorPatchOutput { + return o.ApplyT(func(v *CELDeviceSelectorPatch) CELDeviceSelectorPatch { + if v != nil { + return *v + } + var ret CELDeviceSelectorPatch + return ret + }).(CELDeviceSelectorPatchOutput) +} + +// 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. +// +// The expression's input is an object named "device", which carries the following properties: +// - driver (string): the name of the driver which defines this device. +// - attributes (map[string]object): the device's attributes, grouped by prefix +// (e.g. device.attributes["dra.example.com"] evaluates to an object with all +// of the attributes which were prefixed by "dra.example.com". +// - capacity (map[string]object): the device's capacities, grouped by prefix. +// +// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: +// +// device.driver +// device.attributes["dra.example.com"].model +// device.attributes["ext.example.com"].family +// device.capacity["dra.example.com"].modules +// +// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. +// +// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. +// +// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. +// +// A robust expression should check for the existence of attributes before referencing them. +// +// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: +// +// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. +func (o CELDeviceSelectorPatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CELDeviceSelectorPatch) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type Device struct { + // Basic defines one device instance. + Basic *BasicDevice `pulumi:"basic"` + // Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + Name string `pulumi:"name"` +} + +// DeviceInput is an input type that accepts DeviceArgs and DeviceOutput values. +// You can construct a concrete instance of `DeviceInput` via: +// +// DeviceArgs{...} +type DeviceInput interface { + pulumi.Input + + ToDeviceOutput() DeviceOutput + ToDeviceOutputWithContext(context.Context) DeviceOutput +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DeviceArgs struct { + // Basic defines one device instance. + Basic BasicDevicePtrInput `pulumi:"basic"` + // Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + Name pulumi.StringInput `pulumi:"name"` +} + +func (DeviceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Device)(nil)).Elem() +} + +func (i DeviceArgs) ToDeviceOutput() DeviceOutput { + return i.ToDeviceOutputWithContext(context.Background()) +} + +func (i DeviceArgs) ToDeviceOutputWithContext(ctx context.Context) DeviceOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceOutput) +} + +// DeviceArrayInput is an input type that accepts DeviceArray and DeviceArrayOutput values. +// You can construct a concrete instance of `DeviceArrayInput` via: +// +// DeviceArray{ DeviceArgs{...} } +type DeviceArrayInput interface { + pulumi.Input + + ToDeviceArrayOutput() DeviceArrayOutput + ToDeviceArrayOutputWithContext(context.Context) DeviceArrayOutput +} + +type DeviceArray []DeviceInput + +func (DeviceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]Device)(nil)).Elem() +} + +func (i DeviceArray) ToDeviceArrayOutput() DeviceArrayOutput { + return i.ToDeviceArrayOutputWithContext(context.Background()) +} + +func (i DeviceArray) ToDeviceArrayOutputWithContext(ctx context.Context) DeviceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceArrayOutput) +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DeviceOutput struct{ *pulumi.OutputState } + +func (DeviceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Device)(nil)).Elem() +} + +func (o DeviceOutput) ToDeviceOutput() DeviceOutput { + return o +} + +func (o DeviceOutput) ToDeviceOutputWithContext(ctx context.Context) DeviceOutput { + return o +} + +// Basic defines one device instance. +func (o DeviceOutput) Basic() BasicDevicePtrOutput { + return o.ApplyT(func(v Device) *BasicDevice { return v.Basic }).(BasicDevicePtrOutput) +} + +// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. +func (o DeviceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v Device) string { return v.Name }).(pulumi.StringOutput) +} + +type DeviceArrayOutput struct{ *pulumi.OutputState } + +func (DeviceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Device)(nil)).Elem() +} + +func (o DeviceArrayOutput) ToDeviceArrayOutput() DeviceArrayOutput { + return o +} + +func (o DeviceArrayOutput) ToDeviceArrayOutputWithContext(ctx context.Context) DeviceArrayOutput { + return o +} + +func (o DeviceArrayOutput) Index(i pulumi.IntInput) DeviceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Device { + return vs[0].([]Device)[vs[1].(int)] + }).(DeviceOutput) +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfiguration struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfiguration `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + Requests []string `pulumi:"requests"` + // 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. + Source string `pulumi:"source"` +} + +// DeviceAllocationConfigurationInput is an input type that accepts DeviceAllocationConfigurationArgs and DeviceAllocationConfigurationOutput values. +// You can construct a concrete instance of `DeviceAllocationConfigurationInput` via: +// +// DeviceAllocationConfigurationArgs{...} +type DeviceAllocationConfigurationInput interface { + pulumi.Input + + ToDeviceAllocationConfigurationOutput() DeviceAllocationConfigurationOutput + ToDeviceAllocationConfigurationOutputWithContext(context.Context) DeviceAllocationConfigurationOutput +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPtrInput `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + Requests pulumi.StringArrayInput `pulumi:"requests"` + // 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. + Source pulumi.StringInput `pulumi:"source"` +} + +func (DeviceAllocationConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationConfiguration)(nil)).Elem() +} + +func (i DeviceAllocationConfigurationArgs) ToDeviceAllocationConfigurationOutput() DeviceAllocationConfigurationOutput { + return i.ToDeviceAllocationConfigurationOutputWithContext(context.Background()) +} + +func (i DeviceAllocationConfigurationArgs) ToDeviceAllocationConfigurationOutputWithContext(ctx context.Context) DeviceAllocationConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationConfigurationOutput) +} + +// DeviceAllocationConfigurationArrayInput is an input type that accepts DeviceAllocationConfigurationArray and DeviceAllocationConfigurationArrayOutput values. +// You can construct a concrete instance of `DeviceAllocationConfigurationArrayInput` via: +// +// DeviceAllocationConfigurationArray{ DeviceAllocationConfigurationArgs{...} } +type DeviceAllocationConfigurationArrayInput interface { + pulumi.Input + + ToDeviceAllocationConfigurationArrayOutput() DeviceAllocationConfigurationArrayOutput + ToDeviceAllocationConfigurationArrayOutputWithContext(context.Context) DeviceAllocationConfigurationArrayOutput +} + +type DeviceAllocationConfigurationArray []DeviceAllocationConfigurationInput + +func (DeviceAllocationConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceAllocationConfiguration)(nil)).Elem() +} + +func (i DeviceAllocationConfigurationArray) ToDeviceAllocationConfigurationArrayOutput() DeviceAllocationConfigurationArrayOutput { + return i.ToDeviceAllocationConfigurationArrayOutputWithContext(context.Background()) +} + +func (i DeviceAllocationConfigurationArray) ToDeviceAllocationConfigurationArrayOutputWithContext(ctx context.Context) DeviceAllocationConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationConfigurationArrayOutput) +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationConfiguration)(nil)).Elem() +} + +func (o DeviceAllocationConfigurationOutput) ToDeviceAllocationConfigurationOutput() DeviceAllocationConfigurationOutput { + return o +} + +func (o DeviceAllocationConfigurationOutput) ToDeviceAllocationConfigurationOutputWithContext(ctx context.Context) DeviceAllocationConfigurationOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceAllocationConfigurationOutput) Opaque() OpaqueDeviceConfigurationPtrOutput { + return o.ApplyT(func(v DeviceAllocationConfiguration) *OpaqueDeviceConfiguration { return v.Opaque }).(OpaqueDeviceConfigurationPtrOutput) +} + +// Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. +func (o DeviceAllocationConfigurationOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceAllocationConfiguration) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +// 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. +func (o DeviceAllocationConfigurationOutput) Source() pulumi.StringOutput { + return o.ApplyT(func(v DeviceAllocationConfiguration) string { return v.Source }).(pulumi.StringOutput) +} + +type DeviceAllocationConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceAllocationConfiguration)(nil)).Elem() +} + +func (o DeviceAllocationConfigurationArrayOutput) ToDeviceAllocationConfigurationArrayOutput() DeviceAllocationConfigurationArrayOutput { + return o +} + +func (o DeviceAllocationConfigurationArrayOutput) ToDeviceAllocationConfigurationArrayOutputWithContext(ctx context.Context) DeviceAllocationConfigurationArrayOutput { + return o +} + +func (o DeviceAllocationConfigurationArrayOutput) Index(i pulumi.IntInput) DeviceAllocationConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceAllocationConfiguration { + return vs[0].([]DeviceAllocationConfiguration)[vs[1].(int)] + }).(DeviceAllocationConfigurationOutput) +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationPatch struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfigurationPatch `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + Requests []string `pulumi:"requests"` + // 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. + Source *string `pulumi:"source"` +} + +// DeviceAllocationConfigurationPatchInput is an input type that accepts DeviceAllocationConfigurationPatchArgs and DeviceAllocationConfigurationPatchOutput values. +// You can construct a concrete instance of `DeviceAllocationConfigurationPatchInput` via: +// +// DeviceAllocationConfigurationPatchArgs{...} +type DeviceAllocationConfigurationPatchInput interface { + pulumi.Input + + ToDeviceAllocationConfigurationPatchOutput() DeviceAllocationConfigurationPatchOutput + ToDeviceAllocationConfigurationPatchOutputWithContext(context.Context) DeviceAllocationConfigurationPatchOutput +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationPatchArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPatchPtrInput `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + Requests pulumi.StringArrayInput `pulumi:"requests"` + // 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. + Source pulumi.StringPtrInput `pulumi:"source"` +} + +func (DeviceAllocationConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationConfigurationPatch)(nil)).Elem() +} + +func (i DeviceAllocationConfigurationPatchArgs) ToDeviceAllocationConfigurationPatchOutput() DeviceAllocationConfigurationPatchOutput { + return i.ToDeviceAllocationConfigurationPatchOutputWithContext(context.Background()) +} + +func (i DeviceAllocationConfigurationPatchArgs) ToDeviceAllocationConfigurationPatchOutputWithContext(ctx context.Context) DeviceAllocationConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationConfigurationPatchOutput) +} + +// DeviceAllocationConfigurationPatchArrayInput is an input type that accepts DeviceAllocationConfigurationPatchArray and DeviceAllocationConfigurationPatchArrayOutput values. +// You can construct a concrete instance of `DeviceAllocationConfigurationPatchArrayInput` via: +// +// DeviceAllocationConfigurationPatchArray{ DeviceAllocationConfigurationPatchArgs{...} } +type DeviceAllocationConfigurationPatchArrayInput interface { + pulumi.Input + + ToDeviceAllocationConfigurationPatchArrayOutput() DeviceAllocationConfigurationPatchArrayOutput + ToDeviceAllocationConfigurationPatchArrayOutputWithContext(context.Context) DeviceAllocationConfigurationPatchArrayOutput +} + +type DeviceAllocationConfigurationPatchArray []DeviceAllocationConfigurationPatchInput + +func (DeviceAllocationConfigurationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceAllocationConfigurationPatch)(nil)).Elem() +} + +func (i DeviceAllocationConfigurationPatchArray) ToDeviceAllocationConfigurationPatchArrayOutput() DeviceAllocationConfigurationPatchArrayOutput { + return i.ToDeviceAllocationConfigurationPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceAllocationConfigurationPatchArray) ToDeviceAllocationConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceAllocationConfigurationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationConfigurationPatchArrayOutput) +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationConfigurationPatch)(nil)).Elem() +} + +func (o DeviceAllocationConfigurationPatchOutput) ToDeviceAllocationConfigurationPatchOutput() DeviceAllocationConfigurationPatchOutput { + return o +} + +func (o DeviceAllocationConfigurationPatchOutput) ToDeviceAllocationConfigurationPatchOutputWithContext(ctx context.Context) DeviceAllocationConfigurationPatchOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceAllocationConfigurationPatchOutput) Opaque() OpaqueDeviceConfigurationPatchPtrOutput { + return o.ApplyT(func(v DeviceAllocationConfigurationPatch) *OpaqueDeviceConfigurationPatch { return v.Opaque }).(OpaqueDeviceConfigurationPatchPtrOutput) +} + +// Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. +func (o DeviceAllocationConfigurationPatchOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceAllocationConfigurationPatch) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +// 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. +func (o DeviceAllocationConfigurationPatchOutput) Source() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAllocationConfigurationPatch) *string { return v.Source }).(pulumi.StringPtrOutput) +} + +type DeviceAllocationConfigurationPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationConfigurationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceAllocationConfigurationPatch)(nil)).Elem() +} + +func (o DeviceAllocationConfigurationPatchArrayOutput) ToDeviceAllocationConfigurationPatchArrayOutput() DeviceAllocationConfigurationPatchArrayOutput { + return o +} + +func (o DeviceAllocationConfigurationPatchArrayOutput) ToDeviceAllocationConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceAllocationConfigurationPatchArrayOutput { + return o +} + +func (o DeviceAllocationConfigurationPatchArrayOutput) Index(i pulumi.IntInput) DeviceAllocationConfigurationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceAllocationConfigurationPatch { + return vs[0].([]DeviceAllocationConfigurationPatch)[vs[1].(int)] + }).(DeviceAllocationConfigurationPatchOutput) +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResult struct { + // This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + // + // This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + Config []DeviceAllocationConfiguration `pulumi:"config"` + // Results lists all allocated devices. + Results []DeviceRequestAllocationResult `pulumi:"results"` +} + +// DeviceAllocationResultInput is an input type that accepts DeviceAllocationResultArgs and DeviceAllocationResultOutput values. +// You can construct a concrete instance of `DeviceAllocationResultInput` via: +// +// DeviceAllocationResultArgs{...} +type DeviceAllocationResultInput interface { + pulumi.Input + + ToDeviceAllocationResultOutput() DeviceAllocationResultOutput + ToDeviceAllocationResultOutputWithContext(context.Context) DeviceAllocationResultOutput +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultArgs struct { + // This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + // + // This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + Config DeviceAllocationConfigurationArrayInput `pulumi:"config"` + // Results lists all allocated devices. + Results DeviceRequestAllocationResultArrayInput `pulumi:"results"` +} + +func (DeviceAllocationResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationResult)(nil)).Elem() +} + +func (i DeviceAllocationResultArgs) ToDeviceAllocationResultOutput() DeviceAllocationResultOutput { + return i.ToDeviceAllocationResultOutputWithContext(context.Background()) +} + +func (i DeviceAllocationResultArgs) ToDeviceAllocationResultOutputWithContext(ctx context.Context) DeviceAllocationResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultOutput) +} + +func (i DeviceAllocationResultArgs) ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput { + return i.ToDeviceAllocationResultPtrOutputWithContext(context.Background()) +} + +func (i DeviceAllocationResultArgs) ToDeviceAllocationResultPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultOutput).ToDeviceAllocationResultPtrOutputWithContext(ctx) +} + +// DeviceAllocationResultPtrInput is an input type that accepts DeviceAllocationResultArgs, DeviceAllocationResultPtr and DeviceAllocationResultPtrOutput values. +// You can construct a concrete instance of `DeviceAllocationResultPtrInput` via: +// +// DeviceAllocationResultArgs{...} +// +// or: +// +// nil +type DeviceAllocationResultPtrInput interface { + pulumi.Input + + ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput + ToDeviceAllocationResultPtrOutputWithContext(context.Context) DeviceAllocationResultPtrOutput +} + +type deviceAllocationResultPtrType DeviceAllocationResultArgs + +func DeviceAllocationResultPtr(v *DeviceAllocationResultArgs) DeviceAllocationResultPtrInput { + return (*deviceAllocationResultPtrType)(v) +} + +func (*deviceAllocationResultPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceAllocationResult)(nil)).Elem() +} + +func (i *deviceAllocationResultPtrType) ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput { + return i.ToDeviceAllocationResultPtrOutputWithContext(context.Background()) +} + +func (i *deviceAllocationResultPtrType) ToDeviceAllocationResultPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultPtrOutput) +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationResult)(nil)).Elem() +} + +func (o DeviceAllocationResultOutput) ToDeviceAllocationResultOutput() DeviceAllocationResultOutput { + return o +} + +func (o DeviceAllocationResultOutput) ToDeviceAllocationResultOutputWithContext(ctx context.Context) DeviceAllocationResultOutput { + return o +} + +func (o DeviceAllocationResultOutput) ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput { + return o.ToDeviceAllocationResultPtrOutputWithContext(context.Background()) +} + +func (o DeviceAllocationResultOutput) ToDeviceAllocationResultPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceAllocationResult) *DeviceAllocationResult { + return &v + }).(DeviceAllocationResultPtrOutput) +} + +// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. +// +// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. +func (o DeviceAllocationResultOutput) Config() DeviceAllocationConfigurationArrayOutput { + return o.ApplyT(func(v DeviceAllocationResult) []DeviceAllocationConfiguration { return v.Config }).(DeviceAllocationConfigurationArrayOutput) +} + +// Results lists all allocated devices. +func (o DeviceAllocationResultOutput) Results() DeviceRequestAllocationResultArrayOutput { + return o.ApplyT(func(v DeviceAllocationResult) []DeviceRequestAllocationResult { return v.Results }).(DeviceRequestAllocationResultArrayOutput) +} + +type DeviceAllocationResultPtrOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationResultPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceAllocationResult)(nil)).Elem() +} + +func (o DeviceAllocationResultPtrOutput) ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput { + return o +} + +func (o DeviceAllocationResultPtrOutput) ToDeviceAllocationResultPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPtrOutput { + return o +} + +func (o DeviceAllocationResultPtrOutput) Elem() DeviceAllocationResultOutput { + return o.ApplyT(func(v *DeviceAllocationResult) DeviceAllocationResult { + if v != nil { + return *v + } + var ret DeviceAllocationResult + return ret + }).(DeviceAllocationResultOutput) +} + +// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. +// +// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. +func (o DeviceAllocationResultPtrOutput) Config() DeviceAllocationConfigurationArrayOutput { + return o.ApplyT(func(v *DeviceAllocationResult) []DeviceAllocationConfiguration { + if v == nil { + return nil + } + return v.Config + }).(DeviceAllocationConfigurationArrayOutput) +} + +// Results lists all allocated devices. +func (o DeviceAllocationResultPtrOutput) Results() DeviceRequestAllocationResultArrayOutput { + return o.ApplyT(func(v *DeviceAllocationResult) []DeviceRequestAllocationResult { + if v == nil { + return nil + } + return v.Results + }).(DeviceRequestAllocationResultArrayOutput) +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultPatch struct { + // This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + // + // This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + Config []DeviceAllocationConfigurationPatch `pulumi:"config"` + // Results lists all allocated devices. + Results []DeviceRequestAllocationResultPatch `pulumi:"results"` +} + +// DeviceAllocationResultPatchInput is an input type that accepts DeviceAllocationResultPatchArgs and DeviceAllocationResultPatchOutput values. +// You can construct a concrete instance of `DeviceAllocationResultPatchInput` via: +// +// DeviceAllocationResultPatchArgs{...} +type DeviceAllocationResultPatchInput interface { + pulumi.Input + + ToDeviceAllocationResultPatchOutput() DeviceAllocationResultPatchOutput + ToDeviceAllocationResultPatchOutputWithContext(context.Context) DeviceAllocationResultPatchOutput +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultPatchArgs struct { + // This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + // + // This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + Config DeviceAllocationConfigurationPatchArrayInput `pulumi:"config"` + // Results lists all allocated devices. + Results DeviceRequestAllocationResultPatchArrayInput `pulumi:"results"` +} + +func (DeviceAllocationResultPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationResultPatch)(nil)).Elem() +} + +func (i DeviceAllocationResultPatchArgs) ToDeviceAllocationResultPatchOutput() DeviceAllocationResultPatchOutput { + return i.ToDeviceAllocationResultPatchOutputWithContext(context.Background()) +} + +func (i DeviceAllocationResultPatchArgs) ToDeviceAllocationResultPatchOutputWithContext(ctx context.Context) DeviceAllocationResultPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultPatchOutput) +} + +func (i DeviceAllocationResultPatchArgs) ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput { + return i.ToDeviceAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (i DeviceAllocationResultPatchArgs) ToDeviceAllocationResultPatchPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultPatchOutput).ToDeviceAllocationResultPatchPtrOutputWithContext(ctx) +} + +// DeviceAllocationResultPatchPtrInput is an input type that accepts DeviceAllocationResultPatchArgs, DeviceAllocationResultPatchPtr and DeviceAllocationResultPatchPtrOutput values. +// You can construct a concrete instance of `DeviceAllocationResultPatchPtrInput` via: +// +// DeviceAllocationResultPatchArgs{...} +// +// or: +// +// nil +type DeviceAllocationResultPatchPtrInput interface { + pulumi.Input + + ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput + ToDeviceAllocationResultPatchPtrOutputWithContext(context.Context) DeviceAllocationResultPatchPtrOutput +} + +type deviceAllocationResultPatchPtrType DeviceAllocationResultPatchArgs + +func DeviceAllocationResultPatchPtr(v *DeviceAllocationResultPatchArgs) DeviceAllocationResultPatchPtrInput { + return (*deviceAllocationResultPatchPtrType)(v) +} + +func (*deviceAllocationResultPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceAllocationResultPatch)(nil)).Elem() +} + +func (i *deviceAllocationResultPatchPtrType) ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput { + return i.ToDeviceAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (i *deviceAllocationResultPatchPtrType) ToDeviceAllocationResultPatchPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultPatchPtrOutput) +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultPatchOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationResultPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationResultPatch)(nil)).Elem() +} + +func (o DeviceAllocationResultPatchOutput) ToDeviceAllocationResultPatchOutput() DeviceAllocationResultPatchOutput { + return o +} + +func (o DeviceAllocationResultPatchOutput) ToDeviceAllocationResultPatchOutputWithContext(ctx context.Context) DeviceAllocationResultPatchOutput { + return o +} + +func (o DeviceAllocationResultPatchOutput) ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput { + return o.ToDeviceAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (o DeviceAllocationResultPatchOutput) ToDeviceAllocationResultPatchPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceAllocationResultPatch) *DeviceAllocationResultPatch { + return &v + }).(DeviceAllocationResultPatchPtrOutput) +} + +// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. +// +// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. +func (o DeviceAllocationResultPatchOutput) Config() DeviceAllocationConfigurationPatchArrayOutput { + return o.ApplyT(func(v DeviceAllocationResultPatch) []DeviceAllocationConfigurationPatch { return v.Config }).(DeviceAllocationConfigurationPatchArrayOutput) +} + +// Results lists all allocated devices. +func (o DeviceAllocationResultPatchOutput) Results() DeviceRequestAllocationResultPatchArrayOutput { + return o.ApplyT(func(v DeviceAllocationResultPatch) []DeviceRequestAllocationResultPatch { return v.Results }).(DeviceRequestAllocationResultPatchArrayOutput) +} + +type DeviceAllocationResultPatchPtrOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationResultPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceAllocationResultPatch)(nil)).Elem() +} + +func (o DeviceAllocationResultPatchPtrOutput) ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput { + return o +} + +func (o DeviceAllocationResultPatchPtrOutput) ToDeviceAllocationResultPatchPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPatchPtrOutput { + return o +} + +func (o DeviceAllocationResultPatchPtrOutput) Elem() DeviceAllocationResultPatchOutput { + return o.ApplyT(func(v *DeviceAllocationResultPatch) DeviceAllocationResultPatch { + if v != nil { + return *v + } + var ret DeviceAllocationResultPatch + return ret + }).(DeviceAllocationResultPatchOutput) +} + +// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. +// +// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. +func (o DeviceAllocationResultPatchPtrOutput) Config() DeviceAllocationConfigurationPatchArrayOutput { + return o.ApplyT(func(v *DeviceAllocationResultPatch) []DeviceAllocationConfigurationPatch { + if v == nil { + return nil + } + return v.Config + }).(DeviceAllocationConfigurationPatchArrayOutput) +} + +// Results lists all allocated devices. +func (o DeviceAllocationResultPatchPtrOutput) Results() DeviceRequestAllocationResultPatchArrayOutput { + return o.ApplyT(func(v *DeviceAllocationResultPatch) []DeviceRequestAllocationResultPatch { + if v == nil { + return nil + } + return v.Results + }).(DeviceRequestAllocationResultPatchArrayOutput) +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttribute struct { + // BoolValue is a true/false value. + Bool *bool `pulumi:"bool"` + // IntValue is a number. + Int *int `pulumi:"int"` + // StringValue is a string. Must not be longer than 64 characters. + String *string `pulumi:"string"` + // VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + Version *string `pulumi:"version"` +} + +// DeviceAttributeInput is an input type that accepts DeviceAttributeArgs and DeviceAttributeOutput values. +// You can construct a concrete instance of `DeviceAttributeInput` via: +// +// DeviceAttributeArgs{...} +type DeviceAttributeInput interface { + pulumi.Input + + ToDeviceAttributeOutput() DeviceAttributeOutput + ToDeviceAttributeOutputWithContext(context.Context) DeviceAttributeOutput +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributeArgs struct { + // BoolValue is a true/false value. + Bool pulumi.BoolPtrInput `pulumi:"bool"` + // IntValue is a number. + Int pulumi.IntPtrInput `pulumi:"int"` + // StringValue is a string. Must not be longer than 64 characters. + String pulumi.StringPtrInput `pulumi:"string"` + // VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (DeviceAttributeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAttribute)(nil)).Elem() +} + +func (i DeviceAttributeArgs) ToDeviceAttributeOutput() DeviceAttributeOutput { + return i.ToDeviceAttributeOutputWithContext(context.Background()) +} + +func (i DeviceAttributeArgs) ToDeviceAttributeOutputWithContext(ctx context.Context) DeviceAttributeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAttributeOutput) +} + +// DeviceAttributeMapInput is an input type that accepts DeviceAttributeMap and DeviceAttributeMapOutput values. +// You can construct a concrete instance of `DeviceAttributeMapInput` via: +// +// DeviceAttributeMap{ "key": DeviceAttributeArgs{...} } +type DeviceAttributeMapInput interface { + pulumi.Input + + ToDeviceAttributeMapOutput() DeviceAttributeMapOutput + ToDeviceAttributeMapOutputWithContext(context.Context) DeviceAttributeMapOutput +} + +type DeviceAttributeMap map[string]DeviceAttributeInput + +func (DeviceAttributeMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeviceAttribute)(nil)).Elem() +} + +func (i DeviceAttributeMap) ToDeviceAttributeMapOutput() DeviceAttributeMapOutput { + return i.ToDeviceAttributeMapOutputWithContext(context.Background()) +} + +func (i DeviceAttributeMap) ToDeviceAttributeMapOutputWithContext(ctx context.Context) DeviceAttributeMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAttributeMapOutput) +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributeOutput struct{ *pulumi.OutputState } + +func (DeviceAttributeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAttribute)(nil)).Elem() +} + +func (o DeviceAttributeOutput) ToDeviceAttributeOutput() DeviceAttributeOutput { + return o +} + +func (o DeviceAttributeOutput) ToDeviceAttributeOutputWithContext(ctx context.Context) DeviceAttributeOutput { + return o +} + +// BoolValue is a true/false value. +func (o DeviceAttributeOutput) Bool() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceAttribute) *bool { return v.Bool }).(pulumi.BoolPtrOutput) +} + +// IntValue is a number. +func (o DeviceAttributeOutput) Int() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeviceAttribute) *int { return v.Int }).(pulumi.IntPtrOutput) +} + +// StringValue is a string. Must not be longer than 64 characters. +func (o DeviceAttributeOutput) String() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAttribute) *string { return v.String }).(pulumi.StringPtrOutput) +} + +// VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. +func (o DeviceAttributeOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAttribute) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type DeviceAttributeMapOutput struct{ *pulumi.OutputState } + +func (DeviceAttributeMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeviceAttribute)(nil)).Elem() +} + +func (o DeviceAttributeMapOutput) ToDeviceAttributeMapOutput() DeviceAttributeMapOutput { + return o +} + +func (o DeviceAttributeMapOutput) ToDeviceAttributeMapOutputWithContext(ctx context.Context) DeviceAttributeMapOutput { + return o +} + +func (o DeviceAttributeMapOutput) MapIndex(k pulumi.StringInput) DeviceAttributeOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) DeviceAttribute { + return vs[0].(map[string]DeviceAttribute)[vs[1].(string)] + }).(DeviceAttributeOutput) +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributePatch struct { + // BoolValue is a true/false value. + Bool *bool `pulumi:"bool"` + // IntValue is a number. + Int *int `pulumi:"int"` + // StringValue is a string. Must not be longer than 64 characters. + String *string `pulumi:"string"` + // VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + Version *string `pulumi:"version"` +} + +// DeviceAttributePatchInput is an input type that accepts DeviceAttributePatchArgs and DeviceAttributePatchOutput values. +// You can construct a concrete instance of `DeviceAttributePatchInput` via: +// +// DeviceAttributePatchArgs{...} +type DeviceAttributePatchInput interface { + pulumi.Input + + ToDeviceAttributePatchOutput() DeviceAttributePatchOutput + ToDeviceAttributePatchOutputWithContext(context.Context) DeviceAttributePatchOutput +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributePatchArgs struct { + // BoolValue is a true/false value. + Bool pulumi.BoolPtrInput `pulumi:"bool"` + // IntValue is a number. + Int pulumi.IntPtrInput `pulumi:"int"` + // StringValue is a string. Must not be longer than 64 characters. + String pulumi.StringPtrInput `pulumi:"string"` + // VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (DeviceAttributePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAttributePatch)(nil)).Elem() +} + +func (i DeviceAttributePatchArgs) ToDeviceAttributePatchOutput() DeviceAttributePatchOutput { + return i.ToDeviceAttributePatchOutputWithContext(context.Background()) +} + +func (i DeviceAttributePatchArgs) ToDeviceAttributePatchOutputWithContext(ctx context.Context) DeviceAttributePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAttributePatchOutput) +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributePatchOutput struct{ *pulumi.OutputState } + +func (DeviceAttributePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAttributePatch)(nil)).Elem() +} + +func (o DeviceAttributePatchOutput) ToDeviceAttributePatchOutput() DeviceAttributePatchOutput { + return o +} + +func (o DeviceAttributePatchOutput) ToDeviceAttributePatchOutputWithContext(ctx context.Context) DeviceAttributePatchOutput { + return o +} + +// BoolValue is a true/false value. +func (o DeviceAttributePatchOutput) Bool() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceAttributePatch) *bool { return v.Bool }).(pulumi.BoolPtrOutput) +} + +// IntValue is a number. +func (o DeviceAttributePatchOutput) Int() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeviceAttributePatch) *int { return v.Int }).(pulumi.IntPtrOutput) +} + +// StringValue is a string. Must not be longer than 64 characters. +func (o DeviceAttributePatchOutput) String() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAttributePatch) *string { return v.String }).(pulumi.StringPtrOutput) +} + +// VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. +func (o DeviceAttributePatchOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAttributePatch) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacity struct { + // Value defines how much of a certain device capacity is available. + Value string `pulumi:"value"` +} + +// DeviceCapacityInput is an input type that accepts DeviceCapacityArgs and DeviceCapacityOutput values. +// You can construct a concrete instance of `DeviceCapacityInput` via: +// +// DeviceCapacityArgs{...} +type DeviceCapacityInput interface { + pulumi.Input + + ToDeviceCapacityOutput() DeviceCapacityOutput + ToDeviceCapacityOutputWithContext(context.Context) DeviceCapacityOutput +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityArgs struct { + // Value defines how much of a certain device capacity is available. + Value pulumi.StringInput `pulumi:"value"` +} + +func (DeviceCapacityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCapacity)(nil)).Elem() +} + +func (i DeviceCapacityArgs) ToDeviceCapacityOutput() DeviceCapacityOutput { + return i.ToDeviceCapacityOutputWithContext(context.Background()) +} + +func (i DeviceCapacityArgs) ToDeviceCapacityOutputWithContext(ctx context.Context) DeviceCapacityOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCapacityOutput) +} + +// DeviceCapacityMapInput is an input type that accepts DeviceCapacityMap and DeviceCapacityMapOutput values. +// You can construct a concrete instance of `DeviceCapacityMapInput` via: +// +// DeviceCapacityMap{ "key": DeviceCapacityArgs{...} } +type DeviceCapacityMapInput interface { + pulumi.Input + + ToDeviceCapacityMapOutput() DeviceCapacityMapOutput + ToDeviceCapacityMapOutputWithContext(context.Context) DeviceCapacityMapOutput +} + +type DeviceCapacityMap map[string]DeviceCapacityInput + +func (DeviceCapacityMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeviceCapacity)(nil)).Elem() +} + +func (i DeviceCapacityMap) ToDeviceCapacityMapOutput() DeviceCapacityMapOutput { + return i.ToDeviceCapacityMapOutputWithContext(context.Background()) +} + +func (i DeviceCapacityMap) ToDeviceCapacityMapOutputWithContext(ctx context.Context) DeviceCapacityMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCapacityMapOutput) +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityOutput struct{ *pulumi.OutputState } + +func (DeviceCapacityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCapacity)(nil)).Elem() +} + +func (o DeviceCapacityOutput) ToDeviceCapacityOutput() DeviceCapacityOutput { + return o +} + +func (o DeviceCapacityOutput) ToDeviceCapacityOutputWithContext(ctx context.Context) DeviceCapacityOutput { + return o +} + +// Value defines how much of a certain device capacity is available. +func (o DeviceCapacityOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v DeviceCapacity) string { return v.Value }).(pulumi.StringOutput) +} + +type DeviceCapacityMapOutput struct{ *pulumi.OutputState } + +func (DeviceCapacityMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeviceCapacity)(nil)).Elem() +} + +func (o DeviceCapacityMapOutput) ToDeviceCapacityMapOutput() DeviceCapacityMapOutput { + return o +} + +func (o DeviceCapacityMapOutput) ToDeviceCapacityMapOutputWithContext(ctx context.Context) DeviceCapacityMapOutput { + return o +} + +func (o DeviceCapacityMapOutput) MapIndex(k pulumi.StringInput) DeviceCapacityOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) DeviceCapacity { + return vs[0].(map[string]DeviceCapacity)[vs[1].(string)] + }).(DeviceCapacityOutput) +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityPatch struct { + // Value defines how much of a certain device capacity is available. + Value *string `pulumi:"value"` +} + +// DeviceCapacityPatchInput is an input type that accepts DeviceCapacityPatchArgs and DeviceCapacityPatchOutput values. +// You can construct a concrete instance of `DeviceCapacityPatchInput` via: +// +// DeviceCapacityPatchArgs{...} +type DeviceCapacityPatchInput interface { + pulumi.Input + + ToDeviceCapacityPatchOutput() DeviceCapacityPatchOutput + ToDeviceCapacityPatchOutputWithContext(context.Context) DeviceCapacityPatchOutput +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityPatchArgs struct { + // Value defines how much of a certain device capacity is available. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (DeviceCapacityPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCapacityPatch)(nil)).Elem() +} + +func (i DeviceCapacityPatchArgs) ToDeviceCapacityPatchOutput() DeviceCapacityPatchOutput { + return i.ToDeviceCapacityPatchOutputWithContext(context.Background()) +} + +func (i DeviceCapacityPatchArgs) ToDeviceCapacityPatchOutputWithContext(ctx context.Context) DeviceCapacityPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCapacityPatchOutput) +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityPatchOutput struct{ *pulumi.OutputState } + +func (DeviceCapacityPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCapacityPatch)(nil)).Elem() +} + +func (o DeviceCapacityPatchOutput) ToDeviceCapacityPatchOutput() DeviceCapacityPatchOutput { + return o +} + +func (o DeviceCapacityPatchOutput) ToDeviceCapacityPatchOutputWithContext(ctx context.Context) DeviceCapacityPatchOutput { + return o +} + +// Value defines how much of a certain device capacity is available. +func (o DeviceCapacityPatchOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceCapacityPatch) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaim struct { + // This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + Config []DeviceClaimConfiguration `pulumi:"config"` + // These constraints must be satisfied by the set of devices that get allocated for the claim. + Constraints []DeviceConstraint `pulumi:"constraints"` + // Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + Requests []DeviceRequest `pulumi:"requests"` +} + +// DeviceClaimInput is an input type that accepts DeviceClaimArgs and DeviceClaimOutput values. +// You can construct a concrete instance of `DeviceClaimInput` via: +// +// DeviceClaimArgs{...} +type DeviceClaimInput interface { + pulumi.Input + + ToDeviceClaimOutput() DeviceClaimOutput + ToDeviceClaimOutputWithContext(context.Context) DeviceClaimOutput +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimArgs struct { + // This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + Config DeviceClaimConfigurationArrayInput `pulumi:"config"` + // These constraints must be satisfied by the set of devices that get allocated for the claim. + Constraints DeviceConstraintArrayInput `pulumi:"constraints"` + // Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + Requests DeviceRequestArrayInput `pulumi:"requests"` +} + +func (DeviceClaimArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaim)(nil)).Elem() +} + +func (i DeviceClaimArgs) ToDeviceClaimOutput() DeviceClaimOutput { + return i.ToDeviceClaimOutputWithContext(context.Background()) +} + +func (i DeviceClaimArgs) ToDeviceClaimOutputWithContext(ctx context.Context) DeviceClaimOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimOutput) +} + +func (i DeviceClaimArgs) ToDeviceClaimPtrOutput() DeviceClaimPtrOutput { + return i.ToDeviceClaimPtrOutputWithContext(context.Background()) +} + +func (i DeviceClaimArgs) ToDeviceClaimPtrOutputWithContext(ctx context.Context) DeviceClaimPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimOutput).ToDeviceClaimPtrOutputWithContext(ctx) +} + +// DeviceClaimPtrInput is an input type that accepts DeviceClaimArgs, DeviceClaimPtr and DeviceClaimPtrOutput values. +// You can construct a concrete instance of `DeviceClaimPtrInput` via: +// +// DeviceClaimArgs{...} +// +// or: +// +// nil +type DeviceClaimPtrInput interface { + pulumi.Input + + ToDeviceClaimPtrOutput() DeviceClaimPtrOutput + ToDeviceClaimPtrOutputWithContext(context.Context) DeviceClaimPtrOutput +} + +type deviceClaimPtrType DeviceClaimArgs + +func DeviceClaimPtr(v *DeviceClaimArgs) DeviceClaimPtrInput { + return (*deviceClaimPtrType)(v) +} + +func (*deviceClaimPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClaim)(nil)).Elem() +} + +func (i *deviceClaimPtrType) ToDeviceClaimPtrOutput() DeviceClaimPtrOutput { + return i.ToDeviceClaimPtrOutputWithContext(context.Background()) +} + +func (i *deviceClaimPtrType) ToDeviceClaimPtrOutputWithContext(ctx context.Context) DeviceClaimPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimPtrOutput) +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimOutput struct{ *pulumi.OutputState } + +func (DeviceClaimOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaim)(nil)).Elem() +} + +func (o DeviceClaimOutput) ToDeviceClaimOutput() DeviceClaimOutput { + return o +} + +func (o DeviceClaimOutput) ToDeviceClaimOutputWithContext(ctx context.Context) DeviceClaimOutput { + return o +} + +func (o DeviceClaimOutput) ToDeviceClaimPtrOutput() DeviceClaimPtrOutput { + return o.ToDeviceClaimPtrOutputWithContext(context.Background()) +} + +func (o DeviceClaimOutput) ToDeviceClaimPtrOutputWithContext(ctx context.Context) DeviceClaimPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceClaim) *DeviceClaim { + return &v + }).(DeviceClaimPtrOutput) +} + +// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. +func (o DeviceClaimOutput) Config() DeviceClaimConfigurationArrayOutput { + return o.ApplyT(func(v DeviceClaim) []DeviceClaimConfiguration { return v.Config }).(DeviceClaimConfigurationArrayOutput) +} + +// These constraints must be satisfied by the set of devices that get allocated for the claim. +func (o DeviceClaimOutput) Constraints() DeviceConstraintArrayOutput { + return o.ApplyT(func(v DeviceClaim) []DeviceConstraint { return v.Constraints }).(DeviceConstraintArrayOutput) +} + +// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. +func (o DeviceClaimOutput) Requests() DeviceRequestArrayOutput { + return o.ApplyT(func(v DeviceClaim) []DeviceRequest { return v.Requests }).(DeviceRequestArrayOutput) +} + +type DeviceClaimPtrOutput struct{ *pulumi.OutputState } + +func (DeviceClaimPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClaim)(nil)).Elem() +} + +func (o DeviceClaimPtrOutput) ToDeviceClaimPtrOutput() DeviceClaimPtrOutput { + return o +} + +func (o DeviceClaimPtrOutput) ToDeviceClaimPtrOutputWithContext(ctx context.Context) DeviceClaimPtrOutput { + return o +} + +func (o DeviceClaimPtrOutput) Elem() DeviceClaimOutput { + return o.ApplyT(func(v *DeviceClaim) DeviceClaim { + if v != nil { + return *v + } + var ret DeviceClaim + return ret + }).(DeviceClaimOutput) +} + +// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. +func (o DeviceClaimPtrOutput) Config() DeviceClaimConfigurationArrayOutput { + return o.ApplyT(func(v *DeviceClaim) []DeviceClaimConfiguration { + if v == nil { + return nil + } + return v.Config + }).(DeviceClaimConfigurationArrayOutput) +} + +// These constraints must be satisfied by the set of devices that get allocated for the claim. +func (o DeviceClaimPtrOutput) Constraints() DeviceConstraintArrayOutput { + return o.ApplyT(func(v *DeviceClaim) []DeviceConstraint { + if v == nil { + return nil + } + return v.Constraints + }).(DeviceConstraintArrayOutput) +} + +// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. +func (o DeviceClaimPtrOutput) Requests() DeviceRequestArrayOutput { + return o.ApplyT(func(v *DeviceClaim) []DeviceRequest { + if v == nil { + return nil + } + return v.Requests + }).(DeviceRequestArrayOutput) +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfiguration struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfiguration `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + Requests []string `pulumi:"requests"` +} + +// DeviceClaimConfigurationInput is an input type that accepts DeviceClaimConfigurationArgs and DeviceClaimConfigurationOutput values. +// You can construct a concrete instance of `DeviceClaimConfigurationInput` via: +// +// DeviceClaimConfigurationArgs{...} +type DeviceClaimConfigurationInput interface { + pulumi.Input + + ToDeviceClaimConfigurationOutput() DeviceClaimConfigurationOutput + ToDeviceClaimConfigurationOutputWithContext(context.Context) DeviceClaimConfigurationOutput +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPtrInput `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + Requests pulumi.StringArrayInput `pulumi:"requests"` +} + +func (DeviceClaimConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimConfiguration)(nil)).Elem() +} + +func (i DeviceClaimConfigurationArgs) ToDeviceClaimConfigurationOutput() DeviceClaimConfigurationOutput { + return i.ToDeviceClaimConfigurationOutputWithContext(context.Background()) +} + +func (i DeviceClaimConfigurationArgs) ToDeviceClaimConfigurationOutputWithContext(ctx context.Context) DeviceClaimConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimConfigurationOutput) +} + +// DeviceClaimConfigurationArrayInput is an input type that accepts DeviceClaimConfigurationArray and DeviceClaimConfigurationArrayOutput values. +// You can construct a concrete instance of `DeviceClaimConfigurationArrayInput` via: +// +// DeviceClaimConfigurationArray{ DeviceClaimConfigurationArgs{...} } +type DeviceClaimConfigurationArrayInput interface { + pulumi.Input + + ToDeviceClaimConfigurationArrayOutput() DeviceClaimConfigurationArrayOutput + ToDeviceClaimConfigurationArrayOutputWithContext(context.Context) DeviceClaimConfigurationArrayOutput +} + +type DeviceClaimConfigurationArray []DeviceClaimConfigurationInput + +func (DeviceClaimConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClaimConfiguration)(nil)).Elem() +} + +func (i DeviceClaimConfigurationArray) ToDeviceClaimConfigurationArrayOutput() DeviceClaimConfigurationArrayOutput { + return i.ToDeviceClaimConfigurationArrayOutputWithContext(context.Background()) +} + +func (i DeviceClaimConfigurationArray) ToDeviceClaimConfigurationArrayOutputWithContext(ctx context.Context) DeviceClaimConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimConfigurationArrayOutput) +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationOutput struct{ *pulumi.OutputState } + +func (DeviceClaimConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimConfiguration)(nil)).Elem() +} + +func (o DeviceClaimConfigurationOutput) ToDeviceClaimConfigurationOutput() DeviceClaimConfigurationOutput { + return o +} + +func (o DeviceClaimConfigurationOutput) ToDeviceClaimConfigurationOutputWithContext(ctx context.Context) DeviceClaimConfigurationOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceClaimConfigurationOutput) Opaque() OpaqueDeviceConfigurationPtrOutput { + return o.ApplyT(func(v DeviceClaimConfiguration) *OpaqueDeviceConfiguration { return v.Opaque }).(OpaqueDeviceConfigurationPtrOutput) +} + +// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. +func (o DeviceClaimConfigurationOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceClaimConfiguration) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +type DeviceClaimConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClaimConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClaimConfiguration)(nil)).Elem() +} + +func (o DeviceClaimConfigurationArrayOutput) ToDeviceClaimConfigurationArrayOutput() DeviceClaimConfigurationArrayOutput { + return o +} + +func (o DeviceClaimConfigurationArrayOutput) ToDeviceClaimConfigurationArrayOutputWithContext(ctx context.Context) DeviceClaimConfigurationArrayOutput { + return o +} + +func (o DeviceClaimConfigurationArrayOutput) Index(i pulumi.IntInput) DeviceClaimConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClaimConfiguration { + return vs[0].([]DeviceClaimConfiguration)[vs[1].(int)] + }).(DeviceClaimConfigurationOutput) +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationPatch struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfigurationPatch `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + Requests []string `pulumi:"requests"` +} + +// DeviceClaimConfigurationPatchInput is an input type that accepts DeviceClaimConfigurationPatchArgs and DeviceClaimConfigurationPatchOutput values. +// You can construct a concrete instance of `DeviceClaimConfigurationPatchInput` via: +// +// DeviceClaimConfigurationPatchArgs{...} +type DeviceClaimConfigurationPatchInput interface { + pulumi.Input + + ToDeviceClaimConfigurationPatchOutput() DeviceClaimConfigurationPatchOutput + ToDeviceClaimConfigurationPatchOutputWithContext(context.Context) DeviceClaimConfigurationPatchOutput +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationPatchArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPatchPtrInput `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + Requests pulumi.StringArrayInput `pulumi:"requests"` +} + +func (DeviceClaimConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimConfigurationPatch)(nil)).Elem() +} + +func (i DeviceClaimConfigurationPatchArgs) ToDeviceClaimConfigurationPatchOutput() DeviceClaimConfigurationPatchOutput { + return i.ToDeviceClaimConfigurationPatchOutputWithContext(context.Background()) +} + +func (i DeviceClaimConfigurationPatchArgs) ToDeviceClaimConfigurationPatchOutputWithContext(ctx context.Context) DeviceClaimConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimConfigurationPatchOutput) +} + +// DeviceClaimConfigurationPatchArrayInput is an input type that accepts DeviceClaimConfigurationPatchArray and DeviceClaimConfigurationPatchArrayOutput values. +// You can construct a concrete instance of `DeviceClaimConfigurationPatchArrayInput` via: +// +// DeviceClaimConfigurationPatchArray{ DeviceClaimConfigurationPatchArgs{...} } +type DeviceClaimConfigurationPatchArrayInput interface { + pulumi.Input + + ToDeviceClaimConfigurationPatchArrayOutput() DeviceClaimConfigurationPatchArrayOutput + ToDeviceClaimConfigurationPatchArrayOutputWithContext(context.Context) DeviceClaimConfigurationPatchArrayOutput +} + +type DeviceClaimConfigurationPatchArray []DeviceClaimConfigurationPatchInput + +func (DeviceClaimConfigurationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClaimConfigurationPatch)(nil)).Elem() +} + +func (i DeviceClaimConfigurationPatchArray) ToDeviceClaimConfigurationPatchArrayOutput() DeviceClaimConfigurationPatchArrayOutput { + return i.ToDeviceClaimConfigurationPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceClaimConfigurationPatchArray) ToDeviceClaimConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceClaimConfigurationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimConfigurationPatchArrayOutput) +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClaimConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimConfigurationPatch)(nil)).Elem() +} + +func (o DeviceClaimConfigurationPatchOutput) ToDeviceClaimConfigurationPatchOutput() DeviceClaimConfigurationPatchOutput { + return o +} + +func (o DeviceClaimConfigurationPatchOutput) ToDeviceClaimConfigurationPatchOutputWithContext(ctx context.Context) DeviceClaimConfigurationPatchOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceClaimConfigurationPatchOutput) Opaque() OpaqueDeviceConfigurationPatchPtrOutput { + return o.ApplyT(func(v DeviceClaimConfigurationPatch) *OpaqueDeviceConfigurationPatch { return v.Opaque }).(OpaqueDeviceConfigurationPatchPtrOutput) +} + +// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. +func (o DeviceClaimConfigurationPatchOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceClaimConfigurationPatch) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +type DeviceClaimConfigurationPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClaimConfigurationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClaimConfigurationPatch)(nil)).Elem() +} + +func (o DeviceClaimConfigurationPatchArrayOutput) ToDeviceClaimConfigurationPatchArrayOutput() DeviceClaimConfigurationPatchArrayOutput { + return o +} + +func (o DeviceClaimConfigurationPatchArrayOutput) ToDeviceClaimConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceClaimConfigurationPatchArrayOutput { + return o +} + +func (o DeviceClaimConfigurationPatchArrayOutput) Index(i pulumi.IntInput) DeviceClaimConfigurationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClaimConfigurationPatch { + return vs[0].([]DeviceClaimConfigurationPatch)[vs[1].(int)] + }).(DeviceClaimConfigurationPatchOutput) +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimPatch struct { + // This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + Config []DeviceClaimConfigurationPatch `pulumi:"config"` + // These constraints must be satisfied by the set of devices that get allocated for the claim. + Constraints []DeviceConstraintPatch `pulumi:"constraints"` + // Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + Requests []DeviceRequestPatch `pulumi:"requests"` +} + +// DeviceClaimPatchInput is an input type that accepts DeviceClaimPatchArgs and DeviceClaimPatchOutput values. +// You can construct a concrete instance of `DeviceClaimPatchInput` via: +// +// DeviceClaimPatchArgs{...} +type DeviceClaimPatchInput interface { + pulumi.Input + + ToDeviceClaimPatchOutput() DeviceClaimPatchOutput + ToDeviceClaimPatchOutputWithContext(context.Context) DeviceClaimPatchOutput +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimPatchArgs struct { + // This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + Config DeviceClaimConfigurationPatchArrayInput `pulumi:"config"` + // These constraints must be satisfied by the set of devices that get allocated for the claim. + Constraints DeviceConstraintPatchArrayInput `pulumi:"constraints"` + // Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + Requests DeviceRequestPatchArrayInput `pulumi:"requests"` +} + +func (DeviceClaimPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimPatch)(nil)).Elem() +} + +func (i DeviceClaimPatchArgs) ToDeviceClaimPatchOutput() DeviceClaimPatchOutput { + return i.ToDeviceClaimPatchOutputWithContext(context.Background()) +} + +func (i DeviceClaimPatchArgs) ToDeviceClaimPatchOutputWithContext(ctx context.Context) DeviceClaimPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimPatchOutput) +} + +func (i DeviceClaimPatchArgs) ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput { + return i.ToDeviceClaimPatchPtrOutputWithContext(context.Background()) +} + +func (i DeviceClaimPatchArgs) ToDeviceClaimPatchPtrOutputWithContext(ctx context.Context) DeviceClaimPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimPatchOutput).ToDeviceClaimPatchPtrOutputWithContext(ctx) +} + +// DeviceClaimPatchPtrInput is an input type that accepts DeviceClaimPatchArgs, DeviceClaimPatchPtr and DeviceClaimPatchPtrOutput values. +// You can construct a concrete instance of `DeviceClaimPatchPtrInput` via: +// +// DeviceClaimPatchArgs{...} +// +// or: +// +// nil +type DeviceClaimPatchPtrInput interface { + pulumi.Input + + ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput + ToDeviceClaimPatchPtrOutputWithContext(context.Context) DeviceClaimPatchPtrOutput +} + +type deviceClaimPatchPtrType DeviceClaimPatchArgs + +func DeviceClaimPatchPtr(v *DeviceClaimPatchArgs) DeviceClaimPatchPtrInput { + return (*deviceClaimPatchPtrType)(v) +} + +func (*deviceClaimPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClaimPatch)(nil)).Elem() +} + +func (i *deviceClaimPatchPtrType) ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput { + return i.ToDeviceClaimPatchPtrOutputWithContext(context.Background()) +} + +func (i *deviceClaimPatchPtrType) ToDeviceClaimPatchPtrOutputWithContext(ctx context.Context) DeviceClaimPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimPatchPtrOutput) +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClaimPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimPatch)(nil)).Elem() +} + +func (o DeviceClaimPatchOutput) ToDeviceClaimPatchOutput() DeviceClaimPatchOutput { + return o +} + +func (o DeviceClaimPatchOutput) ToDeviceClaimPatchOutputWithContext(ctx context.Context) DeviceClaimPatchOutput { + return o +} + +func (o DeviceClaimPatchOutput) ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput { + return o.ToDeviceClaimPatchPtrOutputWithContext(context.Background()) +} + +func (o DeviceClaimPatchOutput) ToDeviceClaimPatchPtrOutputWithContext(ctx context.Context) DeviceClaimPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceClaimPatch) *DeviceClaimPatch { + return &v + }).(DeviceClaimPatchPtrOutput) +} + +// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. +func (o DeviceClaimPatchOutput) Config() DeviceClaimConfigurationPatchArrayOutput { + return o.ApplyT(func(v DeviceClaimPatch) []DeviceClaimConfigurationPatch { return v.Config }).(DeviceClaimConfigurationPatchArrayOutput) +} + +// These constraints must be satisfied by the set of devices that get allocated for the claim. +func (o DeviceClaimPatchOutput) Constraints() DeviceConstraintPatchArrayOutput { + return o.ApplyT(func(v DeviceClaimPatch) []DeviceConstraintPatch { return v.Constraints }).(DeviceConstraintPatchArrayOutput) +} + +// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. +func (o DeviceClaimPatchOutput) Requests() DeviceRequestPatchArrayOutput { + return o.ApplyT(func(v DeviceClaimPatch) []DeviceRequestPatch { return v.Requests }).(DeviceRequestPatchArrayOutput) +} + +type DeviceClaimPatchPtrOutput struct{ *pulumi.OutputState } + +func (DeviceClaimPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClaimPatch)(nil)).Elem() +} + +func (o DeviceClaimPatchPtrOutput) ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput { + return o +} + +func (o DeviceClaimPatchPtrOutput) ToDeviceClaimPatchPtrOutputWithContext(ctx context.Context) DeviceClaimPatchPtrOutput { + return o +} + +func (o DeviceClaimPatchPtrOutput) Elem() DeviceClaimPatchOutput { + return o.ApplyT(func(v *DeviceClaimPatch) DeviceClaimPatch { + if v != nil { + return *v + } + var ret DeviceClaimPatch + return ret + }).(DeviceClaimPatchOutput) +} + +// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. +func (o DeviceClaimPatchPtrOutput) Config() DeviceClaimConfigurationPatchArrayOutput { + return o.ApplyT(func(v *DeviceClaimPatch) []DeviceClaimConfigurationPatch { + if v == nil { + return nil + } + return v.Config + }).(DeviceClaimConfigurationPatchArrayOutput) +} + +// These constraints must be satisfied by the set of devices that get allocated for the claim. +func (o DeviceClaimPatchPtrOutput) Constraints() DeviceConstraintPatchArrayOutput { + return o.ApplyT(func(v *DeviceClaimPatch) []DeviceConstraintPatch { + if v == nil { + return nil + } + return v.Constraints + }).(DeviceConstraintPatchArrayOutput) +} + +// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. +func (o DeviceClaimPatchPtrOutput) Requests() DeviceRequestPatchArrayOutput { + return o.ApplyT(func(v *DeviceClaimPatch) []DeviceRequestPatch { + if v == nil { + return nil + } + return v.Requests + }).(DeviceRequestPatchArrayOutput) +} + +// 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. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpec `pulumi:"spec"` +} + +// DeviceClassTypeInput is an input type that accepts DeviceClassTypeArgs and DeviceClassTypeOutput values. +// You can construct a concrete instance of `DeviceClassTypeInput` via: +// +// DeviceClassTypeArgs{...} +type DeviceClassTypeInput interface { + pulumi.Input + + ToDeviceClassTypeOutput() DeviceClassTypeOutput + ToDeviceClassTypeOutputWithContext(context.Context) DeviceClassTypeOutput +} + +// 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. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecInput `pulumi:"spec"` +} + +func (DeviceClassTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassType)(nil)).Elem() +} + +func (i DeviceClassTypeArgs) ToDeviceClassTypeOutput() DeviceClassTypeOutput { + return i.ToDeviceClassTypeOutputWithContext(context.Background()) +} + +func (i DeviceClassTypeArgs) ToDeviceClassTypeOutputWithContext(ctx context.Context) DeviceClassTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassTypeOutput) +} + +// DeviceClassTypeArrayInput is an input type that accepts DeviceClassTypeArray and DeviceClassTypeArrayOutput values. +// You can construct a concrete instance of `DeviceClassTypeArrayInput` via: +// +// DeviceClassTypeArray{ DeviceClassTypeArgs{...} } +type DeviceClassTypeArrayInput interface { + pulumi.Input + + ToDeviceClassTypeArrayOutput() DeviceClassTypeArrayOutput + ToDeviceClassTypeArrayOutputWithContext(context.Context) DeviceClassTypeArrayOutput +} + +type DeviceClassTypeArray []DeviceClassTypeInput + +func (DeviceClassTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassType)(nil)).Elem() +} + +func (i DeviceClassTypeArray) ToDeviceClassTypeArrayOutput() DeviceClassTypeArrayOutput { + return i.ToDeviceClassTypeArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassTypeArray) ToDeviceClassTypeArrayOutputWithContext(ctx context.Context) DeviceClassTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassTypeArrayOutput) +} + +// 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. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassTypeOutput struct{ *pulumi.OutputState } + +func (DeviceClassTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassType)(nil)).Elem() +} + +func (o DeviceClassTypeOutput) ToDeviceClassTypeOutput() DeviceClassTypeOutput { + return o +} + +func (o DeviceClassTypeOutput) ToDeviceClassTypeOutputWithContext(ctx context.Context) DeviceClassTypeOutput { + return o +} + +// 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 +func (o DeviceClassTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o DeviceClassTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o DeviceClassTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v DeviceClassType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Spec defines what can be allocated and how to configure it. +// +// 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. +// +// Changing the spec automatically increments the metadata.generation number. +func (o DeviceClassTypeOutput) Spec() DeviceClassSpecOutput { + return o.ApplyT(func(v DeviceClassType) DeviceClassSpec { return v.Spec }).(DeviceClassSpecOutput) +} + +type DeviceClassTypeArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassType)(nil)).Elem() +} + +func (o DeviceClassTypeArrayOutput) ToDeviceClassTypeArrayOutput() DeviceClassTypeArrayOutput { + return o +} + +func (o DeviceClassTypeArrayOutput) ToDeviceClassTypeArrayOutputWithContext(ctx context.Context) DeviceClassTypeArrayOutput { + return o +} + +func (o DeviceClassTypeArrayOutput) Index(i pulumi.IntInput) DeviceClassTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClassType { + return vs[0].([]DeviceClassType)[vs[1].(int)] + }).(DeviceClassTypeOutput) +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfiguration struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfiguration `pulumi:"opaque"` +} + +// DeviceClassConfigurationInput is an input type that accepts DeviceClassConfigurationArgs and DeviceClassConfigurationOutput values. +// You can construct a concrete instance of `DeviceClassConfigurationInput` via: +// +// DeviceClassConfigurationArgs{...} +type DeviceClassConfigurationInput interface { + pulumi.Input + + ToDeviceClassConfigurationOutput() DeviceClassConfigurationOutput + ToDeviceClassConfigurationOutputWithContext(context.Context) DeviceClassConfigurationOutput +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPtrInput `pulumi:"opaque"` +} + +func (DeviceClassConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassConfiguration)(nil)).Elem() +} + +func (i DeviceClassConfigurationArgs) ToDeviceClassConfigurationOutput() DeviceClassConfigurationOutput { + return i.ToDeviceClassConfigurationOutputWithContext(context.Background()) +} + +func (i DeviceClassConfigurationArgs) ToDeviceClassConfigurationOutputWithContext(ctx context.Context) DeviceClassConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassConfigurationOutput) +} + +// DeviceClassConfigurationArrayInput is an input type that accepts DeviceClassConfigurationArray and DeviceClassConfigurationArrayOutput values. +// You can construct a concrete instance of `DeviceClassConfigurationArrayInput` via: +// +// DeviceClassConfigurationArray{ DeviceClassConfigurationArgs{...} } +type DeviceClassConfigurationArrayInput interface { + pulumi.Input + + ToDeviceClassConfigurationArrayOutput() DeviceClassConfigurationArrayOutput + ToDeviceClassConfigurationArrayOutputWithContext(context.Context) DeviceClassConfigurationArrayOutput +} + +type DeviceClassConfigurationArray []DeviceClassConfigurationInput + +func (DeviceClassConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassConfiguration)(nil)).Elem() +} + +func (i DeviceClassConfigurationArray) ToDeviceClassConfigurationArrayOutput() DeviceClassConfigurationArrayOutput { + return i.ToDeviceClassConfigurationArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassConfigurationArray) ToDeviceClassConfigurationArrayOutputWithContext(ctx context.Context) DeviceClassConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassConfigurationArrayOutput) +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationOutput struct{ *pulumi.OutputState } + +func (DeviceClassConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassConfiguration)(nil)).Elem() +} + +func (o DeviceClassConfigurationOutput) ToDeviceClassConfigurationOutput() DeviceClassConfigurationOutput { + return o +} + +func (o DeviceClassConfigurationOutput) ToDeviceClassConfigurationOutputWithContext(ctx context.Context) DeviceClassConfigurationOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceClassConfigurationOutput) Opaque() OpaqueDeviceConfigurationPtrOutput { + return o.ApplyT(func(v DeviceClassConfiguration) *OpaqueDeviceConfiguration { return v.Opaque }).(OpaqueDeviceConfigurationPtrOutput) +} + +type DeviceClassConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassConfiguration)(nil)).Elem() +} + +func (o DeviceClassConfigurationArrayOutput) ToDeviceClassConfigurationArrayOutput() DeviceClassConfigurationArrayOutput { + return o +} + +func (o DeviceClassConfigurationArrayOutput) ToDeviceClassConfigurationArrayOutputWithContext(ctx context.Context) DeviceClassConfigurationArrayOutput { + return o +} + +func (o DeviceClassConfigurationArrayOutput) Index(i pulumi.IntInput) DeviceClassConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClassConfiguration { + return vs[0].([]DeviceClassConfiguration)[vs[1].(int)] + }).(DeviceClassConfigurationOutput) +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationPatch struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfigurationPatch `pulumi:"opaque"` +} + +// DeviceClassConfigurationPatchInput is an input type that accepts DeviceClassConfigurationPatchArgs and DeviceClassConfigurationPatchOutput values. +// You can construct a concrete instance of `DeviceClassConfigurationPatchInput` via: +// +// DeviceClassConfigurationPatchArgs{...} +type DeviceClassConfigurationPatchInput interface { + pulumi.Input + + ToDeviceClassConfigurationPatchOutput() DeviceClassConfigurationPatchOutput + ToDeviceClassConfigurationPatchOutputWithContext(context.Context) DeviceClassConfigurationPatchOutput +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationPatchArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPatchPtrInput `pulumi:"opaque"` +} + +func (DeviceClassConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassConfigurationPatch)(nil)).Elem() +} + +func (i DeviceClassConfigurationPatchArgs) ToDeviceClassConfigurationPatchOutput() DeviceClassConfigurationPatchOutput { + return i.ToDeviceClassConfigurationPatchOutputWithContext(context.Background()) +} + +func (i DeviceClassConfigurationPatchArgs) ToDeviceClassConfigurationPatchOutputWithContext(ctx context.Context) DeviceClassConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassConfigurationPatchOutput) +} + +// DeviceClassConfigurationPatchArrayInput is an input type that accepts DeviceClassConfigurationPatchArray and DeviceClassConfigurationPatchArrayOutput values. +// You can construct a concrete instance of `DeviceClassConfigurationPatchArrayInput` via: +// +// DeviceClassConfigurationPatchArray{ DeviceClassConfigurationPatchArgs{...} } +type DeviceClassConfigurationPatchArrayInput interface { + pulumi.Input + + ToDeviceClassConfigurationPatchArrayOutput() DeviceClassConfigurationPatchArrayOutput + ToDeviceClassConfigurationPatchArrayOutputWithContext(context.Context) DeviceClassConfigurationPatchArrayOutput +} + +type DeviceClassConfigurationPatchArray []DeviceClassConfigurationPatchInput + +func (DeviceClassConfigurationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassConfigurationPatch)(nil)).Elem() +} + +func (i DeviceClassConfigurationPatchArray) ToDeviceClassConfigurationPatchArrayOutput() DeviceClassConfigurationPatchArrayOutput { + return i.ToDeviceClassConfigurationPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassConfigurationPatchArray) ToDeviceClassConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceClassConfigurationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassConfigurationPatchArrayOutput) +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClassConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassConfigurationPatch)(nil)).Elem() +} + +func (o DeviceClassConfigurationPatchOutput) ToDeviceClassConfigurationPatchOutput() DeviceClassConfigurationPatchOutput { + return o +} + +func (o DeviceClassConfigurationPatchOutput) ToDeviceClassConfigurationPatchOutputWithContext(ctx context.Context) DeviceClassConfigurationPatchOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceClassConfigurationPatchOutput) Opaque() OpaqueDeviceConfigurationPatchPtrOutput { + return o.ApplyT(func(v DeviceClassConfigurationPatch) *OpaqueDeviceConfigurationPatch { return v.Opaque }).(OpaqueDeviceConfigurationPatchPtrOutput) +} + +type DeviceClassConfigurationPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassConfigurationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassConfigurationPatch)(nil)).Elem() +} + +func (o DeviceClassConfigurationPatchArrayOutput) ToDeviceClassConfigurationPatchArrayOutput() DeviceClassConfigurationPatchArrayOutput { + return o +} + +func (o DeviceClassConfigurationPatchArrayOutput) ToDeviceClassConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceClassConfigurationPatchArrayOutput { + return o +} + +func (o DeviceClassConfigurationPatchArrayOutput) Index(i pulumi.IntInput) DeviceClassConfigurationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClassConfigurationPatch { + return vs[0].([]DeviceClassConfigurationPatch)[vs[1].(int)] + }).(DeviceClassConfigurationPatchOutput) +} + +// DeviceClassList is a collection of classes. +type DeviceClassListType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource classes. + Items []DeviceClassType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// DeviceClassListTypeInput is an input type that accepts DeviceClassListTypeArgs and DeviceClassListTypeOutput values. +// You can construct a concrete instance of `DeviceClassListTypeInput` via: +// +// DeviceClassListTypeArgs{...} +type DeviceClassListTypeInput interface { + pulumi.Input + + ToDeviceClassListTypeOutput() DeviceClassListTypeOutput + ToDeviceClassListTypeOutputWithContext(context.Context) DeviceClassListTypeOutput +} + +// DeviceClassList is a collection of classes. +type DeviceClassListTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Items is the list of resource classes. + Items DeviceClassTypeArrayInput `pulumi:"items"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (DeviceClassListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassListType)(nil)).Elem() +} + +func (i DeviceClassListTypeArgs) ToDeviceClassListTypeOutput() DeviceClassListTypeOutput { + return i.ToDeviceClassListTypeOutputWithContext(context.Background()) +} + +func (i DeviceClassListTypeArgs) ToDeviceClassListTypeOutputWithContext(ctx context.Context) DeviceClassListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassListTypeOutput) +} + +// DeviceClassList is a collection of classes. +type DeviceClassListTypeOutput struct{ *pulumi.OutputState } + +func (DeviceClassListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassListType)(nil)).Elem() +} + +func (o DeviceClassListTypeOutput) ToDeviceClassListTypeOutput() DeviceClassListTypeOutput { + return o +} + +func (o DeviceClassListTypeOutput) ToDeviceClassListTypeOutputWithContext(ctx context.Context) DeviceClassListTypeOutput { + return o +} + +// 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 +func (o DeviceClassListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Items is the list of resource classes. +func (o DeviceClassListTypeOutput) Items() DeviceClassTypeArrayOutput { + return o.ApplyT(func(v DeviceClassListType) []DeviceClassType { return v.Items }).(DeviceClassTypeArrayOutput) +} + +// 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 +func (o DeviceClassListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata +func (o DeviceClassListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v DeviceClassListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// 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. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassPatchType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec *DeviceClassSpecPatch `pulumi:"spec"` +} + +// DeviceClassPatchTypeInput is an input type that accepts DeviceClassPatchTypeArgs and DeviceClassPatchTypeOutput values. +// You can construct a concrete instance of `DeviceClassPatchTypeInput` via: +// +// DeviceClassPatchTypeArgs{...} +type DeviceClassPatchTypeInput interface { + pulumi.Input + + ToDeviceClassPatchTypeOutput() DeviceClassPatchTypeOutput + ToDeviceClassPatchTypeOutputWithContext(context.Context) DeviceClassPatchTypeOutput +} + +// 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. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassPatchTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // 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. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecPatchPtrInput `pulumi:"spec"` +} + +func (DeviceClassPatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassPatchType)(nil)).Elem() +} + +func (i DeviceClassPatchTypeArgs) ToDeviceClassPatchTypeOutput() DeviceClassPatchTypeOutput { + return i.ToDeviceClassPatchTypeOutputWithContext(context.Background()) +} + +func (i DeviceClassPatchTypeArgs) ToDeviceClassPatchTypeOutputWithContext(ctx context.Context) DeviceClassPatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassPatchTypeOutput) +} + +// 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. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassPatchTypeOutput struct{ *pulumi.OutputState } + +func (DeviceClassPatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassPatchType)(nil)).Elem() +} + +func (o DeviceClassPatchTypeOutput) ToDeviceClassPatchTypeOutput() DeviceClassPatchTypeOutput { + return o +} + +func (o DeviceClassPatchTypeOutput) ToDeviceClassPatchTypeOutputWithContext(ctx context.Context) DeviceClassPatchTypeOutput { + return o +} + +// 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 +func (o DeviceClassPatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassPatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o DeviceClassPatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassPatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o DeviceClassPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v DeviceClassPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Spec defines what can be allocated and how to configure it. +// +// 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. +// +// Changing the spec automatically increments the metadata.generation number. +func (o DeviceClassPatchTypeOutput) Spec() DeviceClassSpecPatchPtrOutput { + return o.ApplyT(func(v DeviceClassPatchType) *DeviceClassSpecPatch { return v.Spec }).(DeviceClassSpecPatchPtrOutput) +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpec struct { + // Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + // + // They are passed to the driver, but are not considered while allocating the claim. + Config []DeviceClassConfiguration `pulumi:"config"` + // Each selector must be satisfied by a device which is claimed via this class. + Selectors []DeviceSelector `pulumi:"selectors"` +} + +// DeviceClassSpecInput is an input type that accepts DeviceClassSpecArgs and DeviceClassSpecOutput values. +// You can construct a concrete instance of `DeviceClassSpecInput` via: +// +// DeviceClassSpecArgs{...} +type DeviceClassSpecInput interface { + pulumi.Input + + ToDeviceClassSpecOutput() DeviceClassSpecOutput + ToDeviceClassSpecOutputWithContext(context.Context) DeviceClassSpecOutput +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecArgs struct { + // Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + // + // They are passed to the driver, but are not considered while allocating the claim. + Config DeviceClassConfigurationArrayInput `pulumi:"config"` + // Each selector must be satisfied by a device which is claimed via this class. + Selectors DeviceSelectorArrayInput `pulumi:"selectors"` +} + +func (DeviceClassSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassSpec)(nil)).Elem() +} + +func (i DeviceClassSpecArgs) ToDeviceClassSpecOutput() DeviceClassSpecOutput { + return i.ToDeviceClassSpecOutputWithContext(context.Background()) +} + +func (i DeviceClassSpecArgs) ToDeviceClassSpecOutputWithContext(ctx context.Context) DeviceClassSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassSpecOutput) +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecOutput struct{ *pulumi.OutputState } + +func (DeviceClassSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassSpec)(nil)).Elem() +} + +func (o DeviceClassSpecOutput) ToDeviceClassSpecOutput() DeviceClassSpecOutput { + return o +} + +func (o DeviceClassSpecOutput) ToDeviceClassSpecOutputWithContext(ctx context.Context) DeviceClassSpecOutput { + return o +} + +// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. +// +// They are passed to the driver, but are not considered while allocating the claim. +func (o DeviceClassSpecOutput) Config() DeviceClassConfigurationArrayOutput { + return o.ApplyT(func(v DeviceClassSpec) []DeviceClassConfiguration { return v.Config }).(DeviceClassConfigurationArrayOutput) +} + +// Each selector must be satisfied by a device which is claimed via this class. +func (o DeviceClassSpecOutput) Selectors() DeviceSelectorArrayOutput { + return o.ApplyT(func(v DeviceClassSpec) []DeviceSelector { return v.Selectors }).(DeviceSelectorArrayOutput) +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecPatch struct { + // Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + // + // They are passed to the driver, but are not considered while allocating the claim. + Config []DeviceClassConfigurationPatch `pulumi:"config"` + // Each selector must be satisfied by a device which is claimed via this class. + Selectors []DeviceSelectorPatch `pulumi:"selectors"` +} + +// DeviceClassSpecPatchInput is an input type that accepts DeviceClassSpecPatchArgs and DeviceClassSpecPatchOutput values. +// You can construct a concrete instance of `DeviceClassSpecPatchInput` via: +// +// DeviceClassSpecPatchArgs{...} +type DeviceClassSpecPatchInput interface { + pulumi.Input + + ToDeviceClassSpecPatchOutput() DeviceClassSpecPatchOutput + ToDeviceClassSpecPatchOutputWithContext(context.Context) DeviceClassSpecPatchOutput +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecPatchArgs struct { + // Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + // + // They are passed to the driver, but are not considered while allocating the claim. + Config DeviceClassConfigurationPatchArrayInput `pulumi:"config"` + // Each selector must be satisfied by a device which is claimed via this class. + Selectors DeviceSelectorPatchArrayInput `pulumi:"selectors"` +} + +func (DeviceClassSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassSpecPatch)(nil)).Elem() +} + +func (i DeviceClassSpecPatchArgs) ToDeviceClassSpecPatchOutput() DeviceClassSpecPatchOutput { + return i.ToDeviceClassSpecPatchOutputWithContext(context.Background()) +} + +func (i DeviceClassSpecPatchArgs) ToDeviceClassSpecPatchOutputWithContext(ctx context.Context) DeviceClassSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassSpecPatchOutput) +} + +func (i DeviceClassSpecPatchArgs) ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput { + return i.ToDeviceClassSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i DeviceClassSpecPatchArgs) ToDeviceClassSpecPatchPtrOutputWithContext(ctx context.Context) DeviceClassSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassSpecPatchOutput).ToDeviceClassSpecPatchPtrOutputWithContext(ctx) +} + +// DeviceClassSpecPatchPtrInput is an input type that accepts DeviceClassSpecPatchArgs, DeviceClassSpecPatchPtr and DeviceClassSpecPatchPtrOutput values. +// You can construct a concrete instance of `DeviceClassSpecPatchPtrInput` via: +// +// DeviceClassSpecPatchArgs{...} +// +// or: +// +// nil +type DeviceClassSpecPatchPtrInput interface { + pulumi.Input + + ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput + ToDeviceClassSpecPatchPtrOutputWithContext(context.Context) DeviceClassSpecPatchPtrOutput +} + +type deviceClassSpecPatchPtrType DeviceClassSpecPatchArgs + +func DeviceClassSpecPatchPtr(v *DeviceClassSpecPatchArgs) DeviceClassSpecPatchPtrInput { + return (*deviceClassSpecPatchPtrType)(v) +} + +func (*deviceClassSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassSpecPatch)(nil)).Elem() +} + +func (i *deviceClassSpecPatchPtrType) ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput { + return i.ToDeviceClassSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *deviceClassSpecPatchPtrType) ToDeviceClassSpecPatchPtrOutputWithContext(ctx context.Context) DeviceClassSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassSpecPatchPtrOutput) +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClassSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassSpecPatch)(nil)).Elem() +} + +func (o DeviceClassSpecPatchOutput) ToDeviceClassSpecPatchOutput() DeviceClassSpecPatchOutput { + return o +} + +func (o DeviceClassSpecPatchOutput) ToDeviceClassSpecPatchOutputWithContext(ctx context.Context) DeviceClassSpecPatchOutput { + return o +} + +func (o DeviceClassSpecPatchOutput) ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput { + return o.ToDeviceClassSpecPatchPtrOutputWithContext(context.Background()) +} + +func (o DeviceClassSpecPatchOutput) ToDeviceClassSpecPatchPtrOutputWithContext(ctx context.Context) DeviceClassSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceClassSpecPatch) *DeviceClassSpecPatch { + return &v + }).(DeviceClassSpecPatchPtrOutput) +} + +// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. +// +// They are passed to the driver, but are not considered while allocating the claim. +func (o DeviceClassSpecPatchOutput) Config() DeviceClassConfigurationPatchArrayOutput { + return o.ApplyT(func(v DeviceClassSpecPatch) []DeviceClassConfigurationPatch { return v.Config }).(DeviceClassConfigurationPatchArrayOutput) +} + +// Each selector must be satisfied by a device which is claimed via this class. +func (o DeviceClassSpecPatchOutput) Selectors() DeviceSelectorPatchArrayOutput { + return o.ApplyT(func(v DeviceClassSpecPatch) []DeviceSelectorPatch { return v.Selectors }).(DeviceSelectorPatchArrayOutput) +} + +type DeviceClassSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (DeviceClassSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassSpecPatch)(nil)).Elem() +} + +func (o DeviceClassSpecPatchPtrOutput) ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput { + return o +} + +func (o DeviceClassSpecPatchPtrOutput) ToDeviceClassSpecPatchPtrOutputWithContext(ctx context.Context) DeviceClassSpecPatchPtrOutput { + return o +} + +func (o DeviceClassSpecPatchPtrOutput) Elem() DeviceClassSpecPatchOutput { + return o.ApplyT(func(v *DeviceClassSpecPatch) DeviceClassSpecPatch { + if v != nil { + return *v + } + var ret DeviceClassSpecPatch + return ret + }).(DeviceClassSpecPatchOutput) +} + +// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. +// +// They are passed to the driver, but are not considered while allocating the claim. +func (o DeviceClassSpecPatchPtrOutput) Config() DeviceClassConfigurationPatchArrayOutput { + return o.ApplyT(func(v *DeviceClassSpecPatch) []DeviceClassConfigurationPatch { + if v == nil { + return nil + } + return v.Config + }).(DeviceClassConfigurationPatchArrayOutput) +} + +// Each selector must be satisfied by a device which is claimed via this class. +func (o DeviceClassSpecPatchPtrOutput) Selectors() DeviceSelectorPatchArrayOutput { + return o.ApplyT(func(v *DeviceClassSpecPatch) []DeviceSelectorPatch { + if v == nil { + return nil + } + return v.Selectors + }).(DeviceSelectorPatchArrayOutput) +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraint struct { + // MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + // + // 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. + // + // Must include the domain qualifier. + MatchAttribute *string `pulumi:"matchAttribute"` + // 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. + Requests []string `pulumi:"requests"` +} + +// DeviceConstraintInput is an input type that accepts DeviceConstraintArgs and DeviceConstraintOutput values. +// You can construct a concrete instance of `DeviceConstraintInput` via: +// +// DeviceConstraintArgs{...} +type DeviceConstraintInput interface { + pulumi.Input + + ToDeviceConstraintOutput() DeviceConstraintOutput + ToDeviceConstraintOutputWithContext(context.Context) DeviceConstraintOutput +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintArgs struct { + // MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + // + // 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. + // + // Must include the domain qualifier. + MatchAttribute pulumi.StringPtrInput `pulumi:"matchAttribute"` + // 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. + Requests pulumi.StringArrayInput `pulumi:"requests"` +} + +func (DeviceConstraintArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceConstraint)(nil)).Elem() +} + +func (i DeviceConstraintArgs) ToDeviceConstraintOutput() DeviceConstraintOutput { + return i.ToDeviceConstraintOutputWithContext(context.Background()) +} + +func (i DeviceConstraintArgs) ToDeviceConstraintOutputWithContext(ctx context.Context) DeviceConstraintOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceConstraintOutput) +} + +// DeviceConstraintArrayInput is an input type that accepts DeviceConstraintArray and DeviceConstraintArrayOutput values. +// You can construct a concrete instance of `DeviceConstraintArrayInput` via: +// +// DeviceConstraintArray{ DeviceConstraintArgs{...} } +type DeviceConstraintArrayInput interface { + pulumi.Input + + ToDeviceConstraintArrayOutput() DeviceConstraintArrayOutput + ToDeviceConstraintArrayOutputWithContext(context.Context) DeviceConstraintArrayOutput +} + +type DeviceConstraintArray []DeviceConstraintInput + +func (DeviceConstraintArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceConstraint)(nil)).Elem() +} + +func (i DeviceConstraintArray) ToDeviceConstraintArrayOutput() DeviceConstraintArrayOutput { + return i.ToDeviceConstraintArrayOutputWithContext(context.Background()) +} + +func (i DeviceConstraintArray) ToDeviceConstraintArrayOutputWithContext(ctx context.Context) DeviceConstraintArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceConstraintArrayOutput) +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintOutput struct{ *pulumi.OutputState } + +func (DeviceConstraintOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceConstraint)(nil)).Elem() +} + +func (o DeviceConstraintOutput) ToDeviceConstraintOutput() DeviceConstraintOutput { + return o +} + +func (o DeviceConstraintOutput) ToDeviceConstraintOutputWithContext(ctx context.Context) DeviceConstraintOutput { + return o +} + +// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. +// +// 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. +// +// Must include the domain qualifier. +func (o DeviceConstraintOutput) MatchAttribute() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceConstraint) *string { return v.MatchAttribute }).(pulumi.StringPtrOutput) +} + +// 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. +func (o DeviceConstraintOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceConstraint) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +type DeviceConstraintArrayOutput struct{ *pulumi.OutputState } + +func (DeviceConstraintArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceConstraint)(nil)).Elem() +} + +func (o DeviceConstraintArrayOutput) ToDeviceConstraintArrayOutput() DeviceConstraintArrayOutput { + return o +} + +func (o DeviceConstraintArrayOutput) ToDeviceConstraintArrayOutputWithContext(ctx context.Context) DeviceConstraintArrayOutput { + return o +} + +func (o DeviceConstraintArrayOutput) Index(i pulumi.IntInput) DeviceConstraintOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceConstraint { + return vs[0].([]DeviceConstraint)[vs[1].(int)] + }).(DeviceConstraintOutput) +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintPatch struct { + // MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + // + // 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. + // + // Must include the domain qualifier. + MatchAttribute *string `pulumi:"matchAttribute"` + // 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. + Requests []string `pulumi:"requests"` +} + +// DeviceConstraintPatchInput is an input type that accepts DeviceConstraintPatchArgs and DeviceConstraintPatchOutput values. +// You can construct a concrete instance of `DeviceConstraintPatchInput` via: +// +// DeviceConstraintPatchArgs{...} +type DeviceConstraintPatchInput interface { + pulumi.Input + + ToDeviceConstraintPatchOutput() DeviceConstraintPatchOutput + ToDeviceConstraintPatchOutputWithContext(context.Context) DeviceConstraintPatchOutput +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintPatchArgs struct { + // MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + // + // 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. + // + // Must include the domain qualifier. + MatchAttribute pulumi.StringPtrInput `pulumi:"matchAttribute"` + // 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. + Requests pulumi.StringArrayInput `pulumi:"requests"` +} + +func (DeviceConstraintPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceConstraintPatch)(nil)).Elem() +} + +func (i DeviceConstraintPatchArgs) ToDeviceConstraintPatchOutput() DeviceConstraintPatchOutput { + return i.ToDeviceConstraintPatchOutputWithContext(context.Background()) +} + +func (i DeviceConstraintPatchArgs) ToDeviceConstraintPatchOutputWithContext(ctx context.Context) DeviceConstraintPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceConstraintPatchOutput) +} + +// DeviceConstraintPatchArrayInput is an input type that accepts DeviceConstraintPatchArray and DeviceConstraintPatchArrayOutput values. +// You can construct a concrete instance of `DeviceConstraintPatchArrayInput` via: +// +// DeviceConstraintPatchArray{ DeviceConstraintPatchArgs{...} } +type DeviceConstraintPatchArrayInput interface { + pulumi.Input + + ToDeviceConstraintPatchArrayOutput() DeviceConstraintPatchArrayOutput + ToDeviceConstraintPatchArrayOutputWithContext(context.Context) DeviceConstraintPatchArrayOutput +} + +type DeviceConstraintPatchArray []DeviceConstraintPatchInput + +func (DeviceConstraintPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceConstraintPatch)(nil)).Elem() +} + +func (i DeviceConstraintPatchArray) ToDeviceConstraintPatchArrayOutput() DeviceConstraintPatchArrayOutput { + return i.ToDeviceConstraintPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceConstraintPatchArray) ToDeviceConstraintPatchArrayOutputWithContext(ctx context.Context) DeviceConstraintPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceConstraintPatchArrayOutput) +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintPatchOutput struct{ *pulumi.OutputState } + +func (DeviceConstraintPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceConstraintPatch)(nil)).Elem() +} + +func (o DeviceConstraintPatchOutput) ToDeviceConstraintPatchOutput() DeviceConstraintPatchOutput { + return o +} + +func (o DeviceConstraintPatchOutput) ToDeviceConstraintPatchOutputWithContext(ctx context.Context) DeviceConstraintPatchOutput { + return o +} + +// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. +// +// 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. +// +// Must include the domain qualifier. +func (o DeviceConstraintPatchOutput) MatchAttribute() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceConstraintPatch) *string { return v.MatchAttribute }).(pulumi.StringPtrOutput) +} + +// 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. +func (o DeviceConstraintPatchOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceConstraintPatch) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +type DeviceConstraintPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceConstraintPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceConstraintPatch)(nil)).Elem() +} + +func (o DeviceConstraintPatchArrayOutput) ToDeviceConstraintPatchArrayOutput() DeviceConstraintPatchArrayOutput { + return o +} + +func (o DeviceConstraintPatchArrayOutput) ToDeviceConstraintPatchArrayOutputWithContext(ctx context.Context) DeviceConstraintPatchArrayOutput { + return o +} + +func (o DeviceConstraintPatchArrayOutput) Index(i pulumi.IntInput) DeviceConstraintPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceConstraintPatch { + return vs[0].([]DeviceConstraintPatch)[vs[1].(int)] + }).(DeviceConstraintPatchOutput) +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DevicePatch struct { + // Basic defines one device instance. + Basic *BasicDevicePatch `pulumi:"basic"` + // Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + Name *string `pulumi:"name"` +} + +// DevicePatchInput is an input type that accepts DevicePatchArgs and DevicePatchOutput values. +// You can construct a concrete instance of `DevicePatchInput` via: +// +// DevicePatchArgs{...} +type DevicePatchInput interface { + pulumi.Input + + ToDevicePatchOutput() DevicePatchOutput + ToDevicePatchOutputWithContext(context.Context) DevicePatchOutput +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DevicePatchArgs struct { + // Basic defines one device instance. + Basic BasicDevicePatchPtrInput `pulumi:"basic"` + // Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (DevicePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DevicePatch)(nil)).Elem() +} + +func (i DevicePatchArgs) ToDevicePatchOutput() DevicePatchOutput { + return i.ToDevicePatchOutputWithContext(context.Background()) +} + +func (i DevicePatchArgs) ToDevicePatchOutputWithContext(ctx context.Context) DevicePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DevicePatchOutput) +} + +// DevicePatchArrayInput is an input type that accepts DevicePatchArray and DevicePatchArrayOutput values. +// You can construct a concrete instance of `DevicePatchArrayInput` via: +// +// DevicePatchArray{ DevicePatchArgs{...} } +type DevicePatchArrayInput interface { + pulumi.Input + + ToDevicePatchArrayOutput() DevicePatchArrayOutput + ToDevicePatchArrayOutputWithContext(context.Context) DevicePatchArrayOutput +} + +type DevicePatchArray []DevicePatchInput + +func (DevicePatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DevicePatch)(nil)).Elem() +} + +func (i DevicePatchArray) ToDevicePatchArrayOutput() DevicePatchArrayOutput { + return i.ToDevicePatchArrayOutputWithContext(context.Background()) +} + +func (i DevicePatchArray) ToDevicePatchArrayOutputWithContext(ctx context.Context) DevicePatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DevicePatchArrayOutput) +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DevicePatchOutput struct{ *pulumi.OutputState } + +func (DevicePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DevicePatch)(nil)).Elem() +} + +func (o DevicePatchOutput) ToDevicePatchOutput() DevicePatchOutput { + return o +} + +func (o DevicePatchOutput) ToDevicePatchOutputWithContext(ctx context.Context) DevicePatchOutput { + return o +} + +// Basic defines one device instance. +func (o DevicePatchOutput) Basic() BasicDevicePatchPtrOutput { + return o.ApplyT(func(v DevicePatch) *BasicDevicePatch { return v.Basic }).(BasicDevicePatchPtrOutput) +} + +// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. +func (o DevicePatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DevicePatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type DevicePatchArrayOutput struct{ *pulumi.OutputState } + +func (DevicePatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DevicePatch)(nil)).Elem() +} + +func (o DevicePatchArrayOutput) ToDevicePatchArrayOutput() DevicePatchArrayOutput { + return o +} + +func (o DevicePatchArrayOutput) ToDevicePatchArrayOutputWithContext(ctx context.Context) DevicePatchArrayOutput { + return o +} + +func (o DevicePatchArrayOutput) Index(i pulumi.IntInput) DevicePatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DevicePatch { + return vs[0].([]DevicePatch)[vs[1].(int)] + }).(DevicePatchOutput) +} + +// 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. +// +// 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. +type DeviceRequest struct { + // 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. + // + // 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. + AdminAccess *bool `pulumi:"adminAccess"` + // AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + // + // - ExactCount: This request is for a specific number of devices. + // This is the default. The exact number is provided in the + // count field. + // + // - All: This request is for all of the matching devices in a pool. + // Allocation will fail if some devices are already allocated, + // unless adminAccess is requested. + // + // 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. + // + // More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + AllocationMode *string `pulumi:"allocationMode"` + // 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. + Count *int `pulumi:"count"` + // DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + // + // A class is required. Which classes are available depends on the cluster. + // + // 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. + DeviceClassName string `pulumi:"deviceClassName"` + // Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + // + // Must be a DNS label. + Name string `pulumi:"name"` + // 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. + Selectors []DeviceSelector `pulumi:"selectors"` +} + +// DeviceRequestInput is an input type that accepts DeviceRequestArgs and DeviceRequestOutput values. +// You can construct a concrete instance of `DeviceRequestInput` via: +// +// DeviceRequestArgs{...} +type DeviceRequestInput interface { + pulumi.Input + + ToDeviceRequestOutput() DeviceRequestOutput + ToDeviceRequestOutputWithContext(context.Context) DeviceRequestOutput +} + +// 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. +// +// 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. +type DeviceRequestArgs struct { + // 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. + // + // 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. + AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` + // AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + // + // - ExactCount: This request is for a specific number of devices. + // This is the default. The exact number is provided in the + // count field. + // + // - All: This request is for all of the matching devices in a pool. + // Allocation will fail if some devices are already allocated, + // unless adminAccess is requested. + // + // 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. + // + // More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + AllocationMode pulumi.StringPtrInput `pulumi:"allocationMode"` + // 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. + Count pulumi.IntPtrInput `pulumi:"count"` + // DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + // + // A class is required. Which classes are available depends on the cluster. + // + // 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. + DeviceClassName pulumi.StringInput `pulumi:"deviceClassName"` + // Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + // + // Must be a DNS label. + Name pulumi.StringInput `pulumi:"name"` + // 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. + Selectors DeviceSelectorArrayInput `pulumi:"selectors"` +} + +func (DeviceRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequest)(nil)).Elem() +} + +func (i DeviceRequestArgs) ToDeviceRequestOutput() DeviceRequestOutput { + return i.ToDeviceRequestOutputWithContext(context.Background()) +} + +func (i DeviceRequestArgs) ToDeviceRequestOutputWithContext(ctx context.Context) DeviceRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestOutput) +} + +// DeviceRequestArrayInput is an input type that accepts DeviceRequestArray and DeviceRequestArrayOutput values. +// You can construct a concrete instance of `DeviceRequestArrayInput` via: +// +// DeviceRequestArray{ DeviceRequestArgs{...} } +type DeviceRequestArrayInput interface { + pulumi.Input + + ToDeviceRequestArrayOutput() DeviceRequestArrayOutput + ToDeviceRequestArrayOutputWithContext(context.Context) DeviceRequestArrayOutput +} + +type DeviceRequestArray []DeviceRequestInput + +func (DeviceRequestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequest)(nil)).Elem() +} + +func (i DeviceRequestArray) ToDeviceRequestArrayOutput() DeviceRequestArrayOutput { + return i.ToDeviceRequestArrayOutputWithContext(context.Background()) +} + +func (i DeviceRequestArray) ToDeviceRequestArrayOutputWithContext(ctx context.Context) DeviceRequestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestArrayOutput) +} + +// 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. +// +// 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. +type DeviceRequestOutput struct{ *pulumi.OutputState } + +func (DeviceRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequest)(nil)).Elem() +} + +func (o DeviceRequestOutput) ToDeviceRequestOutput() DeviceRequestOutput { + return o +} + +func (o DeviceRequestOutput) ToDeviceRequestOutputWithContext(ctx context.Context) DeviceRequestOutput { + return o +} + +// 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. +// +// 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. +func (o DeviceRequestOutput) AdminAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceRequest) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) +} + +// AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: +// +// - ExactCount: This request is for a specific number of devices. +// This is the default. The exact number is provided in the +// count field. +// +// - All: This request is for all of the matching devices in a pool. +// Allocation will fail if some devices are already allocated, +// unless adminAccess is requested. +// +// 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. +// +// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. +func (o DeviceRequestOutput) AllocationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequest) *string { return v.AllocationMode }).(pulumi.StringPtrOutput) +} + +// 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. +func (o DeviceRequestOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeviceRequest) *int { return v.Count }).(pulumi.IntPtrOutput) +} + +// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. +// +// A class is required. Which classes are available depends on the cluster. +// +// 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. +func (o DeviceRequestOutput) DeviceClassName() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequest) string { return v.DeviceClassName }).(pulumi.StringOutput) +} + +// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. +// +// Must be a DNS label. +func (o DeviceRequestOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequest) string { return v.Name }).(pulumi.StringOutput) +} + +// 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. +func (o DeviceRequestOutput) Selectors() DeviceSelectorArrayOutput { + return o.ApplyT(func(v DeviceRequest) []DeviceSelector { return v.Selectors }).(DeviceSelectorArrayOutput) +} + +type DeviceRequestArrayOutput struct{ *pulumi.OutputState } + +func (DeviceRequestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequest)(nil)).Elem() +} + +func (o DeviceRequestArrayOutput) ToDeviceRequestArrayOutput() DeviceRequestArrayOutput { + return o +} + +func (o DeviceRequestArrayOutput) ToDeviceRequestArrayOutputWithContext(ctx context.Context) DeviceRequestArrayOutput { + return o +} + +func (o DeviceRequestArrayOutput) Index(i pulumi.IntInput) DeviceRequestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceRequest { + return vs[0].([]DeviceRequest)[vs[1].(int)] + }).(DeviceRequestOutput) +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResult struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // 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. + AdminAccess *bool `pulumi:"adminAccess"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device string `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver string `pulumi:"driver"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool string `pulumi:"pool"` + // 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. + Request string `pulumi:"request"` +} + +// DeviceRequestAllocationResultInput is an input type that accepts DeviceRequestAllocationResultArgs and DeviceRequestAllocationResultOutput values. +// You can construct a concrete instance of `DeviceRequestAllocationResultInput` via: +// +// DeviceRequestAllocationResultArgs{...} +type DeviceRequestAllocationResultInput interface { + pulumi.Input + + ToDeviceRequestAllocationResultOutput() DeviceRequestAllocationResultOutput + ToDeviceRequestAllocationResultOutputWithContext(context.Context) DeviceRequestAllocationResultOutput +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultArgs struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // 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. + AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringInput `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver pulumi.StringInput `pulumi:"driver"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringInput `pulumi:"pool"` + // 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. + Request pulumi.StringInput `pulumi:"request"` +} + +func (DeviceRequestAllocationResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestAllocationResult)(nil)).Elem() +} + +func (i DeviceRequestAllocationResultArgs) ToDeviceRequestAllocationResultOutput() DeviceRequestAllocationResultOutput { + return i.ToDeviceRequestAllocationResultOutputWithContext(context.Background()) +} + +func (i DeviceRequestAllocationResultArgs) ToDeviceRequestAllocationResultOutputWithContext(ctx context.Context) DeviceRequestAllocationResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestAllocationResultOutput) +} + +// DeviceRequestAllocationResultArrayInput is an input type that accepts DeviceRequestAllocationResultArray and DeviceRequestAllocationResultArrayOutput values. +// You can construct a concrete instance of `DeviceRequestAllocationResultArrayInput` via: +// +// DeviceRequestAllocationResultArray{ DeviceRequestAllocationResultArgs{...} } +type DeviceRequestAllocationResultArrayInput interface { + pulumi.Input + + ToDeviceRequestAllocationResultArrayOutput() DeviceRequestAllocationResultArrayOutput + ToDeviceRequestAllocationResultArrayOutputWithContext(context.Context) DeviceRequestAllocationResultArrayOutput +} + +type DeviceRequestAllocationResultArray []DeviceRequestAllocationResultInput + +func (DeviceRequestAllocationResultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestAllocationResult)(nil)).Elem() +} + +func (i DeviceRequestAllocationResultArray) ToDeviceRequestAllocationResultArrayOutput() DeviceRequestAllocationResultArrayOutput { + return i.ToDeviceRequestAllocationResultArrayOutputWithContext(context.Background()) +} + +func (i DeviceRequestAllocationResultArray) ToDeviceRequestAllocationResultArrayOutputWithContext(ctx context.Context) DeviceRequestAllocationResultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestAllocationResultArrayOutput) +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultOutput struct{ *pulumi.OutputState } + +func (DeviceRequestAllocationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestAllocationResult)(nil)).Elem() +} + +func (o DeviceRequestAllocationResultOutput) ToDeviceRequestAllocationResultOutput() DeviceRequestAllocationResultOutput { + return o +} + +func (o DeviceRequestAllocationResultOutput) ToDeviceRequestAllocationResultOutputWithContext(ctx context.Context) DeviceRequestAllocationResultOutput { + return o +} + +// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. +// +// 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. +func (o DeviceRequestAllocationResultOutput) AdminAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o DeviceRequestAllocationResultOutput) Device() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Device }).(pulumi.StringOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o DeviceRequestAllocationResultOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Driver }).(pulumi.StringOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o DeviceRequestAllocationResultOutput) Pool() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Pool }).(pulumi.StringOutput) +} + +// 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. +func (o DeviceRequestAllocationResultOutput) Request() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Request }).(pulumi.StringOutput) +} + +type DeviceRequestAllocationResultArrayOutput struct{ *pulumi.OutputState } + +func (DeviceRequestAllocationResultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestAllocationResult)(nil)).Elem() +} + +func (o DeviceRequestAllocationResultArrayOutput) ToDeviceRequestAllocationResultArrayOutput() DeviceRequestAllocationResultArrayOutput { + return o +} + +func (o DeviceRequestAllocationResultArrayOutput) ToDeviceRequestAllocationResultArrayOutputWithContext(ctx context.Context) DeviceRequestAllocationResultArrayOutput { + return o +} + +func (o DeviceRequestAllocationResultArrayOutput) Index(i pulumi.IntInput) DeviceRequestAllocationResultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceRequestAllocationResult { + return vs[0].([]DeviceRequestAllocationResult)[vs[1].(int)] + }).(DeviceRequestAllocationResultOutput) +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultPatch struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // 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. + AdminAccess *bool `pulumi:"adminAccess"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device *string `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver *string `pulumi:"driver"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool *string `pulumi:"pool"` + // 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. + Request *string `pulumi:"request"` +} + +// DeviceRequestAllocationResultPatchInput is an input type that accepts DeviceRequestAllocationResultPatchArgs and DeviceRequestAllocationResultPatchOutput values. +// You can construct a concrete instance of `DeviceRequestAllocationResultPatchInput` via: +// +// DeviceRequestAllocationResultPatchArgs{...} +type DeviceRequestAllocationResultPatchInput interface { + pulumi.Input + + ToDeviceRequestAllocationResultPatchOutput() DeviceRequestAllocationResultPatchOutput + ToDeviceRequestAllocationResultPatchOutputWithContext(context.Context) DeviceRequestAllocationResultPatchOutput +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultPatchArgs struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // 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. + AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringPtrInput `pulumi:"device"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver pulumi.StringPtrInput `pulumi:"driver"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringPtrInput `pulumi:"pool"` + // 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. + Request pulumi.StringPtrInput `pulumi:"request"` +} + +func (DeviceRequestAllocationResultPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestAllocationResultPatch)(nil)).Elem() +} + +func (i DeviceRequestAllocationResultPatchArgs) ToDeviceRequestAllocationResultPatchOutput() DeviceRequestAllocationResultPatchOutput { + return i.ToDeviceRequestAllocationResultPatchOutputWithContext(context.Background()) +} + +func (i DeviceRequestAllocationResultPatchArgs) ToDeviceRequestAllocationResultPatchOutputWithContext(ctx context.Context) DeviceRequestAllocationResultPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestAllocationResultPatchOutput) +} + +// DeviceRequestAllocationResultPatchArrayInput is an input type that accepts DeviceRequestAllocationResultPatchArray and DeviceRequestAllocationResultPatchArrayOutput values. +// You can construct a concrete instance of `DeviceRequestAllocationResultPatchArrayInput` via: +// +// DeviceRequestAllocationResultPatchArray{ DeviceRequestAllocationResultPatchArgs{...} } +type DeviceRequestAllocationResultPatchArrayInput interface { + pulumi.Input + + ToDeviceRequestAllocationResultPatchArrayOutput() DeviceRequestAllocationResultPatchArrayOutput + ToDeviceRequestAllocationResultPatchArrayOutputWithContext(context.Context) DeviceRequestAllocationResultPatchArrayOutput +} + +type DeviceRequestAllocationResultPatchArray []DeviceRequestAllocationResultPatchInput + +func (DeviceRequestAllocationResultPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestAllocationResultPatch)(nil)).Elem() +} + +func (i DeviceRequestAllocationResultPatchArray) ToDeviceRequestAllocationResultPatchArrayOutput() DeviceRequestAllocationResultPatchArrayOutput { + return i.ToDeviceRequestAllocationResultPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceRequestAllocationResultPatchArray) ToDeviceRequestAllocationResultPatchArrayOutputWithContext(ctx context.Context) DeviceRequestAllocationResultPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestAllocationResultPatchArrayOutput) +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultPatchOutput struct{ *pulumi.OutputState } + +func (DeviceRequestAllocationResultPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestAllocationResultPatch)(nil)).Elem() +} + +func (o DeviceRequestAllocationResultPatchOutput) ToDeviceRequestAllocationResultPatchOutput() DeviceRequestAllocationResultPatchOutput { + return o +} + +func (o DeviceRequestAllocationResultPatchOutput) ToDeviceRequestAllocationResultPatchOutputWithContext(ctx context.Context) DeviceRequestAllocationResultPatchOutput { + return o +} + +// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. +// +// 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. +func (o DeviceRequestAllocationResultPatchOutput) AdminAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o DeviceRequestAllocationResultPatchOutput) Device() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Device }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o DeviceRequestAllocationResultPatchOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Driver }).(pulumi.StringPtrOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o DeviceRequestAllocationResultPatchOutput) Pool() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Pool }).(pulumi.StringPtrOutput) +} + +// 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. +func (o DeviceRequestAllocationResultPatchOutput) Request() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Request }).(pulumi.StringPtrOutput) +} + +type DeviceRequestAllocationResultPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceRequestAllocationResultPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestAllocationResultPatch)(nil)).Elem() +} + +func (o DeviceRequestAllocationResultPatchArrayOutput) ToDeviceRequestAllocationResultPatchArrayOutput() DeviceRequestAllocationResultPatchArrayOutput { + return o +} + +func (o DeviceRequestAllocationResultPatchArrayOutput) ToDeviceRequestAllocationResultPatchArrayOutputWithContext(ctx context.Context) DeviceRequestAllocationResultPatchArrayOutput { + return o +} + +func (o DeviceRequestAllocationResultPatchArrayOutput) Index(i pulumi.IntInput) DeviceRequestAllocationResultPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceRequestAllocationResultPatch { + return vs[0].([]DeviceRequestAllocationResultPatch)[vs[1].(int)] + }).(DeviceRequestAllocationResultPatchOutput) +} + +// 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. +// +// 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. +type DeviceRequestPatch struct { + // 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. + // + // 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. + AdminAccess *bool `pulumi:"adminAccess"` + // AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + // + // - ExactCount: This request is for a specific number of devices. + // This is the default. The exact number is provided in the + // count field. + // + // - All: This request is for all of the matching devices in a pool. + // Allocation will fail if some devices are already allocated, + // unless adminAccess is requested. + // + // 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. + // + // More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + AllocationMode *string `pulumi:"allocationMode"` + // 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. + Count *int `pulumi:"count"` + // DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + // + // A class is required. Which classes are available depends on the cluster. + // + // 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. + DeviceClassName *string `pulumi:"deviceClassName"` + // Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + // + // Must be a DNS label. + Name *string `pulumi:"name"` + // 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. + Selectors []DeviceSelectorPatch `pulumi:"selectors"` +} + +// DeviceRequestPatchInput is an input type that accepts DeviceRequestPatchArgs and DeviceRequestPatchOutput values. +// You can construct a concrete instance of `DeviceRequestPatchInput` via: +// +// DeviceRequestPatchArgs{...} +type DeviceRequestPatchInput interface { + pulumi.Input + + ToDeviceRequestPatchOutput() DeviceRequestPatchOutput + ToDeviceRequestPatchOutputWithContext(context.Context) DeviceRequestPatchOutput +} + +// 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. +// +// 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. +type DeviceRequestPatchArgs struct { + // 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. + // + // 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. + AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` + // AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + // + // - ExactCount: This request is for a specific number of devices. + // This is the default. The exact number is provided in the + // count field. + // + // - All: This request is for all of the matching devices in a pool. + // Allocation will fail if some devices are already allocated, + // unless adminAccess is requested. + // + // 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. + // + // More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + AllocationMode pulumi.StringPtrInput `pulumi:"allocationMode"` + // 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. + Count pulumi.IntPtrInput `pulumi:"count"` + // DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + // + // A class is required. Which classes are available depends on the cluster. + // + // 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. + DeviceClassName pulumi.StringPtrInput `pulumi:"deviceClassName"` + // Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + // + // Must be a DNS label. + Name pulumi.StringPtrInput `pulumi:"name"` + // 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. + Selectors DeviceSelectorPatchArrayInput `pulumi:"selectors"` +} + +func (DeviceRequestPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestPatch)(nil)).Elem() +} + +func (i DeviceRequestPatchArgs) ToDeviceRequestPatchOutput() DeviceRequestPatchOutput { + return i.ToDeviceRequestPatchOutputWithContext(context.Background()) +} + +func (i DeviceRequestPatchArgs) ToDeviceRequestPatchOutputWithContext(ctx context.Context) DeviceRequestPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestPatchOutput) +} + +// DeviceRequestPatchArrayInput is an input type that accepts DeviceRequestPatchArray and DeviceRequestPatchArrayOutput values. +// You can construct a concrete instance of `DeviceRequestPatchArrayInput` via: +// +// DeviceRequestPatchArray{ DeviceRequestPatchArgs{...} } +type DeviceRequestPatchArrayInput interface { + pulumi.Input + + ToDeviceRequestPatchArrayOutput() DeviceRequestPatchArrayOutput + ToDeviceRequestPatchArrayOutputWithContext(context.Context) DeviceRequestPatchArrayOutput +} + +type DeviceRequestPatchArray []DeviceRequestPatchInput + +func (DeviceRequestPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestPatch)(nil)).Elem() +} + +func (i DeviceRequestPatchArray) ToDeviceRequestPatchArrayOutput() DeviceRequestPatchArrayOutput { + return i.ToDeviceRequestPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceRequestPatchArray) ToDeviceRequestPatchArrayOutputWithContext(ctx context.Context) DeviceRequestPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestPatchArrayOutput) +} + +// 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. +// +// 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. +type DeviceRequestPatchOutput struct{ *pulumi.OutputState } + +func (DeviceRequestPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestPatch)(nil)).Elem() +} + +func (o DeviceRequestPatchOutput) ToDeviceRequestPatchOutput() DeviceRequestPatchOutput { + return o +} + +func (o DeviceRequestPatchOutput) ToDeviceRequestPatchOutputWithContext(ctx context.Context) DeviceRequestPatchOutput { + return o +} + +// 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. +// +// 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. +func (o DeviceRequestPatchOutput) AdminAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceRequestPatch) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) +} + +// AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: +// +// - ExactCount: This request is for a specific number of devices. +// This is the default. The exact number is provided in the +// count field. +// +// - All: This request is for all of the matching devices in a pool. +// Allocation will fail if some devices are already allocated, +// unless adminAccess is requested. +// +// 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. +// +// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. +func (o DeviceRequestPatchOutput) AllocationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestPatch) *string { return v.AllocationMode }).(pulumi.StringPtrOutput) +} + +// 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. +func (o DeviceRequestPatchOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeviceRequestPatch) *int { return v.Count }).(pulumi.IntPtrOutput) +} + +// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. +// +// A class is required. Which classes are available depends on the cluster. +// +// 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. +func (o DeviceRequestPatchOutput) DeviceClassName() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestPatch) *string { return v.DeviceClassName }).(pulumi.StringPtrOutput) +} + +// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. +// +// Must be a DNS label. +func (o DeviceRequestPatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// 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. +func (o DeviceRequestPatchOutput) Selectors() DeviceSelectorPatchArrayOutput { + return o.ApplyT(func(v DeviceRequestPatch) []DeviceSelectorPatch { return v.Selectors }).(DeviceSelectorPatchArrayOutput) +} + +type DeviceRequestPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceRequestPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestPatch)(nil)).Elem() +} + +func (o DeviceRequestPatchArrayOutput) ToDeviceRequestPatchArrayOutput() DeviceRequestPatchArrayOutput { + return o +} + +func (o DeviceRequestPatchArrayOutput) ToDeviceRequestPatchArrayOutputWithContext(ctx context.Context) DeviceRequestPatchArrayOutput { + return o +} + +func (o DeviceRequestPatchArrayOutput) Index(i pulumi.IntInput) DeviceRequestPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceRequestPatch { + return vs[0].([]DeviceRequestPatch)[vs[1].(int)] + }).(DeviceRequestPatchOutput) +} + +// DeviceSelector must have exactly one field set. +type DeviceSelector struct { + // CEL contains a CEL expression for selecting a device. + Cel *CELDeviceSelector `pulumi:"cel"` +} + +// DeviceSelectorInput is an input type that accepts DeviceSelectorArgs and DeviceSelectorOutput values. +// You can construct a concrete instance of `DeviceSelectorInput` via: +// +// DeviceSelectorArgs{...} +type DeviceSelectorInput interface { + pulumi.Input + + ToDeviceSelectorOutput() DeviceSelectorOutput + ToDeviceSelectorOutputWithContext(context.Context) DeviceSelectorOutput +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorArgs struct { + // CEL contains a CEL expression for selecting a device. + Cel CELDeviceSelectorPtrInput `pulumi:"cel"` +} + +func (DeviceSelectorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSelector)(nil)).Elem() +} + +func (i DeviceSelectorArgs) ToDeviceSelectorOutput() DeviceSelectorOutput { + return i.ToDeviceSelectorOutputWithContext(context.Background()) +} + +func (i DeviceSelectorArgs) ToDeviceSelectorOutputWithContext(ctx context.Context) DeviceSelectorOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSelectorOutput) +} + +// DeviceSelectorArrayInput is an input type that accepts DeviceSelectorArray and DeviceSelectorArrayOutput values. +// You can construct a concrete instance of `DeviceSelectorArrayInput` via: +// +// DeviceSelectorArray{ DeviceSelectorArgs{...} } +type DeviceSelectorArrayInput interface { + pulumi.Input + + ToDeviceSelectorArrayOutput() DeviceSelectorArrayOutput + ToDeviceSelectorArrayOutputWithContext(context.Context) DeviceSelectorArrayOutput +} + +type DeviceSelectorArray []DeviceSelectorInput + +func (DeviceSelectorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSelector)(nil)).Elem() +} + +func (i DeviceSelectorArray) ToDeviceSelectorArrayOutput() DeviceSelectorArrayOutput { + return i.ToDeviceSelectorArrayOutputWithContext(context.Background()) +} + +func (i DeviceSelectorArray) ToDeviceSelectorArrayOutputWithContext(ctx context.Context) DeviceSelectorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSelectorArrayOutput) +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorOutput struct{ *pulumi.OutputState } + +func (DeviceSelectorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSelector)(nil)).Elem() +} + +func (o DeviceSelectorOutput) ToDeviceSelectorOutput() DeviceSelectorOutput { + return o +} + +func (o DeviceSelectorOutput) ToDeviceSelectorOutputWithContext(ctx context.Context) DeviceSelectorOutput { + return o +} + +// CEL contains a CEL expression for selecting a device. +func (o DeviceSelectorOutput) Cel() CELDeviceSelectorPtrOutput { + return o.ApplyT(func(v DeviceSelector) *CELDeviceSelector { return v.Cel }).(CELDeviceSelectorPtrOutput) +} + +type DeviceSelectorArrayOutput struct{ *pulumi.OutputState } + +func (DeviceSelectorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSelector)(nil)).Elem() +} + +func (o DeviceSelectorArrayOutput) ToDeviceSelectorArrayOutput() DeviceSelectorArrayOutput { + return o +} + +func (o DeviceSelectorArrayOutput) ToDeviceSelectorArrayOutputWithContext(ctx context.Context) DeviceSelectorArrayOutput { + return o +} + +func (o DeviceSelectorArrayOutput) Index(i pulumi.IntInput) DeviceSelectorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceSelector { + return vs[0].([]DeviceSelector)[vs[1].(int)] + }).(DeviceSelectorOutput) +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorPatch struct { + // CEL contains a CEL expression for selecting a device. + Cel *CELDeviceSelectorPatch `pulumi:"cel"` +} + +// DeviceSelectorPatchInput is an input type that accepts DeviceSelectorPatchArgs and DeviceSelectorPatchOutput values. +// You can construct a concrete instance of `DeviceSelectorPatchInput` via: +// +// DeviceSelectorPatchArgs{...} +type DeviceSelectorPatchInput interface { + pulumi.Input + + ToDeviceSelectorPatchOutput() DeviceSelectorPatchOutput + ToDeviceSelectorPatchOutputWithContext(context.Context) DeviceSelectorPatchOutput +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorPatchArgs struct { + // CEL contains a CEL expression for selecting a device. + Cel CELDeviceSelectorPatchPtrInput `pulumi:"cel"` +} + +func (DeviceSelectorPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSelectorPatch)(nil)).Elem() +} + +func (i DeviceSelectorPatchArgs) ToDeviceSelectorPatchOutput() DeviceSelectorPatchOutput { + return i.ToDeviceSelectorPatchOutputWithContext(context.Background()) +} + +func (i DeviceSelectorPatchArgs) ToDeviceSelectorPatchOutputWithContext(ctx context.Context) DeviceSelectorPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSelectorPatchOutput) +} + +// DeviceSelectorPatchArrayInput is an input type that accepts DeviceSelectorPatchArray and DeviceSelectorPatchArrayOutput values. +// You can construct a concrete instance of `DeviceSelectorPatchArrayInput` via: +// +// DeviceSelectorPatchArray{ DeviceSelectorPatchArgs{...} } +type DeviceSelectorPatchArrayInput interface { + pulumi.Input + + ToDeviceSelectorPatchArrayOutput() DeviceSelectorPatchArrayOutput + ToDeviceSelectorPatchArrayOutputWithContext(context.Context) DeviceSelectorPatchArrayOutput +} + +type DeviceSelectorPatchArray []DeviceSelectorPatchInput + +func (DeviceSelectorPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSelectorPatch)(nil)).Elem() +} + +func (i DeviceSelectorPatchArray) ToDeviceSelectorPatchArrayOutput() DeviceSelectorPatchArrayOutput { + return i.ToDeviceSelectorPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceSelectorPatchArray) ToDeviceSelectorPatchArrayOutputWithContext(ctx context.Context) DeviceSelectorPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSelectorPatchArrayOutput) +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorPatchOutput struct{ *pulumi.OutputState } + +func (DeviceSelectorPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSelectorPatch)(nil)).Elem() +} + +func (o DeviceSelectorPatchOutput) ToDeviceSelectorPatchOutput() DeviceSelectorPatchOutput { + return o +} + +func (o DeviceSelectorPatchOutput) ToDeviceSelectorPatchOutputWithContext(ctx context.Context) DeviceSelectorPatchOutput { + return o +} + +// CEL contains a CEL expression for selecting a device. +func (o DeviceSelectorPatchOutput) Cel() CELDeviceSelectorPatchPtrOutput { + return o.ApplyT(func(v DeviceSelectorPatch) *CELDeviceSelectorPatch { return v.Cel }).(CELDeviceSelectorPatchPtrOutput) +} + +type DeviceSelectorPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceSelectorPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSelectorPatch)(nil)).Elem() +} + +func (o DeviceSelectorPatchArrayOutput) ToDeviceSelectorPatchArrayOutput() DeviceSelectorPatchArrayOutput { + return o +} + +func (o DeviceSelectorPatchArrayOutput) ToDeviceSelectorPatchArrayOutputWithContext(ctx context.Context) DeviceSelectorPatchArrayOutput { + return o +} + +func (o DeviceSelectorPatchArrayOutput) Index(i pulumi.IntInput) DeviceSelectorPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceSelectorPatch { + return vs[0].([]DeviceSelectorPatch)[vs[1].(int)] + }).(DeviceSelectorPatchOutput) +} + +// 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. +type NetworkDeviceData struct { + // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + // + // Must not be longer than 128 characters. + HardwareAddress *string `pulumi:"hardwareAddress"` + // 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. + // + // Must not be longer than 256 characters. + InterfaceName *string `pulumi:"interfaceName"` + // 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. + Ips []string `pulumi:"ips"` +} + +// NetworkDeviceDataInput is an input type that accepts NetworkDeviceDataArgs and NetworkDeviceDataOutput values. +// You can construct a concrete instance of `NetworkDeviceDataInput` via: +// +// NetworkDeviceDataArgs{...} +type NetworkDeviceDataInput interface { + pulumi.Input + + ToNetworkDeviceDataOutput() NetworkDeviceDataOutput + ToNetworkDeviceDataOutputWithContext(context.Context) NetworkDeviceDataOutput +} + +// 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. +type NetworkDeviceDataArgs struct { + // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + // + // Must not be longer than 128 characters. + HardwareAddress pulumi.StringPtrInput `pulumi:"hardwareAddress"` + // 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. + // + // Must not be longer than 256 characters. + InterfaceName pulumi.StringPtrInput `pulumi:"interfaceName"` + // 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. + Ips pulumi.StringArrayInput `pulumi:"ips"` +} + +func (NetworkDeviceDataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkDeviceData)(nil)).Elem() +} + +func (i NetworkDeviceDataArgs) ToNetworkDeviceDataOutput() NetworkDeviceDataOutput { + return i.ToNetworkDeviceDataOutputWithContext(context.Background()) +} + +func (i NetworkDeviceDataArgs) ToNetworkDeviceDataOutputWithContext(ctx context.Context) NetworkDeviceDataOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataOutput) +} + +func (i NetworkDeviceDataArgs) ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput { + return i.ToNetworkDeviceDataPtrOutputWithContext(context.Background()) +} + +func (i NetworkDeviceDataArgs) ToNetworkDeviceDataPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataOutput).ToNetworkDeviceDataPtrOutputWithContext(ctx) +} + +// NetworkDeviceDataPtrInput is an input type that accepts NetworkDeviceDataArgs, NetworkDeviceDataPtr and NetworkDeviceDataPtrOutput values. +// You can construct a concrete instance of `NetworkDeviceDataPtrInput` via: +// +// NetworkDeviceDataArgs{...} +// +// or: +// +// nil +type NetworkDeviceDataPtrInput interface { + pulumi.Input + + ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput + ToNetworkDeviceDataPtrOutputWithContext(context.Context) NetworkDeviceDataPtrOutput +} + +type networkDeviceDataPtrType NetworkDeviceDataArgs + +func NetworkDeviceDataPtr(v *NetworkDeviceDataArgs) NetworkDeviceDataPtrInput { + return (*networkDeviceDataPtrType)(v) +} + +func (*networkDeviceDataPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkDeviceData)(nil)).Elem() +} + +func (i *networkDeviceDataPtrType) ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput { + return i.ToNetworkDeviceDataPtrOutputWithContext(context.Background()) +} + +func (i *networkDeviceDataPtrType) ToNetworkDeviceDataPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataPtrOutput) +} + +// 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. +type NetworkDeviceDataOutput struct{ *pulumi.OutputState } + +func (NetworkDeviceDataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkDeviceData)(nil)).Elem() +} + +func (o NetworkDeviceDataOutput) ToNetworkDeviceDataOutput() NetworkDeviceDataOutput { + return o +} + +func (o NetworkDeviceDataOutput) ToNetworkDeviceDataOutputWithContext(ctx context.Context) NetworkDeviceDataOutput { + return o +} + +func (o NetworkDeviceDataOutput) ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput { + return o.ToNetworkDeviceDataPtrOutputWithContext(context.Background()) +} + +func (o NetworkDeviceDataOutput) ToNetworkDeviceDataPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkDeviceData) *NetworkDeviceData { + return &v + }).(NetworkDeviceDataPtrOutput) +} + +// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. +// +// Must not be longer than 128 characters. +func (o NetworkDeviceDataOutput) HardwareAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkDeviceData) *string { return v.HardwareAddress }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must not be longer than 256 characters. +func (o NetworkDeviceDataOutput) InterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkDeviceData) *string { return v.InterfaceName }).(pulumi.StringPtrOutput) +} + +// 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. +func (o NetworkDeviceDataOutput) Ips() pulumi.StringArrayOutput { + return o.ApplyT(func(v NetworkDeviceData) []string { return v.Ips }).(pulumi.StringArrayOutput) +} + +type NetworkDeviceDataPtrOutput struct{ *pulumi.OutputState } + +func (NetworkDeviceDataPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkDeviceData)(nil)).Elem() +} + +func (o NetworkDeviceDataPtrOutput) ToNetworkDeviceDataPtrOutput() NetworkDeviceDataPtrOutput { + return o +} + +func (o NetworkDeviceDataPtrOutput) ToNetworkDeviceDataPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPtrOutput { + return o +} + +func (o NetworkDeviceDataPtrOutput) Elem() NetworkDeviceDataOutput { + return o.ApplyT(func(v *NetworkDeviceData) NetworkDeviceData { + if v != nil { + return *v + } + var ret NetworkDeviceData + return ret + }).(NetworkDeviceDataOutput) +} + +// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. +// +// Must not be longer than 128 characters. +func (o NetworkDeviceDataPtrOutput) HardwareAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkDeviceData) *string { + if v == nil { + return nil + } + return v.HardwareAddress + }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must not be longer than 256 characters. +func (o NetworkDeviceDataPtrOutput) InterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkDeviceData) *string { + if v == nil { + return nil + } + return v.InterfaceName + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o NetworkDeviceDataPtrOutput) Ips() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NetworkDeviceData) []string { + if v == nil { + return nil + } + return v.Ips + }).(pulumi.StringArrayOutput) +} + +// 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. +type NetworkDeviceDataPatch struct { + // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + // + // Must not be longer than 128 characters. + HardwareAddress *string `pulumi:"hardwareAddress"` + // 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. + // + // Must not be longer than 256 characters. + InterfaceName *string `pulumi:"interfaceName"` + // 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. + Ips []string `pulumi:"ips"` +} + +// NetworkDeviceDataPatchInput is an input type that accepts NetworkDeviceDataPatchArgs and NetworkDeviceDataPatchOutput values. +// You can construct a concrete instance of `NetworkDeviceDataPatchInput` via: +// +// NetworkDeviceDataPatchArgs{...} +type NetworkDeviceDataPatchInput interface { + pulumi.Input + + ToNetworkDeviceDataPatchOutput() NetworkDeviceDataPatchOutput + ToNetworkDeviceDataPatchOutputWithContext(context.Context) NetworkDeviceDataPatchOutput +} + +// 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. +type NetworkDeviceDataPatchArgs struct { + // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + // + // Must not be longer than 128 characters. + HardwareAddress pulumi.StringPtrInput `pulumi:"hardwareAddress"` + // 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. + // + // Must not be longer than 256 characters. + InterfaceName pulumi.StringPtrInput `pulumi:"interfaceName"` + // 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. + Ips pulumi.StringArrayInput `pulumi:"ips"` +} + +func (NetworkDeviceDataPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkDeviceDataPatch)(nil)).Elem() +} + +func (i NetworkDeviceDataPatchArgs) ToNetworkDeviceDataPatchOutput() NetworkDeviceDataPatchOutput { + return i.ToNetworkDeviceDataPatchOutputWithContext(context.Background()) +} + +func (i NetworkDeviceDataPatchArgs) ToNetworkDeviceDataPatchOutputWithContext(ctx context.Context) NetworkDeviceDataPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataPatchOutput) +} + +func (i NetworkDeviceDataPatchArgs) ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput { + return i.ToNetworkDeviceDataPatchPtrOutputWithContext(context.Background()) +} + +func (i NetworkDeviceDataPatchArgs) ToNetworkDeviceDataPatchPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataPatchOutput).ToNetworkDeviceDataPatchPtrOutputWithContext(ctx) +} + +// NetworkDeviceDataPatchPtrInput is an input type that accepts NetworkDeviceDataPatchArgs, NetworkDeviceDataPatchPtr and NetworkDeviceDataPatchPtrOutput values. +// You can construct a concrete instance of `NetworkDeviceDataPatchPtrInput` via: +// +// NetworkDeviceDataPatchArgs{...} +// +// or: +// +// nil +type NetworkDeviceDataPatchPtrInput interface { + pulumi.Input + + ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput + ToNetworkDeviceDataPatchPtrOutputWithContext(context.Context) NetworkDeviceDataPatchPtrOutput +} + +type networkDeviceDataPatchPtrType NetworkDeviceDataPatchArgs + +func NetworkDeviceDataPatchPtr(v *NetworkDeviceDataPatchArgs) NetworkDeviceDataPatchPtrInput { + return (*networkDeviceDataPatchPtrType)(v) +} + +func (*networkDeviceDataPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkDeviceDataPatch)(nil)).Elem() +} + +func (i *networkDeviceDataPatchPtrType) ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput { + return i.ToNetworkDeviceDataPatchPtrOutputWithContext(context.Background()) +} + +func (i *networkDeviceDataPatchPtrType) ToNetworkDeviceDataPatchPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkDeviceDataPatchPtrOutput) +} + +// 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. +type NetworkDeviceDataPatchOutput struct{ *pulumi.OutputState } + +func (NetworkDeviceDataPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkDeviceDataPatch)(nil)).Elem() +} + +func (o NetworkDeviceDataPatchOutput) ToNetworkDeviceDataPatchOutput() NetworkDeviceDataPatchOutput { + return o +} + +func (o NetworkDeviceDataPatchOutput) ToNetworkDeviceDataPatchOutputWithContext(ctx context.Context) NetworkDeviceDataPatchOutput { + return o +} + +func (o NetworkDeviceDataPatchOutput) ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput { + return o.ToNetworkDeviceDataPatchPtrOutputWithContext(context.Background()) +} + +func (o NetworkDeviceDataPatchOutput) ToNetworkDeviceDataPatchPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkDeviceDataPatch) *NetworkDeviceDataPatch { + return &v + }).(NetworkDeviceDataPatchPtrOutput) +} + +// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. +// +// Must not be longer than 128 characters. +func (o NetworkDeviceDataPatchOutput) HardwareAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkDeviceDataPatch) *string { return v.HardwareAddress }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must not be longer than 256 characters. +func (o NetworkDeviceDataPatchOutput) InterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkDeviceDataPatch) *string { return v.InterfaceName }).(pulumi.StringPtrOutput) +} + +// 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. +func (o NetworkDeviceDataPatchOutput) Ips() pulumi.StringArrayOutput { + return o.ApplyT(func(v NetworkDeviceDataPatch) []string { return v.Ips }).(pulumi.StringArrayOutput) +} + +type NetworkDeviceDataPatchPtrOutput struct{ *pulumi.OutputState } + +func (NetworkDeviceDataPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkDeviceDataPatch)(nil)).Elem() +} + +func (o NetworkDeviceDataPatchPtrOutput) ToNetworkDeviceDataPatchPtrOutput() NetworkDeviceDataPatchPtrOutput { + return o +} + +func (o NetworkDeviceDataPatchPtrOutput) ToNetworkDeviceDataPatchPtrOutputWithContext(ctx context.Context) NetworkDeviceDataPatchPtrOutput { + return o +} + +func (o NetworkDeviceDataPatchPtrOutput) Elem() NetworkDeviceDataPatchOutput { + return o.ApplyT(func(v *NetworkDeviceDataPatch) NetworkDeviceDataPatch { + if v != nil { + return *v + } + var ret NetworkDeviceDataPatch + return ret + }).(NetworkDeviceDataPatchOutput) +} + +// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. +// +// Must not be longer than 128 characters. +func (o NetworkDeviceDataPatchPtrOutput) HardwareAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkDeviceDataPatch) *string { + if v == nil { + return nil + } + return v.HardwareAddress + }).(pulumi.StringPtrOutput) +} + +// 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. +// +// Must not be longer than 256 characters. +func (o NetworkDeviceDataPatchPtrOutput) InterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkDeviceDataPatch) *string { + if v == nil { + return nil + } + return v.InterfaceName + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o NetworkDeviceDataPatchPtrOutput) Ips() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NetworkDeviceDataPatch) []string { + if v == nil { + return nil + } + return v.Ips + }).(pulumi.StringArrayOutput) +} + +// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. +type OpaqueDeviceConfiguration struct { + // Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + // + // An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver string `pulumi:"driver"` + // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Parameters interface{} `pulumi:"parameters"` +} + +// OpaqueDeviceConfigurationInput is an input type that accepts OpaqueDeviceConfigurationArgs and OpaqueDeviceConfigurationOutput values. +// You can construct a concrete instance of `OpaqueDeviceConfigurationInput` via: +// +// OpaqueDeviceConfigurationArgs{...} +type OpaqueDeviceConfigurationInput interface { + pulumi.Input + + ToOpaqueDeviceConfigurationOutput() OpaqueDeviceConfigurationOutput + ToOpaqueDeviceConfigurationOutputWithContext(context.Context) OpaqueDeviceConfigurationOutput +} + +// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. +type OpaqueDeviceConfigurationArgs struct { + // Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + // + // An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver pulumi.StringInput `pulumi:"driver"` + // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Parameters pulumi.Input `pulumi:"parameters"` +} + +func (OpaqueDeviceConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OpaqueDeviceConfiguration)(nil)).Elem() +} + +func (i OpaqueDeviceConfigurationArgs) ToOpaqueDeviceConfigurationOutput() OpaqueDeviceConfigurationOutput { + return i.ToOpaqueDeviceConfigurationOutputWithContext(context.Background()) +} + +func (i OpaqueDeviceConfigurationArgs) ToOpaqueDeviceConfigurationOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpaqueDeviceConfigurationOutput) +} + +func (i OpaqueDeviceConfigurationArgs) ToOpaqueDeviceConfigurationPtrOutput() OpaqueDeviceConfigurationPtrOutput { + return i.ToOpaqueDeviceConfigurationPtrOutputWithContext(context.Background()) +} + +func (i OpaqueDeviceConfigurationArgs) ToOpaqueDeviceConfigurationPtrOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpaqueDeviceConfigurationOutput).ToOpaqueDeviceConfigurationPtrOutputWithContext(ctx) +} + +// OpaqueDeviceConfigurationPtrInput is an input type that accepts OpaqueDeviceConfigurationArgs, OpaqueDeviceConfigurationPtr and OpaqueDeviceConfigurationPtrOutput values. +// You can construct a concrete instance of `OpaqueDeviceConfigurationPtrInput` via: +// +// OpaqueDeviceConfigurationArgs{...} +// +// or: +// +// nil +type OpaqueDeviceConfigurationPtrInput interface { + pulumi.Input + + ToOpaqueDeviceConfigurationPtrOutput() OpaqueDeviceConfigurationPtrOutput + ToOpaqueDeviceConfigurationPtrOutputWithContext(context.Context) OpaqueDeviceConfigurationPtrOutput +} + +type opaqueDeviceConfigurationPtrType OpaqueDeviceConfigurationArgs + +func OpaqueDeviceConfigurationPtr(v *OpaqueDeviceConfigurationArgs) OpaqueDeviceConfigurationPtrInput { + return (*opaqueDeviceConfigurationPtrType)(v) +} + +func (*opaqueDeviceConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OpaqueDeviceConfiguration)(nil)).Elem() +} + +func (i *opaqueDeviceConfigurationPtrType) ToOpaqueDeviceConfigurationPtrOutput() OpaqueDeviceConfigurationPtrOutput { + return i.ToOpaqueDeviceConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *opaqueDeviceConfigurationPtrType) ToOpaqueDeviceConfigurationPtrOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpaqueDeviceConfigurationPtrOutput) +} + +// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. +type OpaqueDeviceConfigurationOutput struct{ *pulumi.OutputState } + +func (OpaqueDeviceConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OpaqueDeviceConfiguration)(nil)).Elem() +} + +func (o OpaqueDeviceConfigurationOutput) ToOpaqueDeviceConfigurationOutput() OpaqueDeviceConfigurationOutput { + return o +} + +func (o OpaqueDeviceConfigurationOutput) ToOpaqueDeviceConfigurationOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationOutput { + return o +} + +func (o OpaqueDeviceConfigurationOutput) ToOpaqueDeviceConfigurationPtrOutput() OpaqueDeviceConfigurationPtrOutput { + return o.ToOpaqueDeviceConfigurationPtrOutputWithContext(context.Background()) +} + +func (o OpaqueDeviceConfigurationOutput) ToOpaqueDeviceConfigurationPtrOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OpaqueDeviceConfiguration) *OpaqueDeviceConfiguration { + return &v + }).(OpaqueDeviceConfigurationPtrOutput) +} + +// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. +// +// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o OpaqueDeviceConfigurationOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v OpaqueDeviceConfiguration) string { return v.Driver }).(pulumi.StringOutput) +} + +// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o OpaqueDeviceConfigurationOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v OpaqueDeviceConfiguration) interface{} { return v.Parameters }).(pulumi.AnyOutput) +} + +type OpaqueDeviceConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (OpaqueDeviceConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OpaqueDeviceConfiguration)(nil)).Elem() +} + +func (o OpaqueDeviceConfigurationPtrOutput) ToOpaqueDeviceConfigurationPtrOutput() OpaqueDeviceConfigurationPtrOutput { + return o +} + +func (o OpaqueDeviceConfigurationPtrOutput) ToOpaqueDeviceConfigurationPtrOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPtrOutput { + return o +} + +func (o OpaqueDeviceConfigurationPtrOutput) Elem() OpaqueDeviceConfigurationOutput { + return o.ApplyT(func(v *OpaqueDeviceConfiguration) OpaqueDeviceConfiguration { + if v != nil { + return *v + } + var ret OpaqueDeviceConfiguration + return ret + }).(OpaqueDeviceConfigurationOutput) +} + +// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. +// +// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o OpaqueDeviceConfigurationPtrOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OpaqueDeviceConfiguration) *string { + if v == nil { + return nil + } + return &v.Driver + }).(pulumi.StringPtrOutput) +} + +// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o OpaqueDeviceConfigurationPtrOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v *OpaqueDeviceConfiguration) interface{} { + if v == nil { + return nil + } + return v.Parameters + }).(pulumi.AnyOutput) +} + +// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. +type OpaqueDeviceConfigurationPatch struct { + // Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + // + // An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver *string `pulumi:"driver"` + // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Parameters interface{} `pulumi:"parameters"` +} + +// OpaqueDeviceConfigurationPatchInput is an input type that accepts OpaqueDeviceConfigurationPatchArgs and OpaqueDeviceConfigurationPatchOutput values. +// You can construct a concrete instance of `OpaqueDeviceConfigurationPatchInput` via: +// +// OpaqueDeviceConfigurationPatchArgs{...} +type OpaqueDeviceConfigurationPatchInput interface { + pulumi.Input + + ToOpaqueDeviceConfigurationPatchOutput() OpaqueDeviceConfigurationPatchOutput + ToOpaqueDeviceConfigurationPatchOutputWithContext(context.Context) OpaqueDeviceConfigurationPatchOutput +} + +// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. +type OpaqueDeviceConfigurationPatchArgs struct { + // Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + // + // An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + Driver pulumi.StringPtrInput `pulumi:"driver"` + // Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Parameters pulumi.Input `pulumi:"parameters"` +} + +func (OpaqueDeviceConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OpaqueDeviceConfigurationPatch)(nil)).Elem() +} + +func (i OpaqueDeviceConfigurationPatchArgs) ToOpaqueDeviceConfigurationPatchOutput() OpaqueDeviceConfigurationPatchOutput { + return i.ToOpaqueDeviceConfigurationPatchOutputWithContext(context.Background()) +} + +func (i OpaqueDeviceConfigurationPatchArgs) ToOpaqueDeviceConfigurationPatchOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpaqueDeviceConfigurationPatchOutput) +} + +func (i OpaqueDeviceConfigurationPatchArgs) ToOpaqueDeviceConfigurationPatchPtrOutput() OpaqueDeviceConfigurationPatchPtrOutput { + return i.ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(context.Background()) +} + +func (i OpaqueDeviceConfigurationPatchArgs) ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpaqueDeviceConfigurationPatchOutput).ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(ctx) +} + +// OpaqueDeviceConfigurationPatchPtrInput is an input type that accepts OpaqueDeviceConfigurationPatchArgs, OpaqueDeviceConfigurationPatchPtr and OpaqueDeviceConfigurationPatchPtrOutput values. +// You can construct a concrete instance of `OpaqueDeviceConfigurationPatchPtrInput` via: +// +// OpaqueDeviceConfigurationPatchArgs{...} +// +// or: +// +// nil +type OpaqueDeviceConfigurationPatchPtrInput interface { + pulumi.Input + + ToOpaqueDeviceConfigurationPatchPtrOutput() OpaqueDeviceConfigurationPatchPtrOutput + ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(context.Context) OpaqueDeviceConfigurationPatchPtrOutput +} + +type opaqueDeviceConfigurationPatchPtrType OpaqueDeviceConfigurationPatchArgs + +func OpaqueDeviceConfigurationPatchPtr(v *OpaqueDeviceConfigurationPatchArgs) OpaqueDeviceConfigurationPatchPtrInput { + return (*opaqueDeviceConfigurationPatchPtrType)(v) +} + +func (*opaqueDeviceConfigurationPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OpaqueDeviceConfigurationPatch)(nil)).Elem() +} + +func (i *opaqueDeviceConfigurationPatchPtrType) ToOpaqueDeviceConfigurationPatchPtrOutput() OpaqueDeviceConfigurationPatchPtrOutput { + return i.ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(context.Background()) +} + +func (i *opaqueDeviceConfigurationPatchPtrType) ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpaqueDeviceConfigurationPatchPtrOutput) +} + +// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. +type OpaqueDeviceConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (OpaqueDeviceConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OpaqueDeviceConfigurationPatch)(nil)).Elem() +} + +func (o OpaqueDeviceConfigurationPatchOutput) ToOpaqueDeviceConfigurationPatchOutput() OpaqueDeviceConfigurationPatchOutput { + return o +} + +func (o OpaqueDeviceConfigurationPatchOutput) ToOpaqueDeviceConfigurationPatchOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPatchOutput { + return o +} + +func (o OpaqueDeviceConfigurationPatchOutput) ToOpaqueDeviceConfigurationPatchPtrOutput() OpaqueDeviceConfigurationPatchPtrOutput { + return o.ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(context.Background()) +} + +func (o OpaqueDeviceConfigurationPatchOutput) ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OpaqueDeviceConfigurationPatch) *OpaqueDeviceConfigurationPatch { + return &v + }).(OpaqueDeviceConfigurationPatchPtrOutput) +} + +// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. +// +// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o OpaqueDeviceConfigurationPatchOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v OpaqueDeviceConfigurationPatch) *string { return v.Driver }).(pulumi.StringPtrOutput) +} + +// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o OpaqueDeviceConfigurationPatchOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v OpaqueDeviceConfigurationPatch) interface{} { return v.Parameters }).(pulumi.AnyOutput) +} + +type OpaqueDeviceConfigurationPatchPtrOutput struct{ *pulumi.OutputState } + +func (OpaqueDeviceConfigurationPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OpaqueDeviceConfigurationPatch)(nil)).Elem() +} + +func (o OpaqueDeviceConfigurationPatchPtrOutput) ToOpaqueDeviceConfigurationPatchPtrOutput() OpaqueDeviceConfigurationPatchPtrOutput { + return o +} + +func (o OpaqueDeviceConfigurationPatchPtrOutput) ToOpaqueDeviceConfigurationPatchPtrOutputWithContext(ctx context.Context) OpaqueDeviceConfigurationPatchPtrOutput { + return o +} + +func (o OpaqueDeviceConfigurationPatchPtrOutput) Elem() OpaqueDeviceConfigurationPatchOutput { + return o.ApplyT(func(v *OpaqueDeviceConfigurationPatch) OpaqueDeviceConfigurationPatch { + if v != nil { + return *v + } + var ret OpaqueDeviceConfigurationPatch + return ret + }).(OpaqueDeviceConfigurationPatchOutput) +} + +// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. +// +// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. +func (o OpaqueDeviceConfigurationPatchPtrOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OpaqueDeviceConfigurationPatch) *string { + if v == nil { + return nil + } + return v.Driver + }).(pulumi.StringPtrOutput) +} + +// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o OpaqueDeviceConfigurationPatchPtrOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v *OpaqueDeviceConfigurationPatch) interface{} { + if v == nil { + return nil + } + return v.Parameters + }).(pulumi.AnyOutput) +} + +// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec ResourceClaimSpec `pulumi:"spec"` + // Status describes whether the claim is ready to use and what has been allocated. + Status *ResourceClaimStatus `pulumi:"status"` +} + +// ResourceClaimTypeInput is an input type that accepts ResourceClaimTypeArgs and ResourceClaimTypeOutput values. +// You can construct a concrete instance of `ResourceClaimTypeInput` via: +// +// ResourceClaimTypeArgs{...} +type ResourceClaimTypeInput interface { + pulumi.Input + + ToResourceClaimTypeOutput() ResourceClaimTypeOutput + ToResourceClaimTypeOutputWithContext(context.Context) ResourceClaimTypeOutput +} + +// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec ResourceClaimSpecInput `pulumi:"spec"` + // Status describes whether the claim is ready to use and what has been allocated. + Status ResourceClaimStatusPtrInput `pulumi:"status"` +} + +func (ResourceClaimTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimType)(nil)).Elem() +} + +func (i ResourceClaimTypeArgs) ToResourceClaimTypeOutput() ResourceClaimTypeOutput { + return i.ToResourceClaimTypeOutputWithContext(context.Background()) +} + +func (i ResourceClaimTypeArgs) ToResourceClaimTypeOutputWithContext(ctx context.Context) ResourceClaimTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTypeOutput) +} + +// ResourceClaimTypeArrayInput is an input type that accepts ResourceClaimTypeArray and ResourceClaimTypeArrayOutput values. +// You can construct a concrete instance of `ResourceClaimTypeArrayInput` via: +// +// ResourceClaimTypeArray{ ResourceClaimTypeArgs{...} } +type ResourceClaimTypeArrayInput interface { + pulumi.Input + + ToResourceClaimTypeArrayOutput() ResourceClaimTypeArrayOutput + ToResourceClaimTypeArrayOutputWithContext(context.Context) ResourceClaimTypeArrayOutput +} + +type ResourceClaimTypeArray []ResourceClaimTypeInput + +func (ResourceClaimTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceClaimType)(nil)).Elem() +} + +func (i ResourceClaimTypeArray) ToResourceClaimTypeArrayOutput() ResourceClaimTypeArrayOutput { + return i.ToResourceClaimTypeArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimTypeArray) ToResourceClaimTypeArrayOutputWithContext(ctx context.Context) ResourceClaimTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTypeArrayOutput) +} + +// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTypeOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimType)(nil)).Elem() +} + +func (o ResourceClaimTypeOutput) ToResourceClaimTypeOutput() ResourceClaimTypeOutput { + return o +} + +func (o ResourceClaimTypeOutput) ToResourceClaimTypeOutputWithContext(ctx context.Context) ResourceClaimTypeOutput { + return o +} + +// 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 +func (o ResourceClaimTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceClaimTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceClaimTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v ResourceClaimType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Spec describes what is being requested and how to configure it. The spec is immutable. +func (o ResourceClaimTypeOutput) Spec() ResourceClaimSpecOutput { + return o.ApplyT(func(v ResourceClaimType) ResourceClaimSpec { return v.Spec }).(ResourceClaimSpecOutput) +} + +// Status describes whether the claim is ready to use and what has been allocated. +func (o ResourceClaimTypeOutput) Status() ResourceClaimStatusPtrOutput { + return o.ApplyT(func(v ResourceClaimType) *ResourceClaimStatus { return v.Status }).(ResourceClaimStatusPtrOutput) +} + +type ResourceClaimTypeArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceClaimType)(nil)).Elem() +} + +func (o ResourceClaimTypeArrayOutput) ToResourceClaimTypeArrayOutput() ResourceClaimTypeArrayOutput { + return o +} + +func (o ResourceClaimTypeArrayOutput) ToResourceClaimTypeArrayOutputWithContext(ctx context.Context) ResourceClaimTypeArrayOutput { + return o +} + +func (o ResourceClaimTypeArrayOutput) Index(i pulumi.IntInput) ResourceClaimTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceClaimType { + return vs[0].([]ResourceClaimType)[vs[1].(int)] + }).(ResourceClaimTypeOutput) +} + +// 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. +type ResourceClaimConsumerReference struct { + // 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. + ApiGroup *string `pulumi:"apiGroup"` + // Name is the name of resource being referenced. + Name string `pulumi:"name"` + // Resource is the type of resource being referenced, for example "pods". + Resource string `pulumi:"resource"` + // UID identifies exactly one incarnation of the resource. + Uid string `pulumi:"uid"` +} + +// ResourceClaimConsumerReferenceInput is an input type that accepts ResourceClaimConsumerReferenceArgs and ResourceClaimConsumerReferenceOutput values. +// You can construct a concrete instance of `ResourceClaimConsumerReferenceInput` via: +// +// ResourceClaimConsumerReferenceArgs{...} +type ResourceClaimConsumerReferenceInput interface { + pulumi.Input + + ToResourceClaimConsumerReferenceOutput() ResourceClaimConsumerReferenceOutput + ToResourceClaimConsumerReferenceOutputWithContext(context.Context) ResourceClaimConsumerReferenceOutput +} + +// 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. +type ResourceClaimConsumerReferenceArgs struct { + // 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. + ApiGroup pulumi.StringPtrInput `pulumi:"apiGroup"` + // Name is the name of resource being referenced. + Name pulumi.StringInput `pulumi:"name"` + // Resource is the type of resource being referenced, for example "pods". + Resource pulumi.StringInput `pulumi:"resource"` + // UID identifies exactly one incarnation of the resource. + Uid pulumi.StringInput `pulumi:"uid"` +} + +func (ResourceClaimConsumerReferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimConsumerReference)(nil)).Elem() +} + +func (i ResourceClaimConsumerReferenceArgs) ToResourceClaimConsumerReferenceOutput() ResourceClaimConsumerReferenceOutput { + return i.ToResourceClaimConsumerReferenceOutputWithContext(context.Background()) +} + +func (i ResourceClaimConsumerReferenceArgs) ToResourceClaimConsumerReferenceOutputWithContext(ctx context.Context) ResourceClaimConsumerReferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimConsumerReferenceOutput) +} + +// ResourceClaimConsumerReferenceArrayInput is an input type that accepts ResourceClaimConsumerReferenceArray and ResourceClaimConsumerReferenceArrayOutput values. +// You can construct a concrete instance of `ResourceClaimConsumerReferenceArrayInput` via: +// +// ResourceClaimConsumerReferenceArray{ ResourceClaimConsumerReferenceArgs{...} } +type ResourceClaimConsumerReferenceArrayInput interface { + pulumi.Input + + ToResourceClaimConsumerReferenceArrayOutput() ResourceClaimConsumerReferenceArrayOutput + ToResourceClaimConsumerReferenceArrayOutputWithContext(context.Context) ResourceClaimConsumerReferenceArrayOutput +} + +type ResourceClaimConsumerReferenceArray []ResourceClaimConsumerReferenceInput + +func (ResourceClaimConsumerReferenceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceClaimConsumerReference)(nil)).Elem() +} + +func (i ResourceClaimConsumerReferenceArray) ToResourceClaimConsumerReferenceArrayOutput() ResourceClaimConsumerReferenceArrayOutput { + return i.ToResourceClaimConsumerReferenceArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimConsumerReferenceArray) ToResourceClaimConsumerReferenceArrayOutputWithContext(ctx context.Context) ResourceClaimConsumerReferenceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimConsumerReferenceArrayOutput) +} + +// 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. +type ResourceClaimConsumerReferenceOutput struct{ *pulumi.OutputState } + +func (ResourceClaimConsumerReferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimConsumerReference)(nil)).Elem() +} + +func (o ResourceClaimConsumerReferenceOutput) ToResourceClaimConsumerReferenceOutput() ResourceClaimConsumerReferenceOutput { + return o +} + +func (o ResourceClaimConsumerReferenceOutput) ToResourceClaimConsumerReferenceOutputWithContext(ctx context.Context) ResourceClaimConsumerReferenceOutput { + return o +} + +// 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. +func (o ResourceClaimConsumerReferenceOutput) ApiGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimConsumerReference) *string { return v.ApiGroup }).(pulumi.StringPtrOutput) +} + +// Name is the name of resource being referenced. +func (o ResourceClaimConsumerReferenceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ResourceClaimConsumerReference) string { return v.Name }).(pulumi.StringOutput) +} + +// Resource is the type of resource being referenced, for example "pods". +func (o ResourceClaimConsumerReferenceOutput) Resource() pulumi.StringOutput { + return o.ApplyT(func(v ResourceClaimConsumerReference) string { return v.Resource }).(pulumi.StringOutput) +} + +// UID identifies exactly one incarnation of the resource. +func (o ResourceClaimConsumerReferenceOutput) Uid() pulumi.StringOutput { + return o.ApplyT(func(v ResourceClaimConsumerReference) string { return v.Uid }).(pulumi.StringOutput) +} + +type ResourceClaimConsumerReferenceArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimConsumerReferenceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceClaimConsumerReference)(nil)).Elem() +} + +func (o ResourceClaimConsumerReferenceArrayOutput) ToResourceClaimConsumerReferenceArrayOutput() ResourceClaimConsumerReferenceArrayOutput { + return o +} + +func (o ResourceClaimConsumerReferenceArrayOutput) ToResourceClaimConsumerReferenceArrayOutputWithContext(ctx context.Context) ResourceClaimConsumerReferenceArrayOutput { + return o +} + +func (o ResourceClaimConsumerReferenceArrayOutput) Index(i pulumi.IntInput) ResourceClaimConsumerReferenceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceClaimConsumerReference { + return vs[0].([]ResourceClaimConsumerReference)[vs[1].(int)] + }).(ResourceClaimConsumerReferenceOutput) +} + +// 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. +type ResourceClaimConsumerReferencePatch struct { + // 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. + ApiGroup *string `pulumi:"apiGroup"` + // Name is the name of resource being referenced. + Name *string `pulumi:"name"` + // Resource is the type of resource being referenced, for example "pods". + Resource *string `pulumi:"resource"` + // UID identifies exactly one incarnation of the resource. + Uid *string `pulumi:"uid"` +} + +// ResourceClaimConsumerReferencePatchInput is an input type that accepts ResourceClaimConsumerReferencePatchArgs and ResourceClaimConsumerReferencePatchOutput values. +// You can construct a concrete instance of `ResourceClaimConsumerReferencePatchInput` via: +// +// ResourceClaimConsumerReferencePatchArgs{...} +type ResourceClaimConsumerReferencePatchInput interface { + pulumi.Input + + ToResourceClaimConsumerReferencePatchOutput() ResourceClaimConsumerReferencePatchOutput + ToResourceClaimConsumerReferencePatchOutputWithContext(context.Context) ResourceClaimConsumerReferencePatchOutput +} + +// 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. +type ResourceClaimConsumerReferencePatchArgs struct { + // 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. + ApiGroup pulumi.StringPtrInput `pulumi:"apiGroup"` + // Name is the name of resource being referenced. + Name pulumi.StringPtrInput `pulumi:"name"` + // Resource is the type of resource being referenced, for example "pods". + Resource pulumi.StringPtrInput `pulumi:"resource"` + // UID identifies exactly one incarnation of the resource. + Uid pulumi.StringPtrInput `pulumi:"uid"` +} + +func (ResourceClaimConsumerReferencePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimConsumerReferencePatch)(nil)).Elem() +} + +func (i ResourceClaimConsumerReferencePatchArgs) ToResourceClaimConsumerReferencePatchOutput() ResourceClaimConsumerReferencePatchOutput { + return i.ToResourceClaimConsumerReferencePatchOutputWithContext(context.Background()) +} + +func (i ResourceClaimConsumerReferencePatchArgs) ToResourceClaimConsumerReferencePatchOutputWithContext(ctx context.Context) ResourceClaimConsumerReferencePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimConsumerReferencePatchOutput) +} + +// ResourceClaimConsumerReferencePatchArrayInput is an input type that accepts ResourceClaimConsumerReferencePatchArray and ResourceClaimConsumerReferencePatchArrayOutput values. +// You can construct a concrete instance of `ResourceClaimConsumerReferencePatchArrayInput` via: +// +// ResourceClaimConsumerReferencePatchArray{ ResourceClaimConsumerReferencePatchArgs{...} } +type ResourceClaimConsumerReferencePatchArrayInput interface { + pulumi.Input + + ToResourceClaimConsumerReferencePatchArrayOutput() ResourceClaimConsumerReferencePatchArrayOutput + ToResourceClaimConsumerReferencePatchArrayOutputWithContext(context.Context) ResourceClaimConsumerReferencePatchArrayOutput +} + +type ResourceClaimConsumerReferencePatchArray []ResourceClaimConsumerReferencePatchInput + +func (ResourceClaimConsumerReferencePatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceClaimConsumerReferencePatch)(nil)).Elem() +} + +func (i ResourceClaimConsumerReferencePatchArray) ToResourceClaimConsumerReferencePatchArrayOutput() ResourceClaimConsumerReferencePatchArrayOutput { + return i.ToResourceClaimConsumerReferencePatchArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimConsumerReferencePatchArray) ToResourceClaimConsumerReferencePatchArrayOutputWithContext(ctx context.Context) ResourceClaimConsumerReferencePatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimConsumerReferencePatchArrayOutput) +} + +// 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. +type ResourceClaimConsumerReferencePatchOutput struct{ *pulumi.OutputState } + +func (ResourceClaimConsumerReferencePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimConsumerReferencePatch)(nil)).Elem() +} + +func (o ResourceClaimConsumerReferencePatchOutput) ToResourceClaimConsumerReferencePatchOutput() ResourceClaimConsumerReferencePatchOutput { + return o +} + +func (o ResourceClaimConsumerReferencePatchOutput) ToResourceClaimConsumerReferencePatchOutputWithContext(ctx context.Context) ResourceClaimConsumerReferencePatchOutput { + return o +} + +// 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. +func (o ResourceClaimConsumerReferencePatchOutput) ApiGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimConsumerReferencePatch) *string { return v.ApiGroup }).(pulumi.StringPtrOutput) +} + +// Name is the name of resource being referenced. +func (o ResourceClaimConsumerReferencePatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimConsumerReferencePatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Resource is the type of resource being referenced, for example "pods". +func (o ResourceClaimConsumerReferencePatchOutput) Resource() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimConsumerReferencePatch) *string { return v.Resource }).(pulumi.StringPtrOutput) +} + +// UID identifies exactly one incarnation of the resource. +func (o ResourceClaimConsumerReferencePatchOutput) Uid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimConsumerReferencePatch) *string { return v.Uid }).(pulumi.StringPtrOutput) +} + +type ResourceClaimConsumerReferencePatchArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimConsumerReferencePatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceClaimConsumerReferencePatch)(nil)).Elem() +} + +func (o ResourceClaimConsumerReferencePatchArrayOutput) ToResourceClaimConsumerReferencePatchArrayOutput() ResourceClaimConsumerReferencePatchArrayOutput { + return o +} + +func (o ResourceClaimConsumerReferencePatchArrayOutput) ToResourceClaimConsumerReferencePatchArrayOutputWithContext(ctx context.Context) ResourceClaimConsumerReferencePatchArrayOutput { + return o +} + +func (o ResourceClaimConsumerReferencePatchArrayOutput) Index(i pulumi.IntInput) ResourceClaimConsumerReferencePatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceClaimConsumerReferencePatch { + return vs[0].([]ResourceClaimConsumerReferencePatch)[vs[1].(int)] + }).(ResourceClaimConsumerReferencePatchOutput) +} + +// ResourceClaimList is a collection of claims. +type ResourceClaimListType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource claims. + Items []ResourceClaimType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// ResourceClaimListTypeInput is an input type that accepts ResourceClaimListTypeArgs and ResourceClaimListTypeOutput values. +// You can construct a concrete instance of `ResourceClaimListTypeInput` via: +// +// ResourceClaimListTypeArgs{...} +type ResourceClaimListTypeInput interface { + pulumi.Input + + ToResourceClaimListTypeOutput() ResourceClaimListTypeOutput + ToResourceClaimListTypeOutputWithContext(context.Context) ResourceClaimListTypeOutput +} + +// ResourceClaimList is a collection of claims. +type ResourceClaimListTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Items is the list of resource claims. + Items ResourceClaimTypeArrayInput `pulumi:"items"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (ResourceClaimListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimListType)(nil)).Elem() +} + +func (i ResourceClaimListTypeArgs) ToResourceClaimListTypeOutput() ResourceClaimListTypeOutput { + return i.ToResourceClaimListTypeOutputWithContext(context.Background()) +} + +func (i ResourceClaimListTypeArgs) ToResourceClaimListTypeOutputWithContext(ctx context.Context) ResourceClaimListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimListTypeOutput) +} + +// ResourceClaimList is a collection of claims. +type ResourceClaimListTypeOutput struct{ *pulumi.OutputState } + +func (ResourceClaimListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimListType)(nil)).Elem() +} + +func (o ResourceClaimListTypeOutput) ToResourceClaimListTypeOutput() ResourceClaimListTypeOutput { + return o +} + +func (o ResourceClaimListTypeOutput) ToResourceClaimListTypeOutputWithContext(ctx context.Context) ResourceClaimListTypeOutput { + return o +} + +// 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 +func (o ResourceClaimListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Items is the list of resource claims. +func (o ResourceClaimListTypeOutput) Items() ResourceClaimTypeArrayOutput { + return o.ApplyT(func(v ResourceClaimListType) []ResourceClaimType { return v.Items }).(ResourceClaimTypeArrayOutput) +} + +// 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 +func (o ResourceClaimListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata +func (o ResourceClaimListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v ResourceClaimListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimPatchType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec *ResourceClaimSpecPatch `pulumi:"spec"` + // Status describes whether the claim is ready to use and what has been allocated. + Status *ResourceClaimStatusPatch `pulumi:"status"` +} + +// ResourceClaimPatchTypeInput is an input type that accepts ResourceClaimPatchTypeArgs and ResourceClaimPatchTypeOutput values. +// You can construct a concrete instance of `ResourceClaimPatchTypeInput` via: +// +// ResourceClaimPatchTypeArgs{...} +type ResourceClaimPatchTypeInput interface { + pulumi.Input + + ToResourceClaimPatchTypeOutput() ResourceClaimPatchTypeOutput + ToResourceClaimPatchTypeOutputWithContext(context.Context) ResourceClaimPatchTypeOutput +} + +// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimPatchTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec ResourceClaimSpecPatchPtrInput `pulumi:"spec"` + // Status describes whether the claim is ready to use and what has been allocated. + Status ResourceClaimStatusPatchPtrInput `pulumi:"status"` +} + +func (ResourceClaimPatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimPatchType)(nil)).Elem() +} + +func (i ResourceClaimPatchTypeArgs) ToResourceClaimPatchTypeOutput() ResourceClaimPatchTypeOutput { + return i.ToResourceClaimPatchTypeOutputWithContext(context.Background()) +} + +func (i ResourceClaimPatchTypeArgs) ToResourceClaimPatchTypeOutputWithContext(ctx context.Context) ResourceClaimPatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimPatchTypeOutput) +} + +// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimPatchTypeOutput struct{ *pulumi.OutputState } + +func (ResourceClaimPatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimPatchType)(nil)).Elem() +} + +func (o ResourceClaimPatchTypeOutput) ToResourceClaimPatchTypeOutput() ResourceClaimPatchTypeOutput { + return o +} + +func (o ResourceClaimPatchTypeOutput) ToResourceClaimPatchTypeOutputWithContext(ctx context.Context) ResourceClaimPatchTypeOutput { + return o +} + +// 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 +func (o ResourceClaimPatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimPatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceClaimPatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimPatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceClaimPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Spec describes what is being requested and how to configure it. The spec is immutable. +func (o ResourceClaimPatchTypeOutput) Spec() ResourceClaimSpecPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimPatchType) *ResourceClaimSpecPatch { return v.Spec }).(ResourceClaimSpecPatchPtrOutput) +} + +// Status describes whether the claim is ready to use and what has been allocated. +func (o ResourceClaimPatchTypeOutput) Status() ResourceClaimStatusPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimPatchType) *ResourceClaimStatusPatch { return v.Status }).(ResourceClaimStatusPatchPtrOutput) +} + +// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. +type ResourceClaimSpec struct { + // Devices defines how to request devices. + Devices *DeviceClaim `pulumi:"devices"` +} + +// ResourceClaimSpecInput is an input type that accepts ResourceClaimSpecArgs and ResourceClaimSpecOutput values. +// You can construct a concrete instance of `ResourceClaimSpecInput` via: +// +// ResourceClaimSpecArgs{...} +type ResourceClaimSpecInput interface { + pulumi.Input + + ToResourceClaimSpecOutput() ResourceClaimSpecOutput + ToResourceClaimSpecOutputWithContext(context.Context) ResourceClaimSpecOutput +} + +// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. +type ResourceClaimSpecArgs struct { + // Devices defines how to request devices. + Devices DeviceClaimPtrInput `pulumi:"devices"` +} + +func (ResourceClaimSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimSpec)(nil)).Elem() +} + +func (i ResourceClaimSpecArgs) ToResourceClaimSpecOutput() ResourceClaimSpecOutput { + return i.ToResourceClaimSpecOutputWithContext(context.Background()) +} + +func (i ResourceClaimSpecArgs) ToResourceClaimSpecOutputWithContext(ctx context.Context) ResourceClaimSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimSpecOutput) +} + +// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. +type ResourceClaimSpecOutput struct{ *pulumi.OutputState } + +func (ResourceClaimSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimSpec)(nil)).Elem() +} + +func (o ResourceClaimSpecOutput) ToResourceClaimSpecOutput() ResourceClaimSpecOutput { + return o +} + +func (o ResourceClaimSpecOutput) ToResourceClaimSpecOutputWithContext(ctx context.Context) ResourceClaimSpecOutput { + return o +} + +// Devices defines how to request devices. +func (o ResourceClaimSpecOutput) Devices() DeviceClaimPtrOutput { + return o.ApplyT(func(v ResourceClaimSpec) *DeviceClaim { return v.Devices }).(DeviceClaimPtrOutput) +} + +// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. +type ResourceClaimSpecPatch struct { + // Devices defines how to request devices. + Devices *DeviceClaimPatch `pulumi:"devices"` +} + +// ResourceClaimSpecPatchInput is an input type that accepts ResourceClaimSpecPatchArgs and ResourceClaimSpecPatchOutput values. +// You can construct a concrete instance of `ResourceClaimSpecPatchInput` via: +// +// ResourceClaimSpecPatchArgs{...} +type ResourceClaimSpecPatchInput interface { + pulumi.Input + + ToResourceClaimSpecPatchOutput() ResourceClaimSpecPatchOutput + ToResourceClaimSpecPatchOutputWithContext(context.Context) ResourceClaimSpecPatchOutput +} + +// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. +type ResourceClaimSpecPatchArgs struct { + // Devices defines how to request devices. + Devices DeviceClaimPatchPtrInput `pulumi:"devices"` +} + +func (ResourceClaimSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimSpecPatch)(nil)).Elem() +} + +func (i ResourceClaimSpecPatchArgs) ToResourceClaimSpecPatchOutput() ResourceClaimSpecPatchOutput { + return i.ToResourceClaimSpecPatchOutputWithContext(context.Background()) +} + +func (i ResourceClaimSpecPatchArgs) ToResourceClaimSpecPatchOutputWithContext(ctx context.Context) ResourceClaimSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimSpecPatchOutput) +} + +func (i ResourceClaimSpecPatchArgs) ToResourceClaimSpecPatchPtrOutput() ResourceClaimSpecPatchPtrOutput { + return i.ToResourceClaimSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i ResourceClaimSpecPatchArgs) ToResourceClaimSpecPatchPtrOutputWithContext(ctx context.Context) ResourceClaimSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimSpecPatchOutput).ToResourceClaimSpecPatchPtrOutputWithContext(ctx) +} + +// ResourceClaimSpecPatchPtrInput is an input type that accepts ResourceClaimSpecPatchArgs, ResourceClaimSpecPatchPtr and ResourceClaimSpecPatchPtrOutput values. +// You can construct a concrete instance of `ResourceClaimSpecPatchPtrInput` via: +// +// ResourceClaimSpecPatchArgs{...} +// +// or: +// +// nil +type ResourceClaimSpecPatchPtrInput interface { + pulumi.Input + + ToResourceClaimSpecPatchPtrOutput() ResourceClaimSpecPatchPtrOutput + ToResourceClaimSpecPatchPtrOutputWithContext(context.Context) ResourceClaimSpecPatchPtrOutput +} + +type resourceClaimSpecPatchPtrType ResourceClaimSpecPatchArgs + +func ResourceClaimSpecPatchPtr(v *ResourceClaimSpecPatchArgs) ResourceClaimSpecPatchPtrInput { + return (*resourceClaimSpecPatchPtrType)(v) +} + +func (*resourceClaimSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimSpecPatch)(nil)).Elem() +} + +func (i *resourceClaimSpecPatchPtrType) ToResourceClaimSpecPatchPtrOutput() ResourceClaimSpecPatchPtrOutput { + return i.ToResourceClaimSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *resourceClaimSpecPatchPtrType) ToResourceClaimSpecPatchPtrOutputWithContext(ctx context.Context) ResourceClaimSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimSpecPatchPtrOutput) +} + +// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. +type ResourceClaimSpecPatchOutput struct{ *pulumi.OutputState } + +func (ResourceClaimSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimSpecPatch)(nil)).Elem() +} + +func (o ResourceClaimSpecPatchOutput) ToResourceClaimSpecPatchOutput() ResourceClaimSpecPatchOutput { + return o +} + +func (o ResourceClaimSpecPatchOutput) ToResourceClaimSpecPatchOutputWithContext(ctx context.Context) ResourceClaimSpecPatchOutput { + return o +} + +func (o ResourceClaimSpecPatchOutput) ToResourceClaimSpecPatchPtrOutput() ResourceClaimSpecPatchPtrOutput { + return o.ToResourceClaimSpecPatchPtrOutputWithContext(context.Background()) +} + +func (o ResourceClaimSpecPatchOutput) ToResourceClaimSpecPatchPtrOutputWithContext(ctx context.Context) ResourceClaimSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceClaimSpecPatch) *ResourceClaimSpecPatch { + return &v + }).(ResourceClaimSpecPatchPtrOutput) +} + +// Devices defines how to request devices. +func (o ResourceClaimSpecPatchOutput) Devices() DeviceClaimPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimSpecPatch) *DeviceClaimPatch { return v.Devices }).(DeviceClaimPatchPtrOutput) +} + +type ResourceClaimSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (ResourceClaimSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimSpecPatch)(nil)).Elem() +} + +func (o ResourceClaimSpecPatchPtrOutput) ToResourceClaimSpecPatchPtrOutput() ResourceClaimSpecPatchPtrOutput { + return o +} + +func (o ResourceClaimSpecPatchPtrOutput) ToResourceClaimSpecPatchPtrOutputWithContext(ctx context.Context) ResourceClaimSpecPatchPtrOutput { + return o +} + +func (o ResourceClaimSpecPatchPtrOutput) Elem() ResourceClaimSpecPatchOutput { + return o.ApplyT(func(v *ResourceClaimSpecPatch) ResourceClaimSpecPatch { + if v != nil { + return *v + } + var ret ResourceClaimSpecPatch + return ret + }).(ResourceClaimSpecPatchOutput) +} + +// Devices defines how to request devices. +func (o ResourceClaimSpecPatchPtrOutput) Devices() DeviceClaimPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimSpecPatch) *DeviceClaimPatch { + if v == nil { + return nil + } + return v.Devices + }).(DeviceClaimPatchPtrOutput) +} + +// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. +type ResourceClaimStatus struct { + // Allocation is set once the claim has been allocated successfully. + Allocation *AllocationResult `pulumi:"allocation"` + // Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + Devices []AllocatedDeviceStatus `pulumi:"devices"` + // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + // + // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + // + // 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. + // + // There can be at most 32 such reservations. This may get increased in the future, but not reduced. + ReservedFor []ResourceClaimConsumerReference `pulumi:"reservedFor"` +} + +// ResourceClaimStatusInput is an input type that accepts ResourceClaimStatusArgs and ResourceClaimStatusOutput values. +// You can construct a concrete instance of `ResourceClaimStatusInput` via: +// +// ResourceClaimStatusArgs{...} +type ResourceClaimStatusInput interface { + pulumi.Input + + ToResourceClaimStatusOutput() ResourceClaimStatusOutput + ToResourceClaimStatusOutputWithContext(context.Context) ResourceClaimStatusOutput +} + +// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. +type ResourceClaimStatusArgs struct { + // Allocation is set once the claim has been allocated successfully. + Allocation AllocationResultPtrInput `pulumi:"allocation"` + // Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + Devices AllocatedDeviceStatusArrayInput `pulumi:"devices"` + // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + // + // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + // + // 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. + // + // There can be at most 32 such reservations. This may get increased in the future, but not reduced. + ReservedFor ResourceClaimConsumerReferenceArrayInput `pulumi:"reservedFor"` +} + +func (ResourceClaimStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimStatus)(nil)).Elem() +} + +func (i ResourceClaimStatusArgs) ToResourceClaimStatusOutput() ResourceClaimStatusOutput { + return i.ToResourceClaimStatusOutputWithContext(context.Background()) +} + +func (i ResourceClaimStatusArgs) ToResourceClaimStatusOutputWithContext(ctx context.Context) ResourceClaimStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimStatusOutput) +} + +func (i ResourceClaimStatusArgs) ToResourceClaimStatusPtrOutput() ResourceClaimStatusPtrOutput { + return i.ToResourceClaimStatusPtrOutputWithContext(context.Background()) +} + +func (i ResourceClaimStatusArgs) ToResourceClaimStatusPtrOutputWithContext(ctx context.Context) ResourceClaimStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimStatusOutput).ToResourceClaimStatusPtrOutputWithContext(ctx) +} + +// ResourceClaimStatusPtrInput is an input type that accepts ResourceClaimStatusArgs, ResourceClaimStatusPtr and ResourceClaimStatusPtrOutput values. +// You can construct a concrete instance of `ResourceClaimStatusPtrInput` via: +// +// ResourceClaimStatusArgs{...} +// +// or: +// +// nil +type ResourceClaimStatusPtrInput interface { + pulumi.Input + + ToResourceClaimStatusPtrOutput() ResourceClaimStatusPtrOutput + ToResourceClaimStatusPtrOutputWithContext(context.Context) ResourceClaimStatusPtrOutput +} + +type resourceClaimStatusPtrType ResourceClaimStatusArgs + +func ResourceClaimStatusPtr(v *ResourceClaimStatusArgs) ResourceClaimStatusPtrInput { + return (*resourceClaimStatusPtrType)(v) +} + +func (*resourceClaimStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimStatus)(nil)).Elem() +} + +func (i *resourceClaimStatusPtrType) ToResourceClaimStatusPtrOutput() ResourceClaimStatusPtrOutput { + return i.ToResourceClaimStatusPtrOutputWithContext(context.Background()) +} + +func (i *resourceClaimStatusPtrType) ToResourceClaimStatusPtrOutputWithContext(ctx context.Context) ResourceClaimStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimStatusPtrOutput) +} + +// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. +type ResourceClaimStatusOutput struct{ *pulumi.OutputState } + +func (ResourceClaimStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimStatus)(nil)).Elem() +} + +func (o ResourceClaimStatusOutput) ToResourceClaimStatusOutput() ResourceClaimStatusOutput { + return o +} + +func (o ResourceClaimStatusOutput) ToResourceClaimStatusOutputWithContext(ctx context.Context) ResourceClaimStatusOutput { + return o +} + +func (o ResourceClaimStatusOutput) ToResourceClaimStatusPtrOutput() ResourceClaimStatusPtrOutput { + return o.ToResourceClaimStatusPtrOutputWithContext(context.Background()) +} + +func (o ResourceClaimStatusOutput) ToResourceClaimStatusPtrOutputWithContext(ctx context.Context) ResourceClaimStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceClaimStatus) *ResourceClaimStatus { + return &v + }).(ResourceClaimStatusPtrOutput) +} + +// Allocation is set once the claim has been allocated successfully. +func (o ResourceClaimStatusOutput) Allocation() AllocationResultPtrOutput { + return o.ApplyT(func(v ResourceClaimStatus) *AllocationResult { return v.Allocation }).(AllocationResultPtrOutput) +} + +// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. +func (o ResourceClaimStatusOutput) Devices() AllocatedDeviceStatusArrayOutput { + return o.ApplyT(func(v ResourceClaimStatus) []AllocatedDeviceStatus { return v.Devices }).(AllocatedDeviceStatusArrayOutput) +} + +// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. +// +// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. +// +// 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. +// +// There can be at most 32 such reservations. This may get increased in the future, but not reduced. +func (o ResourceClaimStatusOutput) ReservedFor() ResourceClaimConsumerReferenceArrayOutput { + return o.ApplyT(func(v ResourceClaimStatus) []ResourceClaimConsumerReference { return v.ReservedFor }).(ResourceClaimConsumerReferenceArrayOutput) +} + +type ResourceClaimStatusPtrOutput struct{ *pulumi.OutputState } + +func (ResourceClaimStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimStatus)(nil)).Elem() +} + +func (o ResourceClaimStatusPtrOutput) ToResourceClaimStatusPtrOutput() ResourceClaimStatusPtrOutput { + return o +} + +func (o ResourceClaimStatusPtrOutput) ToResourceClaimStatusPtrOutputWithContext(ctx context.Context) ResourceClaimStatusPtrOutput { + return o +} + +func (o ResourceClaimStatusPtrOutput) Elem() ResourceClaimStatusOutput { + return o.ApplyT(func(v *ResourceClaimStatus) ResourceClaimStatus { + if v != nil { + return *v + } + var ret ResourceClaimStatus + return ret + }).(ResourceClaimStatusOutput) +} + +// Allocation is set once the claim has been allocated successfully. +func (o ResourceClaimStatusPtrOutput) Allocation() AllocationResultPtrOutput { + return o.ApplyT(func(v *ResourceClaimStatus) *AllocationResult { + if v == nil { + return nil + } + return v.Allocation + }).(AllocationResultPtrOutput) +} + +// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. +func (o ResourceClaimStatusPtrOutput) Devices() AllocatedDeviceStatusArrayOutput { + return o.ApplyT(func(v *ResourceClaimStatus) []AllocatedDeviceStatus { + if v == nil { + return nil + } + return v.Devices + }).(AllocatedDeviceStatusArrayOutput) +} + +// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. +// +// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. +// +// 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. +// +// There can be at most 32 such reservations. This may get increased in the future, but not reduced. +func (o ResourceClaimStatusPtrOutput) ReservedFor() ResourceClaimConsumerReferenceArrayOutput { + return o.ApplyT(func(v *ResourceClaimStatus) []ResourceClaimConsumerReference { + if v == nil { + return nil + } + return v.ReservedFor + }).(ResourceClaimConsumerReferenceArrayOutput) +} + +// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. +type ResourceClaimStatusPatch struct { + // Allocation is set once the claim has been allocated successfully. + Allocation *AllocationResultPatch `pulumi:"allocation"` + // Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + Devices []AllocatedDeviceStatusPatch `pulumi:"devices"` + // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + // + // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + // + // 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. + // + // There can be at most 32 such reservations. This may get increased in the future, but not reduced. + ReservedFor []ResourceClaimConsumerReferencePatch `pulumi:"reservedFor"` +} + +// ResourceClaimStatusPatchInput is an input type that accepts ResourceClaimStatusPatchArgs and ResourceClaimStatusPatchOutput values. +// You can construct a concrete instance of `ResourceClaimStatusPatchInput` via: +// +// ResourceClaimStatusPatchArgs{...} +type ResourceClaimStatusPatchInput interface { + pulumi.Input + + ToResourceClaimStatusPatchOutput() ResourceClaimStatusPatchOutput + ToResourceClaimStatusPatchOutputWithContext(context.Context) ResourceClaimStatusPatchOutput +} + +// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. +type ResourceClaimStatusPatchArgs struct { + // Allocation is set once the claim has been allocated successfully. + Allocation AllocationResultPatchPtrInput `pulumi:"allocation"` + // Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + Devices AllocatedDeviceStatusPatchArrayInput `pulumi:"devices"` + // ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + // + // In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + // + // 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. + // + // There can be at most 32 such reservations. This may get increased in the future, but not reduced. + ReservedFor ResourceClaimConsumerReferencePatchArrayInput `pulumi:"reservedFor"` +} + +func (ResourceClaimStatusPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimStatusPatch)(nil)).Elem() +} + +func (i ResourceClaimStatusPatchArgs) ToResourceClaimStatusPatchOutput() ResourceClaimStatusPatchOutput { + return i.ToResourceClaimStatusPatchOutputWithContext(context.Background()) +} + +func (i ResourceClaimStatusPatchArgs) ToResourceClaimStatusPatchOutputWithContext(ctx context.Context) ResourceClaimStatusPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimStatusPatchOutput) +} + +func (i ResourceClaimStatusPatchArgs) ToResourceClaimStatusPatchPtrOutput() ResourceClaimStatusPatchPtrOutput { + return i.ToResourceClaimStatusPatchPtrOutputWithContext(context.Background()) +} + +func (i ResourceClaimStatusPatchArgs) ToResourceClaimStatusPatchPtrOutputWithContext(ctx context.Context) ResourceClaimStatusPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimStatusPatchOutput).ToResourceClaimStatusPatchPtrOutputWithContext(ctx) +} + +// ResourceClaimStatusPatchPtrInput is an input type that accepts ResourceClaimStatusPatchArgs, ResourceClaimStatusPatchPtr and ResourceClaimStatusPatchPtrOutput values. +// You can construct a concrete instance of `ResourceClaimStatusPatchPtrInput` via: +// +// ResourceClaimStatusPatchArgs{...} +// +// or: +// +// nil +type ResourceClaimStatusPatchPtrInput interface { + pulumi.Input + + ToResourceClaimStatusPatchPtrOutput() ResourceClaimStatusPatchPtrOutput + ToResourceClaimStatusPatchPtrOutputWithContext(context.Context) ResourceClaimStatusPatchPtrOutput +} + +type resourceClaimStatusPatchPtrType ResourceClaimStatusPatchArgs + +func ResourceClaimStatusPatchPtr(v *ResourceClaimStatusPatchArgs) ResourceClaimStatusPatchPtrInput { + return (*resourceClaimStatusPatchPtrType)(v) +} + +func (*resourceClaimStatusPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimStatusPatch)(nil)).Elem() +} + +func (i *resourceClaimStatusPatchPtrType) ToResourceClaimStatusPatchPtrOutput() ResourceClaimStatusPatchPtrOutput { + return i.ToResourceClaimStatusPatchPtrOutputWithContext(context.Background()) +} + +func (i *resourceClaimStatusPatchPtrType) ToResourceClaimStatusPatchPtrOutputWithContext(ctx context.Context) ResourceClaimStatusPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimStatusPatchPtrOutput) +} + +// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. +type ResourceClaimStatusPatchOutput struct{ *pulumi.OutputState } + +func (ResourceClaimStatusPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimStatusPatch)(nil)).Elem() +} + +func (o ResourceClaimStatusPatchOutput) ToResourceClaimStatusPatchOutput() ResourceClaimStatusPatchOutput { + return o +} + +func (o ResourceClaimStatusPatchOutput) ToResourceClaimStatusPatchOutputWithContext(ctx context.Context) ResourceClaimStatusPatchOutput { + return o +} + +func (o ResourceClaimStatusPatchOutput) ToResourceClaimStatusPatchPtrOutput() ResourceClaimStatusPatchPtrOutput { + return o.ToResourceClaimStatusPatchPtrOutputWithContext(context.Background()) +} + +func (o ResourceClaimStatusPatchOutput) ToResourceClaimStatusPatchPtrOutputWithContext(ctx context.Context) ResourceClaimStatusPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceClaimStatusPatch) *ResourceClaimStatusPatch { + return &v + }).(ResourceClaimStatusPatchPtrOutput) +} + +// Allocation is set once the claim has been allocated successfully. +func (o ResourceClaimStatusPatchOutput) Allocation() AllocationResultPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimStatusPatch) *AllocationResultPatch { return v.Allocation }).(AllocationResultPatchPtrOutput) +} + +// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. +func (o ResourceClaimStatusPatchOutput) Devices() AllocatedDeviceStatusPatchArrayOutput { + return o.ApplyT(func(v ResourceClaimStatusPatch) []AllocatedDeviceStatusPatch { return v.Devices }).(AllocatedDeviceStatusPatchArrayOutput) +} + +// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. +// +// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. +// +// 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. +// +// There can be at most 32 such reservations. This may get increased in the future, but not reduced. +func (o ResourceClaimStatusPatchOutput) ReservedFor() ResourceClaimConsumerReferencePatchArrayOutput { + return o.ApplyT(func(v ResourceClaimStatusPatch) []ResourceClaimConsumerReferencePatch { return v.ReservedFor }).(ResourceClaimConsumerReferencePatchArrayOutput) +} + +type ResourceClaimStatusPatchPtrOutput struct{ *pulumi.OutputState } + +func (ResourceClaimStatusPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimStatusPatch)(nil)).Elem() +} + +func (o ResourceClaimStatusPatchPtrOutput) ToResourceClaimStatusPatchPtrOutput() ResourceClaimStatusPatchPtrOutput { + return o +} + +func (o ResourceClaimStatusPatchPtrOutput) ToResourceClaimStatusPatchPtrOutputWithContext(ctx context.Context) ResourceClaimStatusPatchPtrOutput { + return o +} + +func (o ResourceClaimStatusPatchPtrOutput) Elem() ResourceClaimStatusPatchOutput { + return o.ApplyT(func(v *ResourceClaimStatusPatch) ResourceClaimStatusPatch { + if v != nil { + return *v + } + var ret ResourceClaimStatusPatch + return ret + }).(ResourceClaimStatusPatchOutput) +} + +// Allocation is set once the claim has been allocated successfully. +func (o ResourceClaimStatusPatchPtrOutput) Allocation() AllocationResultPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimStatusPatch) *AllocationResultPatch { + if v == nil { + return nil + } + return v.Allocation + }).(AllocationResultPatchPtrOutput) +} + +// Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. +func (o ResourceClaimStatusPatchPtrOutput) Devices() AllocatedDeviceStatusPatchArrayOutput { + return o.ApplyT(func(v *ResourceClaimStatusPatch) []AllocatedDeviceStatusPatch { + if v == nil { + return nil + } + return v.Devices + }).(AllocatedDeviceStatusPatchArrayOutput) +} + +// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. +// +// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. +// +// 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. +// +// There can be at most 32 such reservations. This may get increased in the future, but not reduced. +func (o ResourceClaimStatusPatchPtrOutput) ReservedFor() ResourceClaimConsumerReferencePatchArrayOutput { + return o.ApplyT(func(v *ResourceClaimStatusPatch) []ResourceClaimConsumerReferencePatch { + if v == nil { + return nil + } + return v.ReservedFor + }).(ResourceClaimConsumerReferencePatchArrayOutput) +} + +// ResourceClaimTemplate is used to produce ResourceClaim objects. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTemplateType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec ResourceClaimTemplateSpec `pulumi:"spec"` +} + +// ResourceClaimTemplateTypeInput is an input type that accepts ResourceClaimTemplateTypeArgs and ResourceClaimTemplateTypeOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateTypeInput` via: +// +// ResourceClaimTemplateTypeArgs{...} +type ResourceClaimTemplateTypeInput interface { + pulumi.Input + + ToResourceClaimTemplateTypeOutput() ResourceClaimTemplateTypeOutput + ToResourceClaimTemplateTypeOutputWithContext(context.Context) ResourceClaimTemplateTypeOutput +} + +// ResourceClaimTemplate is used to produce ResourceClaim objects. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTemplateTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec ResourceClaimTemplateSpecInput `pulumi:"spec"` +} + +func (ResourceClaimTemplateTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplateType)(nil)).Elem() +} + +func (i ResourceClaimTemplateTypeArgs) ToResourceClaimTemplateTypeOutput() ResourceClaimTemplateTypeOutput { + return i.ToResourceClaimTemplateTypeOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateTypeArgs) ToResourceClaimTemplateTypeOutputWithContext(ctx context.Context) ResourceClaimTemplateTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateTypeOutput) +} + +// ResourceClaimTemplateTypeArrayInput is an input type that accepts ResourceClaimTemplateTypeArray and ResourceClaimTemplateTypeArrayOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateTypeArrayInput` via: +// +// ResourceClaimTemplateTypeArray{ ResourceClaimTemplateTypeArgs{...} } +type ResourceClaimTemplateTypeArrayInput interface { + pulumi.Input + + ToResourceClaimTemplateTypeArrayOutput() ResourceClaimTemplateTypeArrayOutput + ToResourceClaimTemplateTypeArrayOutputWithContext(context.Context) ResourceClaimTemplateTypeArrayOutput +} + +type ResourceClaimTemplateTypeArray []ResourceClaimTemplateTypeInput + +func (ResourceClaimTemplateTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceClaimTemplateType)(nil)).Elem() +} + +func (i ResourceClaimTemplateTypeArray) ToResourceClaimTemplateTypeArrayOutput() ResourceClaimTemplateTypeArrayOutput { + return i.ToResourceClaimTemplateTypeArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateTypeArray) ToResourceClaimTemplateTypeArrayOutputWithContext(ctx context.Context) ResourceClaimTemplateTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateTypeArrayOutput) +} + +// ResourceClaimTemplate is used to produce ResourceClaim objects. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTemplateTypeOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplateType)(nil)).Elem() +} + +func (o ResourceClaimTemplateTypeOutput) ToResourceClaimTemplateTypeOutput() ResourceClaimTemplateTypeOutput { + return o +} + +func (o ResourceClaimTemplateTypeOutput) ToResourceClaimTemplateTypeOutputWithContext(ctx context.Context) ResourceClaimTemplateTypeOutput { + return o +} + +// 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 +func (o ResourceClaimTemplateTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceClaimTemplateTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceClaimTemplateTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Describes the ResourceClaim that is to be generated. +// +// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. +func (o ResourceClaimTemplateTypeOutput) Spec() ResourceClaimTemplateSpecOutput { + return o.ApplyT(func(v ResourceClaimTemplateType) ResourceClaimTemplateSpec { return v.Spec }).(ResourceClaimTemplateSpecOutput) +} + +type ResourceClaimTemplateTypeArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceClaimTemplateType)(nil)).Elem() +} + +func (o ResourceClaimTemplateTypeArrayOutput) ToResourceClaimTemplateTypeArrayOutput() ResourceClaimTemplateTypeArrayOutput { + return o +} + +func (o ResourceClaimTemplateTypeArrayOutput) ToResourceClaimTemplateTypeArrayOutputWithContext(ctx context.Context) ResourceClaimTemplateTypeArrayOutput { + return o +} + +func (o ResourceClaimTemplateTypeArrayOutput) Index(i pulumi.IntInput) ResourceClaimTemplateTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceClaimTemplateType { + return vs[0].([]ResourceClaimTemplateType)[vs[1].(int)] + }).(ResourceClaimTemplateTypeOutput) +} + +// ResourceClaimTemplateList is a collection of claim templates. +type ResourceClaimTemplateListType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource claim templates. + Items []ResourceClaimTemplateType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// ResourceClaimTemplateListTypeInput is an input type that accepts ResourceClaimTemplateListTypeArgs and ResourceClaimTemplateListTypeOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateListTypeInput` via: +// +// ResourceClaimTemplateListTypeArgs{...} +type ResourceClaimTemplateListTypeInput interface { + pulumi.Input + + ToResourceClaimTemplateListTypeOutput() ResourceClaimTemplateListTypeOutput + ToResourceClaimTemplateListTypeOutputWithContext(context.Context) ResourceClaimTemplateListTypeOutput +} + +// ResourceClaimTemplateList is a collection of claim templates. +type ResourceClaimTemplateListTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Items is the list of resource claim templates. + Items ResourceClaimTemplateTypeArrayInput `pulumi:"items"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (ResourceClaimTemplateListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplateListType)(nil)).Elem() +} + +func (i ResourceClaimTemplateListTypeArgs) ToResourceClaimTemplateListTypeOutput() ResourceClaimTemplateListTypeOutput { + return i.ToResourceClaimTemplateListTypeOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateListTypeArgs) ToResourceClaimTemplateListTypeOutputWithContext(ctx context.Context) ResourceClaimTemplateListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateListTypeOutput) +} + +// ResourceClaimTemplateList is a collection of claim templates. +type ResourceClaimTemplateListTypeOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplateListType)(nil)).Elem() +} + +func (o ResourceClaimTemplateListTypeOutput) ToResourceClaimTemplateListTypeOutput() ResourceClaimTemplateListTypeOutput { + return o +} + +func (o ResourceClaimTemplateListTypeOutput) ToResourceClaimTemplateListTypeOutputWithContext(ctx context.Context) ResourceClaimTemplateListTypeOutput { + return o +} + +// 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 +func (o ResourceClaimTemplateListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Items is the list of resource claim templates. +func (o ResourceClaimTemplateListTypeOutput) Items() ResourceClaimTemplateTypeArrayOutput { + return o.ApplyT(func(v ResourceClaimTemplateListType) []ResourceClaimTemplateType { return v.Items }).(ResourceClaimTemplateTypeArrayOutput) +} + +// 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 +func (o ResourceClaimTemplateListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata +func (o ResourceClaimTemplateListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// ResourceClaimTemplate is used to produce ResourceClaim objects. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTemplatePatchType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec *ResourceClaimTemplateSpecPatch `pulumi:"spec"` +} + +// ResourceClaimTemplatePatchTypeInput is an input type that accepts ResourceClaimTemplatePatchTypeArgs and ResourceClaimTemplatePatchTypeOutput values. +// You can construct a concrete instance of `ResourceClaimTemplatePatchTypeInput` via: +// +// ResourceClaimTemplatePatchTypeArgs{...} +type ResourceClaimTemplatePatchTypeInput interface { + pulumi.Input + + ToResourceClaimTemplatePatchTypeOutput() ResourceClaimTemplatePatchTypeOutput + ToResourceClaimTemplatePatchTypeOutputWithContext(context.Context) ResourceClaimTemplatePatchTypeOutput +} + +// ResourceClaimTemplate is used to produce ResourceClaim objects. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTemplatePatchTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec ResourceClaimTemplateSpecPatchPtrInput `pulumi:"spec"` +} + +func (ResourceClaimTemplatePatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplatePatchType)(nil)).Elem() +} + +func (i ResourceClaimTemplatePatchTypeArgs) ToResourceClaimTemplatePatchTypeOutput() ResourceClaimTemplatePatchTypeOutput { + return i.ToResourceClaimTemplatePatchTypeOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplatePatchTypeArgs) ToResourceClaimTemplatePatchTypeOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplatePatchTypeOutput) +} + +// ResourceClaimTemplate is used to produce ResourceClaim objects. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTemplatePatchTypeOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplatePatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplatePatchType)(nil)).Elem() +} + +func (o ResourceClaimTemplatePatchTypeOutput) ToResourceClaimTemplatePatchTypeOutput() ResourceClaimTemplatePatchTypeOutput { + return o +} + +func (o ResourceClaimTemplatePatchTypeOutput) ToResourceClaimTemplatePatchTypeOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchTypeOutput { + return o +} + +// 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 +func (o ResourceClaimTemplatePatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplatePatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceClaimTemplatePatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplatePatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceClaimTemplatePatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplatePatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Describes the ResourceClaim that is to be generated. +// +// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. +func (o ResourceClaimTemplatePatchTypeOutput) Spec() ResourceClaimTemplateSpecPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplatePatchType) *ResourceClaimTemplateSpecPatch { return v.Spec }).(ResourceClaimTemplateSpecPatchPtrOutput) +} + +// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. +type ResourceClaimTemplateSpec struct { + // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + Spec ResourceClaimSpec `pulumi:"spec"` +} + +// ResourceClaimTemplateSpecInput is an input type that accepts ResourceClaimTemplateSpecArgs and ResourceClaimTemplateSpecOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateSpecInput` via: +// +// ResourceClaimTemplateSpecArgs{...} +type ResourceClaimTemplateSpecInput interface { + pulumi.Input + + ToResourceClaimTemplateSpecOutput() ResourceClaimTemplateSpecOutput + ToResourceClaimTemplateSpecOutputWithContext(context.Context) ResourceClaimTemplateSpecOutput +} + +// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. +type ResourceClaimTemplateSpecArgs struct { + // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + Spec ResourceClaimSpecInput `pulumi:"spec"` +} + +func (ResourceClaimTemplateSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplateSpec)(nil)).Elem() +} + +func (i ResourceClaimTemplateSpecArgs) ToResourceClaimTemplateSpecOutput() ResourceClaimTemplateSpecOutput { + return i.ToResourceClaimTemplateSpecOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateSpecArgs) ToResourceClaimTemplateSpecOutputWithContext(ctx context.Context) ResourceClaimTemplateSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateSpecOutput) +} + +// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. +type ResourceClaimTemplateSpecOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplateSpec)(nil)).Elem() +} + +func (o ResourceClaimTemplateSpecOutput) ToResourceClaimTemplateSpecOutput() ResourceClaimTemplateSpecOutput { + return o +} + +func (o ResourceClaimTemplateSpecOutput) ToResourceClaimTemplateSpecOutputWithContext(ctx context.Context) ResourceClaimTemplateSpecOutput { + return o +} + +// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. +func (o ResourceClaimTemplateSpecOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateSpec) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. +func (o ResourceClaimTemplateSpecOutput) Spec() ResourceClaimSpecOutput { + return o.ApplyT(func(v ResourceClaimTemplateSpec) ResourceClaimSpec { return v.Spec }).(ResourceClaimSpecOutput) +} + +// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. +type ResourceClaimTemplateSpecPatch struct { + // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + Spec *ResourceClaimSpecPatch `pulumi:"spec"` +} + +// ResourceClaimTemplateSpecPatchInput is an input type that accepts ResourceClaimTemplateSpecPatchArgs and ResourceClaimTemplateSpecPatchOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateSpecPatchInput` via: +// +// ResourceClaimTemplateSpecPatchArgs{...} +type ResourceClaimTemplateSpecPatchInput interface { + pulumi.Input + + ToResourceClaimTemplateSpecPatchOutput() ResourceClaimTemplateSpecPatchOutput + ToResourceClaimTemplateSpecPatchOutputWithContext(context.Context) ResourceClaimTemplateSpecPatchOutput +} + +// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. +type ResourceClaimTemplateSpecPatchArgs struct { + // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + Spec ResourceClaimSpecPatchPtrInput `pulumi:"spec"` +} + +func (ResourceClaimTemplateSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplateSpecPatch)(nil)).Elem() +} + +func (i ResourceClaimTemplateSpecPatchArgs) ToResourceClaimTemplateSpecPatchOutput() ResourceClaimTemplateSpecPatchOutput { + return i.ToResourceClaimTemplateSpecPatchOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateSpecPatchArgs) ToResourceClaimTemplateSpecPatchOutputWithContext(ctx context.Context) ResourceClaimTemplateSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateSpecPatchOutput) +} + +func (i ResourceClaimTemplateSpecPatchArgs) ToResourceClaimTemplateSpecPatchPtrOutput() ResourceClaimTemplateSpecPatchPtrOutput { + return i.ToResourceClaimTemplateSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateSpecPatchArgs) ToResourceClaimTemplateSpecPatchPtrOutputWithContext(ctx context.Context) ResourceClaimTemplateSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateSpecPatchOutput).ToResourceClaimTemplateSpecPatchPtrOutputWithContext(ctx) +} + +// ResourceClaimTemplateSpecPatchPtrInput is an input type that accepts ResourceClaimTemplateSpecPatchArgs, ResourceClaimTemplateSpecPatchPtr and ResourceClaimTemplateSpecPatchPtrOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateSpecPatchPtrInput` via: +// +// ResourceClaimTemplateSpecPatchArgs{...} +// +// or: +// +// nil +type ResourceClaimTemplateSpecPatchPtrInput interface { + pulumi.Input + + ToResourceClaimTemplateSpecPatchPtrOutput() ResourceClaimTemplateSpecPatchPtrOutput + ToResourceClaimTemplateSpecPatchPtrOutputWithContext(context.Context) ResourceClaimTemplateSpecPatchPtrOutput +} + +type resourceClaimTemplateSpecPatchPtrType ResourceClaimTemplateSpecPatchArgs + +func ResourceClaimTemplateSpecPatchPtr(v *ResourceClaimTemplateSpecPatchArgs) ResourceClaimTemplateSpecPatchPtrInput { + return (*resourceClaimTemplateSpecPatchPtrType)(v) +} + +func (*resourceClaimTemplateSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimTemplateSpecPatch)(nil)).Elem() +} + +func (i *resourceClaimTemplateSpecPatchPtrType) ToResourceClaimTemplateSpecPatchPtrOutput() ResourceClaimTemplateSpecPatchPtrOutput { + return i.ToResourceClaimTemplateSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *resourceClaimTemplateSpecPatchPtrType) ToResourceClaimTemplateSpecPatchPtrOutputWithContext(ctx context.Context) ResourceClaimTemplateSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateSpecPatchPtrOutput) +} + +// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. +type ResourceClaimTemplateSpecPatchOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceClaimTemplateSpecPatch)(nil)).Elem() +} + +func (o ResourceClaimTemplateSpecPatchOutput) ToResourceClaimTemplateSpecPatchOutput() ResourceClaimTemplateSpecPatchOutput { + return o +} + +func (o ResourceClaimTemplateSpecPatchOutput) ToResourceClaimTemplateSpecPatchOutputWithContext(ctx context.Context) ResourceClaimTemplateSpecPatchOutput { + return o +} + +func (o ResourceClaimTemplateSpecPatchOutput) ToResourceClaimTemplateSpecPatchPtrOutput() ResourceClaimTemplateSpecPatchPtrOutput { + return o.ToResourceClaimTemplateSpecPatchPtrOutputWithContext(context.Background()) +} + +func (o ResourceClaimTemplateSpecPatchOutput) ToResourceClaimTemplateSpecPatchPtrOutputWithContext(ctx context.Context) ResourceClaimTemplateSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceClaimTemplateSpecPatch) *ResourceClaimTemplateSpecPatch { + return &v + }).(ResourceClaimTemplateSpecPatchPtrOutput) +} + +// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. +func (o ResourceClaimTemplateSpecPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateSpecPatch) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. +func (o ResourceClaimTemplateSpecPatchOutput) Spec() ResourceClaimSpecPatchPtrOutput { + return o.ApplyT(func(v ResourceClaimTemplateSpecPatch) *ResourceClaimSpecPatch { return v.Spec }).(ResourceClaimSpecPatchPtrOutput) +} + +type ResourceClaimTemplateSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimTemplateSpecPatch)(nil)).Elem() +} + +func (o ResourceClaimTemplateSpecPatchPtrOutput) ToResourceClaimTemplateSpecPatchPtrOutput() ResourceClaimTemplateSpecPatchPtrOutput { + return o +} + +func (o ResourceClaimTemplateSpecPatchPtrOutput) ToResourceClaimTemplateSpecPatchPtrOutputWithContext(ctx context.Context) ResourceClaimTemplateSpecPatchPtrOutput { + return o +} + +func (o ResourceClaimTemplateSpecPatchPtrOutput) Elem() ResourceClaimTemplateSpecPatchOutput { + return o.ApplyT(func(v *ResourceClaimTemplateSpecPatch) ResourceClaimTemplateSpecPatch { + if v != nil { + return *v + } + var ret ResourceClaimTemplateSpecPatch + return ret + }).(ResourceClaimTemplateSpecPatchOutput) +} + +// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. +func (o ResourceClaimTemplateSpecPatchPtrOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimTemplateSpecPatch) *metav1.ObjectMetaPatch { + if v == nil { + return nil + } + return v.Metadata + }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. +func (o ResourceClaimTemplateSpecPatchPtrOutput) Spec() ResourceClaimSpecPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimTemplateSpecPatch) *ResourceClaimSpecPatch { + if v == nil { + return nil + } + return v.Spec + }).(ResourceClaimSpecPatchPtrOutput) +} + +// ResourcePool describes the pool that ResourceSlices belong to. +type ResourcePool struct { + // 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. + // + // Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + Generation int `pulumi:"generation"` + // Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + // + // 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. + Name string `pulumi:"name"` + // ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + // + // Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + ResourceSliceCount int `pulumi:"resourceSliceCount"` +} + +// ResourcePoolInput is an input type that accepts ResourcePoolArgs and ResourcePoolOutput values. +// You can construct a concrete instance of `ResourcePoolInput` via: +// +// ResourcePoolArgs{...} +type ResourcePoolInput interface { + pulumi.Input + + ToResourcePoolOutput() ResourcePoolOutput + ToResourcePoolOutputWithContext(context.Context) ResourcePoolOutput +} + +// ResourcePool describes the pool that ResourceSlices belong to. +type ResourcePoolArgs struct { + // 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. + // + // Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + Generation pulumi.IntInput `pulumi:"generation"` + // Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + // + // 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. + Name pulumi.StringInput `pulumi:"name"` + // ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + // + // Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + ResourceSliceCount pulumi.IntInput `pulumi:"resourceSliceCount"` +} + +func (ResourcePoolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePool)(nil)).Elem() +} + +func (i ResourcePoolArgs) ToResourcePoolOutput() ResourcePoolOutput { + return i.ToResourcePoolOutputWithContext(context.Background()) +} + +func (i ResourcePoolArgs) ToResourcePoolOutputWithContext(ctx context.Context) ResourcePoolOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePoolOutput) +} + +// ResourcePool describes the pool that ResourceSlices belong to. +type ResourcePoolOutput struct{ *pulumi.OutputState } + +func (ResourcePoolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePool)(nil)).Elem() +} + +func (o ResourcePoolOutput) ToResourcePoolOutput() ResourcePoolOutput { + return o +} + +func (o ResourcePoolOutput) ToResourcePoolOutputWithContext(ctx context.Context) ResourcePoolOutput { + return o +} + +// 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. +// +// Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. +func (o ResourcePoolOutput) Generation() pulumi.IntOutput { + return o.ApplyT(func(v ResourcePool) int { return v.Generation }).(pulumi.IntOutput) +} + +// Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. +// +// 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. +func (o ResourcePoolOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePool) string { return v.Name }).(pulumi.StringOutput) +} + +// ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. +// +// Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. +func (o ResourcePoolOutput) ResourceSliceCount() pulumi.IntOutput { + return o.ApplyT(func(v ResourcePool) int { return v.ResourceSliceCount }).(pulumi.IntOutput) +} + +// ResourcePool describes the pool that ResourceSlices belong to. +type ResourcePoolPatch struct { + // 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. + // + // Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + Generation *int `pulumi:"generation"` + // Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + // + // 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. + Name *string `pulumi:"name"` + // ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + // + // Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + ResourceSliceCount *int `pulumi:"resourceSliceCount"` +} + +// ResourcePoolPatchInput is an input type that accepts ResourcePoolPatchArgs and ResourcePoolPatchOutput values. +// You can construct a concrete instance of `ResourcePoolPatchInput` via: +// +// ResourcePoolPatchArgs{...} +type ResourcePoolPatchInput interface { + pulumi.Input + + ToResourcePoolPatchOutput() ResourcePoolPatchOutput + ToResourcePoolPatchOutputWithContext(context.Context) ResourcePoolPatchOutput +} + +// ResourcePool describes the pool that ResourceSlices belong to. +type ResourcePoolPatchArgs struct { + // 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. + // + // Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + Generation pulumi.IntPtrInput `pulumi:"generation"` + // Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + // + // 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. + Name pulumi.StringPtrInput `pulumi:"name"` + // ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + // + // Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + ResourceSliceCount pulumi.IntPtrInput `pulumi:"resourceSliceCount"` +} + +func (ResourcePoolPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePoolPatch)(nil)).Elem() +} + +func (i ResourcePoolPatchArgs) ToResourcePoolPatchOutput() ResourcePoolPatchOutput { + return i.ToResourcePoolPatchOutputWithContext(context.Background()) +} + +func (i ResourcePoolPatchArgs) ToResourcePoolPatchOutputWithContext(ctx context.Context) ResourcePoolPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePoolPatchOutput) +} + +func (i ResourcePoolPatchArgs) ToResourcePoolPatchPtrOutput() ResourcePoolPatchPtrOutput { + return i.ToResourcePoolPatchPtrOutputWithContext(context.Background()) +} + +func (i ResourcePoolPatchArgs) ToResourcePoolPatchPtrOutputWithContext(ctx context.Context) ResourcePoolPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePoolPatchOutput).ToResourcePoolPatchPtrOutputWithContext(ctx) +} + +// ResourcePoolPatchPtrInput is an input type that accepts ResourcePoolPatchArgs, ResourcePoolPatchPtr and ResourcePoolPatchPtrOutput values. +// You can construct a concrete instance of `ResourcePoolPatchPtrInput` via: +// +// ResourcePoolPatchArgs{...} +// +// or: +// +// nil +type ResourcePoolPatchPtrInput interface { + pulumi.Input + + ToResourcePoolPatchPtrOutput() ResourcePoolPatchPtrOutput + ToResourcePoolPatchPtrOutputWithContext(context.Context) ResourcePoolPatchPtrOutput +} + +type resourcePoolPatchPtrType ResourcePoolPatchArgs + +func ResourcePoolPatchPtr(v *ResourcePoolPatchArgs) ResourcePoolPatchPtrInput { + return (*resourcePoolPatchPtrType)(v) +} + +func (*resourcePoolPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePoolPatch)(nil)).Elem() +} + +func (i *resourcePoolPatchPtrType) ToResourcePoolPatchPtrOutput() ResourcePoolPatchPtrOutput { + return i.ToResourcePoolPatchPtrOutputWithContext(context.Background()) +} + +func (i *resourcePoolPatchPtrType) ToResourcePoolPatchPtrOutputWithContext(ctx context.Context) ResourcePoolPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePoolPatchPtrOutput) +} + +// ResourcePool describes the pool that ResourceSlices belong to. +type ResourcePoolPatchOutput struct{ *pulumi.OutputState } + +func (ResourcePoolPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePoolPatch)(nil)).Elem() +} + +func (o ResourcePoolPatchOutput) ToResourcePoolPatchOutput() ResourcePoolPatchOutput { + return o +} + +func (o ResourcePoolPatchOutput) ToResourcePoolPatchOutputWithContext(ctx context.Context) ResourcePoolPatchOutput { + return o +} + +func (o ResourcePoolPatchOutput) ToResourcePoolPatchPtrOutput() ResourcePoolPatchPtrOutput { + return o.ToResourcePoolPatchPtrOutputWithContext(context.Background()) +} + +func (o ResourcePoolPatchOutput) ToResourcePoolPatchPtrOutputWithContext(ctx context.Context) ResourcePoolPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePoolPatch) *ResourcePoolPatch { + return &v + }).(ResourcePoolPatchPtrOutput) +} + +// 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. +// +// Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. +func (o ResourcePoolPatchOutput) Generation() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResourcePoolPatch) *int { return v.Generation }).(pulumi.IntPtrOutput) +} + +// Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. +// +// 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. +func (o ResourcePoolPatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePoolPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. +// +// Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. +func (o ResourcePoolPatchOutput) ResourceSliceCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResourcePoolPatch) *int { return v.ResourceSliceCount }).(pulumi.IntPtrOutput) +} + +type ResourcePoolPatchPtrOutput struct{ *pulumi.OutputState } + +func (ResourcePoolPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePoolPatch)(nil)).Elem() +} + +func (o ResourcePoolPatchPtrOutput) ToResourcePoolPatchPtrOutput() ResourcePoolPatchPtrOutput { + return o +} + +func (o ResourcePoolPatchPtrOutput) ToResourcePoolPatchPtrOutputWithContext(ctx context.Context) ResourcePoolPatchPtrOutput { + return o +} + +func (o ResourcePoolPatchPtrOutput) Elem() ResourcePoolPatchOutput { + return o.ApplyT(func(v *ResourcePoolPatch) ResourcePoolPatch { + if v != nil { + return *v + } + var ret ResourcePoolPatch + return ret + }).(ResourcePoolPatchOutput) +} + +// 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. +// +// Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. +func (o ResourcePoolPatchPtrOutput) Generation() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePoolPatch) *int { + if v == nil { + return nil + } + return v.Generation + }).(pulumi.IntPtrOutput) +} + +// Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. +// +// 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. +func (o ResourcePoolPatchPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePoolPatch) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. +// +// Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. +func (o ResourcePoolPatchPtrOutput) ResourceSliceCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePoolPatch) *int { + if v == nil { + return nil + } + return v.ResourceSliceCount + }).(pulumi.IntPtrOutput) +} + +// 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. +// +// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . +// +// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. +// +// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. +// +// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceSliceType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec ResourceSliceSpec `pulumi:"spec"` +} + +// ResourceSliceTypeInput is an input type that accepts ResourceSliceTypeArgs and ResourceSliceTypeOutput values. +// You can construct a concrete instance of `ResourceSliceTypeInput` via: +// +// ResourceSliceTypeArgs{...} +type ResourceSliceTypeInput interface { + pulumi.Input + + ToResourceSliceTypeOutput() ResourceSliceTypeOutput + ToResourceSliceTypeOutputWithContext(context.Context) ResourceSliceTypeOutput +} + +// 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. +// +// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . +// +// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. +// +// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. +// +// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceSliceTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec ResourceSliceSpecInput `pulumi:"spec"` +} + +func (ResourceSliceTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceType)(nil)).Elem() +} + +func (i ResourceSliceTypeArgs) ToResourceSliceTypeOutput() ResourceSliceTypeOutput { + return i.ToResourceSliceTypeOutputWithContext(context.Background()) +} + +func (i ResourceSliceTypeArgs) ToResourceSliceTypeOutputWithContext(ctx context.Context) ResourceSliceTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceTypeOutput) +} + +// ResourceSliceTypeArrayInput is an input type that accepts ResourceSliceTypeArray and ResourceSliceTypeArrayOutput values. +// You can construct a concrete instance of `ResourceSliceTypeArrayInput` via: +// +// ResourceSliceTypeArray{ ResourceSliceTypeArgs{...} } +type ResourceSliceTypeArrayInput interface { + pulumi.Input + + ToResourceSliceTypeArrayOutput() ResourceSliceTypeArrayOutput + ToResourceSliceTypeArrayOutputWithContext(context.Context) ResourceSliceTypeArrayOutput +} + +type ResourceSliceTypeArray []ResourceSliceTypeInput + +func (ResourceSliceTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceSliceType)(nil)).Elem() +} + +func (i ResourceSliceTypeArray) ToResourceSliceTypeArrayOutput() ResourceSliceTypeArrayOutput { + return i.ToResourceSliceTypeArrayOutputWithContext(context.Background()) +} + +func (i ResourceSliceTypeArray) ToResourceSliceTypeArrayOutputWithContext(ctx context.Context) ResourceSliceTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceTypeArrayOutput) +} + +// 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. +// +// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . +// +// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. +// +// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. +// +// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceSliceTypeOutput struct{ *pulumi.OutputState } + +func (ResourceSliceTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceType)(nil)).Elem() +} + +func (o ResourceSliceTypeOutput) ToResourceSliceTypeOutput() ResourceSliceTypeOutput { + return o +} + +func (o ResourceSliceTypeOutput) ToResourceSliceTypeOutputWithContext(ctx context.Context) ResourceSliceTypeOutput { + return o +} + +// 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 +func (o ResourceSliceTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceSliceTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceSliceTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v ResourceSliceType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Contains the information published by the driver. +// +// Changing the spec automatically increments the metadata.generation number. +func (o ResourceSliceTypeOutput) Spec() ResourceSliceSpecOutput { + return o.ApplyT(func(v ResourceSliceType) ResourceSliceSpec { return v.Spec }).(ResourceSliceSpecOutput) +} + +type ResourceSliceTypeArrayOutput struct{ *pulumi.OutputState } + +func (ResourceSliceTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceSliceType)(nil)).Elem() +} + +func (o ResourceSliceTypeArrayOutput) ToResourceSliceTypeArrayOutput() ResourceSliceTypeArrayOutput { + return o +} + +func (o ResourceSliceTypeArrayOutput) ToResourceSliceTypeArrayOutputWithContext(ctx context.Context) ResourceSliceTypeArrayOutput { + return o +} + +func (o ResourceSliceTypeArrayOutput) Index(i pulumi.IntInput) ResourceSliceTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceSliceType { + return vs[0].([]ResourceSliceType)[vs[1].(int)] + }).(ResourceSliceTypeOutput) +} + +// ResourceSliceList is a collection of ResourceSlices. +type ResourceSliceListType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource ResourceSlices. + Items []ResourceSliceType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// ResourceSliceListTypeInput is an input type that accepts ResourceSliceListTypeArgs and ResourceSliceListTypeOutput values. +// You can construct a concrete instance of `ResourceSliceListTypeInput` via: +// +// ResourceSliceListTypeArgs{...} +type ResourceSliceListTypeInput interface { + pulumi.Input + + ToResourceSliceListTypeOutput() ResourceSliceListTypeOutput + ToResourceSliceListTypeOutputWithContext(context.Context) ResourceSliceListTypeOutput +} + +// ResourceSliceList is a collection of ResourceSlices. +type ResourceSliceListTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Items is the list of resource ResourceSlices. + Items ResourceSliceTypeArrayInput `pulumi:"items"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (ResourceSliceListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceListType)(nil)).Elem() +} + +func (i ResourceSliceListTypeArgs) ToResourceSliceListTypeOutput() ResourceSliceListTypeOutput { + return i.ToResourceSliceListTypeOutputWithContext(context.Background()) +} + +func (i ResourceSliceListTypeArgs) ToResourceSliceListTypeOutputWithContext(ctx context.Context) ResourceSliceListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListTypeOutput) +} + +// ResourceSliceList is a collection of ResourceSlices. +type ResourceSliceListTypeOutput struct{ *pulumi.OutputState } + +func (ResourceSliceListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceListType)(nil)).Elem() +} + +func (o ResourceSliceListTypeOutput) ToResourceSliceListTypeOutput() ResourceSliceListTypeOutput { + return o +} + +func (o ResourceSliceListTypeOutput) ToResourceSliceListTypeOutputWithContext(ctx context.Context) ResourceSliceListTypeOutput { + return o +} + +// 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 +func (o ResourceSliceListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Items is the list of resource ResourceSlices. +func (o ResourceSliceListTypeOutput) Items() ResourceSliceTypeArrayOutput { + return o.ApplyT(func(v ResourceSliceListType) []ResourceSliceType { return v.Items }).(ResourceSliceTypeArrayOutput) +} + +// 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 +func (o ResourceSliceListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata +func (o ResourceSliceListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v ResourceSliceListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// 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. +// +// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . +// +// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. +// +// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. +// +// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceSlicePatchType struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec *ResourceSliceSpecPatch `pulumi:"spec"` +} + +// ResourceSlicePatchTypeInput is an input type that accepts ResourceSlicePatchTypeArgs and ResourceSlicePatchTypeOutput values. +// You can construct a concrete instance of `ResourceSlicePatchTypeInput` via: +// +// ResourceSlicePatchTypeArgs{...} +type ResourceSlicePatchTypeInput interface { + pulumi.Input + + ToResourceSlicePatchTypeOutput() ResourceSlicePatchTypeOutput + ToResourceSlicePatchTypeOutputWithContext(context.Context) ResourceSlicePatchTypeOutput +} + +// 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. +// +// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . +// +// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. +// +// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. +// +// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceSlicePatchTypeArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec ResourceSliceSpecPatchPtrInput `pulumi:"spec"` +} + +func (ResourceSlicePatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSlicePatchType)(nil)).Elem() +} + +func (i ResourceSlicePatchTypeArgs) ToResourceSlicePatchTypeOutput() ResourceSlicePatchTypeOutput { + return i.ToResourceSlicePatchTypeOutputWithContext(context.Background()) +} + +func (i ResourceSlicePatchTypeArgs) ToResourceSlicePatchTypeOutputWithContext(ctx context.Context) ResourceSlicePatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSlicePatchTypeOutput) +} + +// 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. +// +// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . +// +// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. +// +// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. +// +// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceSlicePatchTypeOutput struct{ *pulumi.OutputState } + +func (ResourceSlicePatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSlicePatchType)(nil)).Elem() +} + +func (o ResourceSlicePatchTypeOutput) ToResourceSlicePatchTypeOutput() ResourceSlicePatchTypeOutput { + return o +} + +func (o ResourceSlicePatchTypeOutput) ToResourceSlicePatchTypeOutputWithContext(ctx context.Context) ResourceSlicePatchTypeOutput { + return o +} + +// 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 +func (o ResourceSlicePatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSlicePatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceSlicePatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSlicePatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceSlicePatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v ResourceSlicePatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Contains the information published by the driver. +// +// Changing the spec automatically increments the metadata.generation number. +func (o ResourceSlicePatchTypeOutput) Spec() ResourceSliceSpecPatchPtrOutput { + return o.ApplyT(func(v ResourceSlicePatchType) *ResourceSliceSpecPatch { return v.Spec }).(ResourceSliceSpecPatchPtrOutput) +} + +// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. +type ResourceSliceSpec struct { + // AllNodes indicates that all nodes have access to the resources in the pool. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. + AllNodes *bool `pulumi:"allNodes"` + // Devices lists some or all of the devices in this pool. + // + // Must not have more than 128 entries. + Devices []Device `pulumi:"devices"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + Driver string `pulumi:"driver"` + // 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. + // + // 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. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + NodeName *string `pulumi:"nodeName"` + // NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + // + // Must use exactly one term. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. + NodeSelector *corev1.NodeSelector `pulumi:"nodeSelector"` + // Pool describes the pool that this ResourceSlice belongs to. + Pool ResourcePool `pulumi:"pool"` +} + +// ResourceSliceSpecInput is an input type that accepts ResourceSliceSpecArgs and ResourceSliceSpecOutput values. +// You can construct a concrete instance of `ResourceSliceSpecInput` via: +// +// ResourceSliceSpecArgs{...} +type ResourceSliceSpecInput interface { + pulumi.Input + + ToResourceSliceSpecOutput() ResourceSliceSpecOutput + ToResourceSliceSpecOutputWithContext(context.Context) ResourceSliceSpecOutput +} + +// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. +type ResourceSliceSpecArgs struct { + // AllNodes indicates that all nodes have access to the resources in the pool. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. + AllNodes pulumi.BoolPtrInput `pulumi:"allNodes"` + // Devices lists some or all of the devices in this pool. + // + // Must not have more than 128 entries. + Devices DeviceArrayInput `pulumi:"devices"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + Driver pulumi.StringInput `pulumi:"driver"` + // 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. + // + // 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. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + NodeName pulumi.StringPtrInput `pulumi:"nodeName"` + // NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + // + // Must use exactly one term. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. + NodeSelector corev1.NodeSelectorPtrInput `pulumi:"nodeSelector"` + // Pool describes the pool that this ResourceSlice belongs to. + Pool ResourcePoolInput `pulumi:"pool"` +} + +func (ResourceSliceSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceSpec)(nil)).Elem() +} + +func (i ResourceSliceSpecArgs) ToResourceSliceSpecOutput() ResourceSliceSpecOutput { + return i.ToResourceSliceSpecOutputWithContext(context.Background()) +} + +func (i ResourceSliceSpecArgs) ToResourceSliceSpecOutputWithContext(ctx context.Context) ResourceSliceSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceSpecOutput) +} + +// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. +type ResourceSliceSpecOutput struct{ *pulumi.OutputState } + +func (ResourceSliceSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceSpec)(nil)).Elem() +} + +func (o ResourceSliceSpecOutput) ToResourceSliceSpecOutput() ResourceSliceSpecOutput { + return o +} + +func (o ResourceSliceSpecOutput) ToResourceSliceSpecOutputWithContext(ctx context.Context) ResourceSliceSpecOutput { + return o +} + +// AllNodes indicates that all nodes have access to the resources in the pool. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. +func (o ResourceSliceSpecOutput) AllNodes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ResourceSliceSpec) *bool { return v.AllNodes }).(pulumi.BoolPtrOutput) +} + +// Devices lists some or all of the devices in this pool. +// +// Must not have more than 128 entries. +func (o ResourceSliceSpecOutput) Devices() DeviceArrayOutput { + return o.ApplyT(func(v ResourceSliceSpec) []Device { return v.Devices }).(DeviceArrayOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. +func (o ResourceSliceSpecOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v ResourceSliceSpec) string { return v.Driver }).(pulumi.StringOutput) +} + +// 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. +// +// 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. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. +func (o ResourceSliceSpecOutput) NodeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceSpec) *string { return v.NodeName }).(pulumi.StringPtrOutput) +} + +// NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. +// +// Must use exactly one term. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. +func (o ResourceSliceSpecOutput) NodeSelector() corev1.NodeSelectorPtrOutput { + return o.ApplyT(func(v ResourceSliceSpec) *corev1.NodeSelector { return v.NodeSelector }).(corev1.NodeSelectorPtrOutput) +} + +// Pool describes the pool that this ResourceSlice belongs to. +func (o ResourceSliceSpecOutput) Pool() ResourcePoolOutput { + return o.ApplyT(func(v ResourceSliceSpec) ResourcePool { return v.Pool }).(ResourcePoolOutput) +} + +// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. +type ResourceSliceSpecPatch struct { + // AllNodes indicates that all nodes have access to the resources in the pool. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. + AllNodes *bool `pulumi:"allNodes"` + // Devices lists some or all of the devices in this pool. + // + // Must not have more than 128 entries. + Devices []DevicePatch `pulumi:"devices"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + Driver *string `pulumi:"driver"` + // 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. + // + // 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. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + NodeName *string `pulumi:"nodeName"` + // NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + // + // Must use exactly one term. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. + NodeSelector *corev1.NodeSelectorPatch `pulumi:"nodeSelector"` + // Pool describes the pool that this ResourceSlice belongs to. + Pool *ResourcePoolPatch `pulumi:"pool"` +} + +// ResourceSliceSpecPatchInput is an input type that accepts ResourceSliceSpecPatchArgs and ResourceSliceSpecPatchOutput values. +// You can construct a concrete instance of `ResourceSliceSpecPatchInput` via: +// +// ResourceSliceSpecPatchArgs{...} +type ResourceSliceSpecPatchInput interface { + pulumi.Input + + ToResourceSliceSpecPatchOutput() ResourceSliceSpecPatchOutput + ToResourceSliceSpecPatchOutputWithContext(context.Context) ResourceSliceSpecPatchOutput +} + +// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. +type ResourceSliceSpecPatchArgs struct { + // AllNodes indicates that all nodes have access to the resources in the pool. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. + AllNodes pulumi.BoolPtrInput `pulumi:"allNodes"` + // Devices lists some or all of the devices in this pool. + // + // Must not have more than 128 entries. + Devices DevicePatchArrayInput `pulumi:"devices"` + // 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. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + Driver pulumi.StringPtrInput `pulumi:"driver"` + // 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. + // + // 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. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + NodeName pulumi.StringPtrInput `pulumi:"nodeName"` + // NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + // + // Must use exactly one term. + // + // Exactly one of NodeName, NodeSelector and AllNodes must be set. + NodeSelector corev1.NodeSelectorPatchPtrInput `pulumi:"nodeSelector"` + // Pool describes the pool that this ResourceSlice belongs to. + Pool ResourcePoolPatchPtrInput `pulumi:"pool"` +} + +func (ResourceSliceSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceSpecPatch)(nil)).Elem() +} + +func (i ResourceSliceSpecPatchArgs) ToResourceSliceSpecPatchOutput() ResourceSliceSpecPatchOutput { + return i.ToResourceSliceSpecPatchOutputWithContext(context.Background()) +} + +func (i ResourceSliceSpecPatchArgs) ToResourceSliceSpecPatchOutputWithContext(ctx context.Context) ResourceSliceSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceSpecPatchOutput) +} + +func (i ResourceSliceSpecPatchArgs) ToResourceSliceSpecPatchPtrOutput() ResourceSliceSpecPatchPtrOutput { + return i.ToResourceSliceSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i ResourceSliceSpecPatchArgs) ToResourceSliceSpecPatchPtrOutputWithContext(ctx context.Context) ResourceSliceSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceSpecPatchOutput).ToResourceSliceSpecPatchPtrOutputWithContext(ctx) +} + +// ResourceSliceSpecPatchPtrInput is an input type that accepts ResourceSliceSpecPatchArgs, ResourceSliceSpecPatchPtr and ResourceSliceSpecPatchPtrOutput values. +// You can construct a concrete instance of `ResourceSliceSpecPatchPtrInput` via: +// +// ResourceSliceSpecPatchArgs{...} +// +// or: +// +// nil +type ResourceSliceSpecPatchPtrInput interface { + pulumi.Input + + ToResourceSliceSpecPatchPtrOutput() ResourceSliceSpecPatchPtrOutput + ToResourceSliceSpecPatchPtrOutputWithContext(context.Context) ResourceSliceSpecPatchPtrOutput +} + +type resourceSliceSpecPatchPtrType ResourceSliceSpecPatchArgs + +func ResourceSliceSpecPatchPtr(v *ResourceSliceSpecPatchArgs) ResourceSliceSpecPatchPtrInput { + return (*resourceSliceSpecPatchPtrType)(v) +} + +func (*resourceSliceSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSliceSpecPatch)(nil)).Elem() +} + +func (i *resourceSliceSpecPatchPtrType) ToResourceSliceSpecPatchPtrOutput() ResourceSliceSpecPatchPtrOutput { + return i.ToResourceSliceSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *resourceSliceSpecPatchPtrType) ToResourceSliceSpecPatchPtrOutputWithContext(ctx context.Context) ResourceSliceSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceSpecPatchPtrOutput) +} + +// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. +type ResourceSliceSpecPatchOutput struct{ *pulumi.OutputState } + +func (ResourceSliceSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceSliceSpecPatch)(nil)).Elem() +} + +func (o ResourceSliceSpecPatchOutput) ToResourceSliceSpecPatchOutput() ResourceSliceSpecPatchOutput { + return o +} + +func (o ResourceSliceSpecPatchOutput) ToResourceSliceSpecPatchOutputWithContext(ctx context.Context) ResourceSliceSpecPatchOutput { + return o +} + +func (o ResourceSliceSpecPatchOutput) ToResourceSliceSpecPatchPtrOutput() ResourceSliceSpecPatchPtrOutput { + return o.ToResourceSliceSpecPatchPtrOutputWithContext(context.Background()) +} + +func (o ResourceSliceSpecPatchOutput) ToResourceSliceSpecPatchPtrOutputWithContext(ctx context.Context) ResourceSliceSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceSliceSpecPatch) *ResourceSliceSpecPatch { + return &v + }).(ResourceSliceSpecPatchPtrOutput) +} + +// AllNodes indicates that all nodes have access to the resources in the pool. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. +func (o ResourceSliceSpecPatchOutput) AllNodes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ResourceSliceSpecPatch) *bool { return v.AllNodes }).(pulumi.BoolPtrOutput) +} + +// Devices lists some or all of the devices in this pool. +// +// Must not have more than 128 entries. +func (o ResourceSliceSpecPatchOutput) Devices() DevicePatchArrayOutput { + return o.ApplyT(func(v ResourceSliceSpecPatch) []DevicePatch { return v.Devices }).(DevicePatchArrayOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. +func (o ResourceSliceSpecPatchOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceSpecPatch) *string { return v.Driver }).(pulumi.StringPtrOutput) +} + +// 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. +// +// 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. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. +func (o ResourceSliceSpecPatchOutput) NodeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceSliceSpecPatch) *string { return v.NodeName }).(pulumi.StringPtrOutput) +} + +// NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. +// +// Must use exactly one term. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. +func (o ResourceSliceSpecPatchOutput) NodeSelector() corev1.NodeSelectorPatchPtrOutput { + return o.ApplyT(func(v ResourceSliceSpecPatch) *corev1.NodeSelectorPatch { return v.NodeSelector }).(corev1.NodeSelectorPatchPtrOutput) +} + +// Pool describes the pool that this ResourceSlice belongs to. +func (o ResourceSliceSpecPatchOutput) Pool() ResourcePoolPatchPtrOutput { + return o.ApplyT(func(v ResourceSliceSpecPatch) *ResourcePoolPatch { return v.Pool }).(ResourcePoolPatchPtrOutput) +} + +type ResourceSliceSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (ResourceSliceSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSliceSpecPatch)(nil)).Elem() +} + +func (o ResourceSliceSpecPatchPtrOutput) ToResourceSliceSpecPatchPtrOutput() ResourceSliceSpecPatchPtrOutput { + return o +} + +func (o ResourceSliceSpecPatchPtrOutput) ToResourceSliceSpecPatchPtrOutputWithContext(ctx context.Context) ResourceSliceSpecPatchPtrOutput { + return o +} + +func (o ResourceSliceSpecPatchPtrOutput) Elem() ResourceSliceSpecPatchOutput { + return o.ApplyT(func(v *ResourceSliceSpecPatch) ResourceSliceSpecPatch { + if v != nil { + return *v + } + var ret ResourceSliceSpecPatch + return ret + }).(ResourceSliceSpecPatchOutput) +} + +// AllNodes indicates that all nodes have access to the resources in the pool. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. +func (o ResourceSliceSpecPatchPtrOutput) AllNodes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ResourceSliceSpecPatch) *bool { + if v == nil { + return nil + } + return v.AllNodes + }).(pulumi.BoolPtrOutput) +} + +// Devices lists some or all of the devices in this pool. +// +// Must not have more than 128 entries. +func (o ResourceSliceSpecPatchPtrOutput) Devices() DevicePatchArrayOutput { + return o.ApplyT(func(v *ResourceSliceSpecPatch) []DevicePatch { + if v == nil { + return nil + } + return v.Devices + }).(DevicePatchArrayOutput) +} + +// 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. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. +func (o ResourceSliceSpecPatchPtrOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceSliceSpecPatch) *string { + if v == nil { + return nil + } + return v.Driver + }).(pulumi.StringPtrOutput) +} + +// 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. +// +// 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. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. +func (o ResourceSliceSpecPatchPtrOutput) NodeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceSliceSpecPatch) *string { + if v == nil { + return nil + } + return v.NodeName + }).(pulumi.StringPtrOutput) +} + +// NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. +// +// Must use exactly one term. +// +// Exactly one of NodeName, NodeSelector and AllNodes must be set. +func (o ResourceSliceSpecPatchPtrOutput) NodeSelector() corev1.NodeSelectorPatchPtrOutput { + return o.ApplyT(func(v *ResourceSliceSpecPatch) *corev1.NodeSelectorPatch { + if v == nil { + return nil + } + return v.NodeSelector + }).(corev1.NodeSelectorPatchPtrOutput) +} + +// Pool describes the pool that this ResourceSlice belongs to. +func (o ResourceSliceSpecPatchPtrOutput) Pool() ResourcePoolPatchPtrOutput { + return o.ApplyT(func(v *ResourceSliceSpecPatch) *ResourcePoolPatch { + if v == nil { + return nil + } + return v.Pool + }).(ResourcePoolPatchPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AllocatedDeviceStatusInput)(nil)).Elem(), AllocatedDeviceStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocatedDeviceStatusArrayInput)(nil)).Elem(), AllocatedDeviceStatusArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocatedDeviceStatusPatchInput)(nil)).Elem(), AllocatedDeviceStatusPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocatedDeviceStatusPatchArrayInput)(nil)).Elem(), AllocatedDeviceStatusPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocationResultInput)(nil)).Elem(), AllocationResultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocationResultPtrInput)(nil)).Elem(), AllocationResultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocationResultPatchInput)(nil)).Elem(), AllocationResultPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AllocationResultPatchPtrInput)(nil)).Elem(), AllocationResultPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BasicDeviceInput)(nil)).Elem(), BasicDeviceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BasicDevicePtrInput)(nil)).Elem(), BasicDeviceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BasicDevicePatchInput)(nil)).Elem(), BasicDevicePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BasicDevicePatchPtrInput)(nil)).Elem(), BasicDevicePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CELDeviceSelectorInput)(nil)).Elem(), CELDeviceSelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CELDeviceSelectorPtrInput)(nil)).Elem(), CELDeviceSelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CELDeviceSelectorPatchInput)(nil)).Elem(), CELDeviceSelectorPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CELDeviceSelectorPatchPtrInput)(nil)).Elem(), CELDeviceSelectorPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceInput)(nil)).Elem(), DeviceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceArrayInput)(nil)).Elem(), DeviceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAllocationConfigurationInput)(nil)).Elem(), DeviceAllocationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAllocationConfigurationArrayInput)(nil)).Elem(), DeviceAllocationConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAllocationConfigurationPatchInput)(nil)).Elem(), DeviceAllocationConfigurationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAllocationConfigurationPatchArrayInput)(nil)).Elem(), DeviceAllocationConfigurationPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAllocationResultInput)(nil)).Elem(), DeviceAllocationResultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAllocationResultPtrInput)(nil)).Elem(), DeviceAllocationResultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAllocationResultPatchInput)(nil)).Elem(), DeviceAllocationResultPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAllocationResultPatchPtrInput)(nil)).Elem(), DeviceAllocationResultPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAttributeInput)(nil)).Elem(), DeviceAttributeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAttributeMapInput)(nil)).Elem(), DeviceAttributeMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceAttributePatchInput)(nil)).Elem(), DeviceAttributePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceCapacityInput)(nil)).Elem(), DeviceCapacityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceCapacityMapInput)(nil)).Elem(), DeviceCapacityMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceCapacityPatchInput)(nil)).Elem(), DeviceCapacityPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClaimInput)(nil)).Elem(), DeviceClaimArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClaimPtrInput)(nil)).Elem(), DeviceClaimArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClaimConfigurationInput)(nil)).Elem(), DeviceClaimConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClaimConfigurationArrayInput)(nil)).Elem(), DeviceClaimConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClaimConfigurationPatchInput)(nil)).Elem(), DeviceClaimConfigurationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClaimConfigurationPatchArrayInput)(nil)).Elem(), DeviceClaimConfigurationPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClaimPatchInput)(nil)).Elem(), DeviceClaimPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClaimPatchPtrInput)(nil)).Elem(), DeviceClaimPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassTypeInput)(nil)).Elem(), DeviceClassTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassTypeArrayInput)(nil)).Elem(), DeviceClassTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassConfigurationInput)(nil)).Elem(), DeviceClassConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassConfigurationArrayInput)(nil)).Elem(), DeviceClassConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassConfigurationPatchInput)(nil)).Elem(), DeviceClassConfigurationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassConfigurationPatchArrayInput)(nil)).Elem(), DeviceClassConfigurationPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassListTypeInput)(nil)).Elem(), DeviceClassListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassPatchTypeInput)(nil)).Elem(), DeviceClassPatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassSpecInput)(nil)).Elem(), DeviceClassSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassSpecPatchInput)(nil)).Elem(), DeviceClassSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassSpecPatchPtrInput)(nil)).Elem(), DeviceClassSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceConstraintInput)(nil)).Elem(), DeviceConstraintArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceConstraintArrayInput)(nil)).Elem(), DeviceConstraintArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceConstraintPatchInput)(nil)).Elem(), DeviceConstraintPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceConstraintPatchArrayInput)(nil)).Elem(), DeviceConstraintPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DevicePatchInput)(nil)).Elem(), DevicePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DevicePatchArrayInput)(nil)).Elem(), DevicePatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceRequestInput)(nil)).Elem(), DeviceRequestArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceRequestArrayInput)(nil)).Elem(), DeviceRequestArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceRequestAllocationResultInput)(nil)).Elem(), DeviceRequestAllocationResultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceRequestAllocationResultArrayInput)(nil)).Elem(), DeviceRequestAllocationResultArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceRequestAllocationResultPatchInput)(nil)).Elem(), DeviceRequestAllocationResultPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceRequestAllocationResultPatchArrayInput)(nil)).Elem(), DeviceRequestAllocationResultPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceRequestPatchInput)(nil)).Elem(), DeviceRequestPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceRequestPatchArrayInput)(nil)).Elem(), DeviceRequestPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceSelectorInput)(nil)).Elem(), DeviceSelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceSelectorArrayInput)(nil)).Elem(), DeviceSelectorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceSelectorPatchInput)(nil)).Elem(), DeviceSelectorPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceSelectorPatchArrayInput)(nil)).Elem(), DeviceSelectorPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkDeviceDataInput)(nil)).Elem(), NetworkDeviceDataArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkDeviceDataPtrInput)(nil)).Elem(), NetworkDeviceDataArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkDeviceDataPatchInput)(nil)).Elem(), NetworkDeviceDataPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkDeviceDataPatchPtrInput)(nil)).Elem(), NetworkDeviceDataPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OpaqueDeviceConfigurationInput)(nil)).Elem(), OpaqueDeviceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OpaqueDeviceConfigurationPtrInput)(nil)).Elem(), OpaqueDeviceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OpaqueDeviceConfigurationPatchInput)(nil)).Elem(), OpaqueDeviceConfigurationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OpaqueDeviceConfigurationPatchPtrInput)(nil)).Elem(), OpaqueDeviceConfigurationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTypeInput)(nil)).Elem(), ResourceClaimTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTypeArrayInput)(nil)).Elem(), ResourceClaimTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimConsumerReferenceInput)(nil)).Elem(), ResourceClaimConsumerReferenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimConsumerReferenceArrayInput)(nil)).Elem(), ResourceClaimConsumerReferenceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimConsumerReferencePatchInput)(nil)).Elem(), ResourceClaimConsumerReferencePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimConsumerReferencePatchArrayInput)(nil)).Elem(), ResourceClaimConsumerReferencePatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimListTypeInput)(nil)).Elem(), ResourceClaimListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimPatchTypeInput)(nil)).Elem(), ResourceClaimPatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimSpecInput)(nil)).Elem(), ResourceClaimSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimSpecPatchInput)(nil)).Elem(), ResourceClaimSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimSpecPatchPtrInput)(nil)).Elem(), ResourceClaimSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimStatusInput)(nil)).Elem(), ResourceClaimStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimStatusPtrInput)(nil)).Elem(), ResourceClaimStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimStatusPatchInput)(nil)).Elem(), ResourceClaimStatusPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimStatusPatchPtrInput)(nil)).Elem(), ResourceClaimStatusPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateTypeInput)(nil)).Elem(), ResourceClaimTemplateTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateTypeArrayInput)(nil)).Elem(), ResourceClaimTemplateTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateListTypeInput)(nil)).Elem(), ResourceClaimTemplateListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplatePatchTypeInput)(nil)).Elem(), ResourceClaimTemplatePatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateSpecInput)(nil)).Elem(), ResourceClaimTemplateSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateSpecPatchInput)(nil)).Elem(), ResourceClaimTemplateSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateSpecPatchPtrInput)(nil)).Elem(), ResourceClaimTemplateSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourcePoolInput)(nil)).Elem(), ResourcePoolArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourcePoolPatchInput)(nil)).Elem(), ResourcePoolPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourcePoolPatchPtrInput)(nil)).Elem(), ResourcePoolPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceTypeInput)(nil)).Elem(), ResourceSliceTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceTypeArrayInput)(nil)).Elem(), ResourceSliceTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListTypeInput)(nil)).Elem(), ResourceSliceListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSlicePatchTypeInput)(nil)).Elem(), ResourceSlicePatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceSpecInput)(nil)).Elem(), ResourceSliceSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceSpecPatchInput)(nil)).Elem(), ResourceSliceSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceSpecPatchPtrInput)(nil)).Elem(), ResourceSliceSpecPatchArgs{}) + pulumi.RegisterOutputType(AllocatedDeviceStatusOutput{}) + pulumi.RegisterOutputType(AllocatedDeviceStatusArrayOutput{}) + pulumi.RegisterOutputType(AllocatedDeviceStatusPatchOutput{}) + pulumi.RegisterOutputType(AllocatedDeviceStatusPatchArrayOutput{}) + pulumi.RegisterOutputType(AllocationResultOutput{}) + pulumi.RegisterOutputType(AllocationResultPtrOutput{}) + pulumi.RegisterOutputType(AllocationResultPatchOutput{}) + pulumi.RegisterOutputType(AllocationResultPatchPtrOutput{}) + pulumi.RegisterOutputType(BasicDeviceOutput{}) + pulumi.RegisterOutputType(BasicDevicePtrOutput{}) + pulumi.RegisterOutputType(BasicDevicePatchOutput{}) + pulumi.RegisterOutputType(BasicDevicePatchPtrOutput{}) + pulumi.RegisterOutputType(CELDeviceSelectorOutput{}) + pulumi.RegisterOutputType(CELDeviceSelectorPtrOutput{}) + pulumi.RegisterOutputType(CELDeviceSelectorPatchOutput{}) + pulumi.RegisterOutputType(CELDeviceSelectorPatchPtrOutput{}) + pulumi.RegisterOutputType(DeviceOutput{}) + pulumi.RegisterOutputType(DeviceArrayOutput{}) + pulumi.RegisterOutputType(DeviceAllocationConfigurationOutput{}) + pulumi.RegisterOutputType(DeviceAllocationConfigurationArrayOutput{}) + pulumi.RegisterOutputType(DeviceAllocationConfigurationPatchOutput{}) + pulumi.RegisterOutputType(DeviceAllocationConfigurationPatchArrayOutput{}) + pulumi.RegisterOutputType(DeviceAllocationResultOutput{}) + pulumi.RegisterOutputType(DeviceAllocationResultPtrOutput{}) + pulumi.RegisterOutputType(DeviceAllocationResultPatchOutput{}) + pulumi.RegisterOutputType(DeviceAllocationResultPatchPtrOutput{}) + pulumi.RegisterOutputType(DeviceAttributeOutput{}) + pulumi.RegisterOutputType(DeviceAttributeMapOutput{}) + pulumi.RegisterOutputType(DeviceAttributePatchOutput{}) + pulumi.RegisterOutputType(DeviceCapacityOutput{}) + pulumi.RegisterOutputType(DeviceCapacityMapOutput{}) + pulumi.RegisterOutputType(DeviceCapacityPatchOutput{}) + pulumi.RegisterOutputType(DeviceClaimOutput{}) + pulumi.RegisterOutputType(DeviceClaimPtrOutput{}) + pulumi.RegisterOutputType(DeviceClaimConfigurationOutput{}) + pulumi.RegisterOutputType(DeviceClaimConfigurationArrayOutput{}) + pulumi.RegisterOutputType(DeviceClaimConfigurationPatchOutput{}) + pulumi.RegisterOutputType(DeviceClaimConfigurationPatchArrayOutput{}) + pulumi.RegisterOutputType(DeviceClaimPatchOutput{}) + pulumi.RegisterOutputType(DeviceClaimPatchPtrOutput{}) + pulumi.RegisterOutputType(DeviceClassTypeOutput{}) + pulumi.RegisterOutputType(DeviceClassTypeArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassConfigurationOutput{}) + pulumi.RegisterOutputType(DeviceClassConfigurationArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassConfigurationPatchOutput{}) + pulumi.RegisterOutputType(DeviceClassConfigurationPatchArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassListTypeOutput{}) + pulumi.RegisterOutputType(DeviceClassPatchTypeOutput{}) + pulumi.RegisterOutputType(DeviceClassSpecOutput{}) + pulumi.RegisterOutputType(DeviceClassSpecPatchOutput{}) + pulumi.RegisterOutputType(DeviceClassSpecPatchPtrOutput{}) + pulumi.RegisterOutputType(DeviceConstraintOutput{}) + pulumi.RegisterOutputType(DeviceConstraintArrayOutput{}) + pulumi.RegisterOutputType(DeviceConstraintPatchOutput{}) + pulumi.RegisterOutputType(DeviceConstraintPatchArrayOutput{}) + pulumi.RegisterOutputType(DevicePatchOutput{}) + pulumi.RegisterOutputType(DevicePatchArrayOutput{}) + pulumi.RegisterOutputType(DeviceRequestOutput{}) + pulumi.RegisterOutputType(DeviceRequestArrayOutput{}) + pulumi.RegisterOutputType(DeviceRequestAllocationResultOutput{}) + pulumi.RegisterOutputType(DeviceRequestAllocationResultArrayOutput{}) + pulumi.RegisterOutputType(DeviceRequestAllocationResultPatchOutput{}) + pulumi.RegisterOutputType(DeviceRequestAllocationResultPatchArrayOutput{}) + pulumi.RegisterOutputType(DeviceRequestPatchOutput{}) + pulumi.RegisterOutputType(DeviceRequestPatchArrayOutput{}) + pulumi.RegisterOutputType(DeviceSelectorOutput{}) + pulumi.RegisterOutputType(DeviceSelectorArrayOutput{}) + pulumi.RegisterOutputType(DeviceSelectorPatchOutput{}) + pulumi.RegisterOutputType(DeviceSelectorPatchArrayOutput{}) + pulumi.RegisterOutputType(NetworkDeviceDataOutput{}) + pulumi.RegisterOutputType(NetworkDeviceDataPtrOutput{}) + pulumi.RegisterOutputType(NetworkDeviceDataPatchOutput{}) + pulumi.RegisterOutputType(NetworkDeviceDataPatchPtrOutput{}) + pulumi.RegisterOutputType(OpaqueDeviceConfigurationOutput{}) + pulumi.RegisterOutputType(OpaqueDeviceConfigurationPtrOutput{}) + pulumi.RegisterOutputType(OpaqueDeviceConfigurationPatchOutput{}) + pulumi.RegisterOutputType(OpaqueDeviceConfigurationPatchPtrOutput{}) + pulumi.RegisterOutputType(ResourceClaimTypeOutput{}) + pulumi.RegisterOutputType(ResourceClaimTypeArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimConsumerReferenceOutput{}) + pulumi.RegisterOutputType(ResourceClaimConsumerReferenceArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimConsumerReferencePatchOutput{}) + pulumi.RegisterOutputType(ResourceClaimConsumerReferencePatchArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimListTypeOutput{}) + pulumi.RegisterOutputType(ResourceClaimPatchTypeOutput{}) + pulumi.RegisterOutputType(ResourceClaimSpecOutput{}) + pulumi.RegisterOutputType(ResourceClaimSpecPatchOutput{}) + pulumi.RegisterOutputType(ResourceClaimSpecPatchPtrOutput{}) + pulumi.RegisterOutputType(ResourceClaimStatusOutput{}) + pulumi.RegisterOutputType(ResourceClaimStatusPtrOutput{}) + pulumi.RegisterOutputType(ResourceClaimStatusPatchOutput{}) + pulumi.RegisterOutputType(ResourceClaimStatusPatchPtrOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateTypeOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateTypeArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateListTypeOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplatePatchTypeOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateSpecOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateSpecPatchOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateSpecPatchPtrOutput{}) + pulumi.RegisterOutputType(ResourcePoolOutput{}) + pulumi.RegisterOutputType(ResourcePoolPatchOutput{}) + pulumi.RegisterOutputType(ResourcePoolPatchPtrOutput{}) + pulumi.RegisterOutputType(ResourceSliceTypeOutput{}) + pulumi.RegisterOutputType(ResourceSliceTypeArrayOutput{}) + pulumi.RegisterOutputType(ResourceSliceListTypeOutput{}) + pulumi.RegisterOutputType(ResourceSlicePatchTypeOutput{}) + pulumi.RegisterOutputType(ResourceSliceSpecOutput{}) + pulumi.RegisterOutputType(ResourceSliceSpecPatchOutput{}) + pulumi.RegisterOutputType(ResourceSliceSpecPatchPtrOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceClaim.go b/sdk/go/kubernetes/resource/v1beta1/resourceClaim.go new file mode 100644 index 0000000000..2f1d3e29e1 --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceClaim.go @@ -0,0 +1,272 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaim struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec ResourceClaimSpecOutput `pulumi:"spec"` + // Status describes whether the claim is ready to use and what has been allocated. + Status ResourceClaimStatusPtrOutput `pulumi:"status"` +} + +// NewResourceClaim registers a new resource with the given unique name, arguments, and options. +func NewResourceClaim(ctx *pulumi.Context, + name string, args *ResourceClaimArgs, opts ...pulumi.ResourceOption) (*ResourceClaim, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Spec == nil { + return nil, errors.New("invalid value for required argument 'Spec'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceClaim") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha1:ResourceClaim"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceClaim"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaim"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceClaim + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceClaim gets an existing ResourceClaim resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceClaim(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceClaimState, opts ...pulumi.ResourceOption) (*ResourceClaim, error) { + var resource ResourceClaim + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceClaim resources. +type resourceClaimState struct { +} + +type ResourceClaimState struct { +} + +func (ResourceClaimState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimState)(nil)).Elem() +} + +type resourceClaimArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec ResourceClaimSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a ResourceClaim resource. +type ResourceClaimArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec ResourceClaimSpecInput +} + +func (ResourceClaimArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimArgs)(nil)).Elem() +} + +type ResourceClaimInput interface { + pulumi.Input + + ToResourceClaimOutput() ResourceClaimOutput + ToResourceClaimOutputWithContext(ctx context.Context) ResourceClaimOutput +} + +func (*ResourceClaim) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaim)(nil)).Elem() +} + +func (i *ResourceClaim) ToResourceClaimOutput() ResourceClaimOutput { + return i.ToResourceClaimOutputWithContext(context.Background()) +} + +func (i *ResourceClaim) ToResourceClaimOutputWithContext(ctx context.Context) ResourceClaimOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimOutput) +} + +// ResourceClaimArrayInput is an input type that accepts ResourceClaimArray and ResourceClaimArrayOutput values. +// You can construct a concrete instance of `ResourceClaimArrayInput` via: +// +// ResourceClaimArray{ ResourceClaimArgs{...} } +type ResourceClaimArrayInput interface { + pulumi.Input + + ToResourceClaimArrayOutput() ResourceClaimArrayOutput + ToResourceClaimArrayOutputWithContext(context.Context) ResourceClaimArrayOutput +} + +type ResourceClaimArray []ResourceClaimInput + +func (ResourceClaimArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaim)(nil)).Elem() +} + +func (i ResourceClaimArray) ToResourceClaimArrayOutput() ResourceClaimArrayOutput { + return i.ToResourceClaimArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimArray) ToResourceClaimArrayOutputWithContext(ctx context.Context) ResourceClaimArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimArrayOutput) +} + +// ResourceClaimMapInput is an input type that accepts ResourceClaimMap and ResourceClaimMapOutput values. +// You can construct a concrete instance of `ResourceClaimMapInput` via: +// +// ResourceClaimMap{ "key": ResourceClaimArgs{...} } +type ResourceClaimMapInput interface { + pulumi.Input + + ToResourceClaimMapOutput() ResourceClaimMapOutput + ToResourceClaimMapOutputWithContext(context.Context) ResourceClaimMapOutput +} + +type ResourceClaimMap map[string]ResourceClaimInput + +func (ResourceClaimMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaim)(nil)).Elem() +} + +func (i ResourceClaimMap) ToResourceClaimMapOutput() ResourceClaimMapOutput { + return i.ToResourceClaimMapOutputWithContext(context.Background()) +} + +func (i ResourceClaimMap) ToResourceClaimMapOutputWithContext(ctx context.Context) ResourceClaimMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimMapOutput) +} + +type ResourceClaimOutput struct{ *pulumi.OutputState } + +func (ResourceClaimOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaim)(nil)).Elem() +} + +func (o ResourceClaimOutput) ToResourceClaimOutput() ResourceClaimOutput { + return o +} + +func (o ResourceClaimOutput) ToResourceClaimOutputWithContext(ctx context.Context) ResourceClaimOutput { + return o +} + +// 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 +func (o ResourceClaimOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceClaim) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// 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 +func (o ResourceClaimOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceClaim) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata +func (o ResourceClaimOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *ResourceClaim) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Spec describes what is being requested and how to configure it. The spec is immutable. +func (o ResourceClaimOutput) Spec() ResourceClaimSpecOutput { + return o.ApplyT(func(v *ResourceClaim) ResourceClaimSpecOutput { return v.Spec }).(ResourceClaimSpecOutput) +} + +// Status describes whether the claim is ready to use and what has been allocated. +func (o ResourceClaimOutput) Status() ResourceClaimStatusPtrOutput { + return o.ApplyT(func(v *ResourceClaim) ResourceClaimStatusPtrOutput { return v.Status }).(ResourceClaimStatusPtrOutput) +} + +type ResourceClaimArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaim)(nil)).Elem() +} + +func (o ResourceClaimArrayOutput) ToResourceClaimArrayOutput() ResourceClaimArrayOutput { + return o +} + +func (o ResourceClaimArrayOutput) ToResourceClaimArrayOutputWithContext(ctx context.Context) ResourceClaimArrayOutput { + return o +} + +func (o ResourceClaimArrayOutput) Index(i pulumi.IntInput) ResourceClaimOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceClaim { + return vs[0].([]*ResourceClaim)[vs[1].(int)] + }).(ResourceClaimOutput) +} + +type ResourceClaimMapOutput struct{ *pulumi.OutputState } + +func (ResourceClaimMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaim)(nil)).Elem() +} + +func (o ResourceClaimMapOutput) ToResourceClaimMapOutput() ResourceClaimMapOutput { + return o +} + +func (o ResourceClaimMapOutput) ToResourceClaimMapOutputWithContext(ctx context.Context) ResourceClaimMapOutput { + return o +} + +func (o ResourceClaimMapOutput) MapIndex(k pulumi.StringInput) ResourceClaimOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceClaim { + return vs[0].(map[string]*ResourceClaim)[vs[1].(string)] + }).(ResourceClaimOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimInput)(nil)).Elem(), &ResourceClaim{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimArrayInput)(nil)).Elem(), ResourceClaimArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimMapInput)(nil)).Elem(), ResourceClaimMap{}) + pulumi.RegisterOutputType(ResourceClaimOutput{}) + pulumi.RegisterOutputType(ResourceClaimArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceClaimList.go b/sdk/go/kubernetes/resource/v1beta1/resourceClaimList.go new file mode 100644 index 0000000000..cf73e4f114 --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceClaimList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ResourceClaimList is a collection of claims. +type ResourceClaimList struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Items is the list of resource claims. + Items ResourceClaimTypeArrayOutput `pulumi:"items"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewResourceClaimList registers a new resource with the given unique name, arguments, and options. +func NewResourceClaimList(ctx *pulumi.Context, + name string, args *ResourceClaimListArgs, opts ...pulumi.ResourceOption) (*ResourceClaimList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceClaimList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceClaimList + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceClaimList gets an existing ResourceClaimList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceClaimList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceClaimListState, opts ...pulumi.ResourceOption) (*ResourceClaimList, error) { + var resource ResourceClaimList + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceClaimList resources. +type resourceClaimListState struct { +} + +type ResourceClaimListState struct { +} + +func (ResourceClaimListState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimListState)(nil)).Elem() +} + +type resourceClaimListArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource claims. + Items []ResourceClaimType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a ResourceClaimList resource. +type ResourceClaimListArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // Items is the list of resource claims. + Items ResourceClaimTypeArrayInput + // 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 + Kind pulumi.StringPtrInput + // Standard list metadata + Metadata metav1.ListMetaPtrInput +} + +func (ResourceClaimListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimListArgs)(nil)).Elem() +} + +type ResourceClaimListInput interface { + pulumi.Input + + ToResourceClaimListOutput() ResourceClaimListOutput + ToResourceClaimListOutputWithContext(ctx context.Context) ResourceClaimListOutput +} + +func (*ResourceClaimList) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimList)(nil)).Elem() +} + +func (i *ResourceClaimList) ToResourceClaimListOutput() ResourceClaimListOutput { + return i.ToResourceClaimListOutputWithContext(context.Background()) +} + +func (i *ResourceClaimList) ToResourceClaimListOutputWithContext(ctx context.Context) ResourceClaimListOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimListOutput) +} + +// ResourceClaimListArrayInput is an input type that accepts ResourceClaimListArray and ResourceClaimListArrayOutput values. +// You can construct a concrete instance of `ResourceClaimListArrayInput` via: +// +// ResourceClaimListArray{ ResourceClaimListArgs{...} } +type ResourceClaimListArrayInput interface { + pulumi.Input + + ToResourceClaimListArrayOutput() ResourceClaimListArrayOutput + ToResourceClaimListArrayOutputWithContext(context.Context) ResourceClaimListArrayOutput +} + +type ResourceClaimListArray []ResourceClaimListInput + +func (ResourceClaimListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimList)(nil)).Elem() +} + +func (i ResourceClaimListArray) ToResourceClaimListArrayOutput() ResourceClaimListArrayOutput { + return i.ToResourceClaimListArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimListArray) ToResourceClaimListArrayOutputWithContext(ctx context.Context) ResourceClaimListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimListArrayOutput) +} + +// ResourceClaimListMapInput is an input type that accepts ResourceClaimListMap and ResourceClaimListMapOutput values. +// You can construct a concrete instance of `ResourceClaimListMapInput` via: +// +// ResourceClaimListMap{ "key": ResourceClaimListArgs{...} } +type ResourceClaimListMapInput interface { + pulumi.Input + + ToResourceClaimListMapOutput() ResourceClaimListMapOutput + ToResourceClaimListMapOutputWithContext(context.Context) ResourceClaimListMapOutput +} + +type ResourceClaimListMap map[string]ResourceClaimListInput + +func (ResourceClaimListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimList)(nil)).Elem() +} + +func (i ResourceClaimListMap) ToResourceClaimListMapOutput() ResourceClaimListMapOutput { + return i.ToResourceClaimListMapOutputWithContext(context.Background()) +} + +func (i ResourceClaimListMap) ToResourceClaimListMapOutputWithContext(ctx context.Context) ResourceClaimListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimListMapOutput) +} + +type ResourceClaimListOutput struct{ *pulumi.OutputState } + +func (ResourceClaimListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimList)(nil)).Elem() +} + +func (o ResourceClaimListOutput) ToResourceClaimListOutput() ResourceClaimListOutput { + return o +} + +func (o ResourceClaimListOutput) ToResourceClaimListOutputWithContext(ctx context.Context) ResourceClaimListOutput { + return o +} + +// 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 +func (o ResourceClaimListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceClaimList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Items is the list of resource claims. +func (o ResourceClaimListOutput) Items() ResourceClaimTypeArrayOutput { + return o.ApplyT(func(v *ResourceClaimList) ResourceClaimTypeArrayOutput { return v.Items }).(ResourceClaimTypeArrayOutput) +} + +// 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 +func (o ResourceClaimListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceClaimList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata +func (o ResourceClaimListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *ResourceClaimList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type ResourceClaimListArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimList)(nil)).Elem() +} + +func (o ResourceClaimListArrayOutput) ToResourceClaimListArrayOutput() ResourceClaimListArrayOutput { + return o +} + +func (o ResourceClaimListArrayOutput) ToResourceClaimListArrayOutputWithContext(ctx context.Context) ResourceClaimListArrayOutput { + return o +} + +func (o ResourceClaimListArrayOutput) Index(i pulumi.IntInput) ResourceClaimListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceClaimList { + return vs[0].([]*ResourceClaimList)[vs[1].(int)] + }).(ResourceClaimListOutput) +} + +type ResourceClaimListMapOutput struct{ *pulumi.OutputState } + +func (ResourceClaimListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimList)(nil)).Elem() +} + +func (o ResourceClaimListMapOutput) ToResourceClaimListMapOutput() ResourceClaimListMapOutput { + return o +} + +func (o ResourceClaimListMapOutput) ToResourceClaimListMapOutputWithContext(ctx context.Context) ResourceClaimListMapOutput { + return o +} + +func (o ResourceClaimListMapOutput) MapIndex(k pulumi.StringInput) ResourceClaimListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceClaimList { + return vs[0].(map[string]*ResourceClaimList)[vs[1].(string)] + }).(ResourceClaimListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimListInput)(nil)).Elem(), &ResourceClaimList{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimListArrayInput)(nil)).Elem(), ResourceClaimListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimListMapInput)(nil)).Elem(), ResourceClaimListMap{}) + pulumi.RegisterOutputType(ResourceClaimListOutput{}) + pulumi.RegisterOutputType(ResourceClaimListArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimListMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceClaimPatch.go b/sdk/go/kubernetes/resource/v1beta1/resourceClaimPatch.go new file mode 100644 index 0000000000..f3cfabd7f3 --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceClaimPatch.go @@ -0,0 +1,274 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimPatch struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec ResourceClaimSpecPatchPtrOutput `pulumi:"spec"` + // Status describes whether the claim is ready to use and what has been allocated. + Status ResourceClaimStatusPatchPtrOutput `pulumi:"status"` +} + +// NewResourceClaimPatch registers a new resource with the given unique name, arguments, and options. +func NewResourceClaimPatch(ctx *pulumi.Context, + name string, args *ResourceClaimPatchArgs, opts ...pulumi.ResourceOption) (*ResourceClaimPatch, error) { + if args == nil { + args = &ResourceClaimPatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceClaim") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceClaimPatch + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceClaimPatch gets an existing ResourceClaimPatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceClaimPatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceClaimPatchState, opts ...pulumi.ResourceOption) (*ResourceClaimPatch, error) { + var resource ResourceClaimPatch + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceClaimPatch resources. +type resourceClaimPatchState struct { +} + +type ResourceClaimPatchState struct { +} + +func (ResourceClaimPatchState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimPatchState)(nil)).Elem() +} + +type resourceClaimPatchArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec *ResourceClaimSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a ResourceClaimPatch resource. +type ResourceClaimPatchArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput + // Spec describes what is being requested and how to configure it. The spec is immutable. + Spec ResourceClaimSpecPatchPtrInput +} + +func (ResourceClaimPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimPatchArgs)(nil)).Elem() +} + +type ResourceClaimPatchInput interface { + pulumi.Input + + ToResourceClaimPatchOutput() ResourceClaimPatchOutput + ToResourceClaimPatchOutputWithContext(ctx context.Context) ResourceClaimPatchOutput +} + +func (*ResourceClaimPatch) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimPatch)(nil)).Elem() +} + +func (i *ResourceClaimPatch) ToResourceClaimPatchOutput() ResourceClaimPatchOutput { + return i.ToResourceClaimPatchOutputWithContext(context.Background()) +} + +func (i *ResourceClaimPatch) ToResourceClaimPatchOutputWithContext(ctx context.Context) ResourceClaimPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimPatchOutput) +} + +// ResourceClaimPatchArrayInput is an input type that accepts ResourceClaimPatchArray and ResourceClaimPatchArrayOutput values. +// You can construct a concrete instance of `ResourceClaimPatchArrayInput` via: +// +// ResourceClaimPatchArray{ ResourceClaimPatchArgs{...} } +type ResourceClaimPatchArrayInput interface { + pulumi.Input + + ToResourceClaimPatchArrayOutput() ResourceClaimPatchArrayOutput + ToResourceClaimPatchArrayOutputWithContext(context.Context) ResourceClaimPatchArrayOutput +} + +type ResourceClaimPatchArray []ResourceClaimPatchInput + +func (ResourceClaimPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimPatch)(nil)).Elem() +} + +func (i ResourceClaimPatchArray) ToResourceClaimPatchArrayOutput() ResourceClaimPatchArrayOutput { + return i.ToResourceClaimPatchArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimPatchArray) ToResourceClaimPatchArrayOutputWithContext(ctx context.Context) ResourceClaimPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimPatchArrayOutput) +} + +// ResourceClaimPatchMapInput is an input type that accepts ResourceClaimPatchMap and ResourceClaimPatchMapOutput values. +// You can construct a concrete instance of `ResourceClaimPatchMapInput` via: +// +// ResourceClaimPatchMap{ "key": ResourceClaimPatchArgs{...} } +type ResourceClaimPatchMapInput interface { + pulumi.Input + + ToResourceClaimPatchMapOutput() ResourceClaimPatchMapOutput + ToResourceClaimPatchMapOutputWithContext(context.Context) ResourceClaimPatchMapOutput +} + +type ResourceClaimPatchMap map[string]ResourceClaimPatchInput + +func (ResourceClaimPatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimPatch)(nil)).Elem() +} + +func (i ResourceClaimPatchMap) ToResourceClaimPatchMapOutput() ResourceClaimPatchMapOutput { + return i.ToResourceClaimPatchMapOutputWithContext(context.Background()) +} + +func (i ResourceClaimPatchMap) ToResourceClaimPatchMapOutputWithContext(ctx context.Context) ResourceClaimPatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimPatchMapOutput) +} + +type ResourceClaimPatchOutput struct{ *pulumi.OutputState } + +func (ResourceClaimPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimPatch)(nil)).Elem() +} + +func (o ResourceClaimPatchOutput) ToResourceClaimPatchOutput() ResourceClaimPatchOutput { + return o +} + +func (o ResourceClaimPatchOutput) ToResourceClaimPatchOutputWithContext(ctx context.Context) ResourceClaimPatchOutput { + return o +} + +// 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 +func (o ResourceClaimPatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceClaimPatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceClaimPatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceClaimPatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceClaimPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Spec describes what is being requested and how to configure it. The spec is immutable. +func (o ResourceClaimPatchOutput) Spec() ResourceClaimSpecPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimPatch) ResourceClaimSpecPatchPtrOutput { return v.Spec }).(ResourceClaimSpecPatchPtrOutput) +} + +// Status describes whether the claim is ready to use and what has been allocated. +func (o ResourceClaimPatchOutput) Status() ResourceClaimStatusPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimPatch) ResourceClaimStatusPatchPtrOutput { return v.Status }).(ResourceClaimStatusPatchPtrOutput) +} + +type ResourceClaimPatchArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimPatch)(nil)).Elem() +} + +func (o ResourceClaimPatchArrayOutput) ToResourceClaimPatchArrayOutput() ResourceClaimPatchArrayOutput { + return o +} + +func (o ResourceClaimPatchArrayOutput) ToResourceClaimPatchArrayOutputWithContext(ctx context.Context) ResourceClaimPatchArrayOutput { + return o +} + +func (o ResourceClaimPatchArrayOutput) Index(i pulumi.IntInput) ResourceClaimPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceClaimPatch { + return vs[0].([]*ResourceClaimPatch)[vs[1].(int)] + }).(ResourceClaimPatchOutput) +} + +type ResourceClaimPatchMapOutput struct{ *pulumi.OutputState } + +func (ResourceClaimPatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimPatch)(nil)).Elem() +} + +func (o ResourceClaimPatchMapOutput) ToResourceClaimPatchMapOutput() ResourceClaimPatchMapOutput { + return o +} + +func (o ResourceClaimPatchMapOutput) ToResourceClaimPatchMapOutputWithContext(ctx context.Context) ResourceClaimPatchMapOutput { + return o +} + +func (o ResourceClaimPatchMapOutput) MapIndex(k pulumi.StringInput) ResourceClaimPatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceClaimPatch { + return vs[0].(map[string]*ResourceClaimPatch)[vs[1].(string)] + }).(ResourceClaimPatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimPatchInput)(nil)).Elem(), &ResourceClaimPatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimPatchArrayInput)(nil)).Elem(), ResourceClaimPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimPatchMapInput)(nil)).Elem(), ResourceClaimPatchMap{}) + pulumi.RegisterOutputType(ResourceClaimPatchOutput{}) + pulumi.RegisterOutputType(ResourceClaimPatchArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimPatchMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplate.go b/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplate.go new file mode 100644 index 0000000000..e81f9c0adf --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplate.go @@ -0,0 +1,273 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ResourceClaimTemplate is used to produce ResourceClaim objects. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTemplate struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec ResourceClaimTemplateSpecOutput `pulumi:"spec"` +} + +// NewResourceClaimTemplate registers a new resource with the given unique name, arguments, and options. +func NewResourceClaimTemplate(ctx *pulumi.Context, + name string, args *ResourceClaimTemplateArgs, opts ...pulumi.ResourceOption) (*ResourceClaimTemplate, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Spec == nil { + return nil, errors.New("invalid value for required argument 'Spec'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceClaimTemplate") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceClaimTemplate + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceClaimTemplate gets an existing ResourceClaimTemplate resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceClaimTemplate(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceClaimTemplateState, opts ...pulumi.ResourceOption) (*ResourceClaimTemplate, error) { + var resource ResourceClaimTemplate + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceClaimTemplate resources. +type resourceClaimTemplateState struct { +} + +type ResourceClaimTemplateState struct { +} + +func (ResourceClaimTemplateState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimTemplateState)(nil)).Elem() +} + +type resourceClaimTemplateArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec ResourceClaimTemplateSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a ResourceClaimTemplate resource. +type ResourceClaimTemplateArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec ResourceClaimTemplateSpecInput +} + +func (ResourceClaimTemplateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimTemplateArgs)(nil)).Elem() +} + +type ResourceClaimTemplateInput interface { + pulumi.Input + + ToResourceClaimTemplateOutput() ResourceClaimTemplateOutput + ToResourceClaimTemplateOutputWithContext(ctx context.Context) ResourceClaimTemplateOutput +} + +func (*ResourceClaimTemplate) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimTemplate)(nil)).Elem() +} + +func (i *ResourceClaimTemplate) ToResourceClaimTemplateOutput() ResourceClaimTemplateOutput { + return i.ToResourceClaimTemplateOutputWithContext(context.Background()) +} + +func (i *ResourceClaimTemplate) ToResourceClaimTemplateOutputWithContext(ctx context.Context) ResourceClaimTemplateOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateOutput) +} + +// ResourceClaimTemplateArrayInput is an input type that accepts ResourceClaimTemplateArray and ResourceClaimTemplateArrayOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateArrayInput` via: +// +// ResourceClaimTemplateArray{ ResourceClaimTemplateArgs{...} } +type ResourceClaimTemplateArrayInput interface { + pulumi.Input + + ToResourceClaimTemplateArrayOutput() ResourceClaimTemplateArrayOutput + ToResourceClaimTemplateArrayOutputWithContext(context.Context) ResourceClaimTemplateArrayOutput +} + +type ResourceClaimTemplateArray []ResourceClaimTemplateInput + +func (ResourceClaimTemplateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimTemplate)(nil)).Elem() +} + +func (i ResourceClaimTemplateArray) ToResourceClaimTemplateArrayOutput() ResourceClaimTemplateArrayOutput { + return i.ToResourceClaimTemplateArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateArray) ToResourceClaimTemplateArrayOutputWithContext(ctx context.Context) ResourceClaimTemplateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateArrayOutput) +} + +// ResourceClaimTemplateMapInput is an input type that accepts ResourceClaimTemplateMap and ResourceClaimTemplateMapOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateMapInput` via: +// +// ResourceClaimTemplateMap{ "key": ResourceClaimTemplateArgs{...} } +type ResourceClaimTemplateMapInput interface { + pulumi.Input + + ToResourceClaimTemplateMapOutput() ResourceClaimTemplateMapOutput + ToResourceClaimTemplateMapOutputWithContext(context.Context) ResourceClaimTemplateMapOutput +} + +type ResourceClaimTemplateMap map[string]ResourceClaimTemplateInput + +func (ResourceClaimTemplateMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimTemplate)(nil)).Elem() +} + +func (i ResourceClaimTemplateMap) ToResourceClaimTemplateMapOutput() ResourceClaimTemplateMapOutput { + return i.ToResourceClaimTemplateMapOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateMap) ToResourceClaimTemplateMapOutputWithContext(ctx context.Context) ResourceClaimTemplateMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateMapOutput) +} + +type ResourceClaimTemplateOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimTemplate)(nil)).Elem() +} + +func (o ResourceClaimTemplateOutput) ToResourceClaimTemplateOutput() ResourceClaimTemplateOutput { + return o +} + +func (o ResourceClaimTemplateOutput) ToResourceClaimTemplateOutputWithContext(ctx context.Context) ResourceClaimTemplateOutput { + return o +} + +// 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 +func (o ResourceClaimTemplateOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceClaimTemplate) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// 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 +func (o ResourceClaimTemplateOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceClaimTemplate) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata +func (o ResourceClaimTemplateOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *ResourceClaimTemplate) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Describes the ResourceClaim that is to be generated. +// +// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. +func (o ResourceClaimTemplateOutput) Spec() ResourceClaimTemplateSpecOutput { + return o.ApplyT(func(v *ResourceClaimTemplate) ResourceClaimTemplateSpecOutput { return v.Spec }).(ResourceClaimTemplateSpecOutput) +} + +type ResourceClaimTemplateArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimTemplate)(nil)).Elem() +} + +func (o ResourceClaimTemplateArrayOutput) ToResourceClaimTemplateArrayOutput() ResourceClaimTemplateArrayOutput { + return o +} + +func (o ResourceClaimTemplateArrayOutput) ToResourceClaimTemplateArrayOutputWithContext(ctx context.Context) ResourceClaimTemplateArrayOutput { + return o +} + +func (o ResourceClaimTemplateArrayOutput) Index(i pulumi.IntInput) ResourceClaimTemplateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceClaimTemplate { + return vs[0].([]*ResourceClaimTemplate)[vs[1].(int)] + }).(ResourceClaimTemplateOutput) +} + +type ResourceClaimTemplateMapOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimTemplate)(nil)).Elem() +} + +func (o ResourceClaimTemplateMapOutput) ToResourceClaimTemplateMapOutput() ResourceClaimTemplateMapOutput { + return o +} + +func (o ResourceClaimTemplateMapOutput) ToResourceClaimTemplateMapOutputWithContext(ctx context.Context) ResourceClaimTemplateMapOutput { + return o +} + +func (o ResourceClaimTemplateMapOutput) MapIndex(k pulumi.StringInput) ResourceClaimTemplateOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceClaimTemplate { + return vs[0].(map[string]*ResourceClaimTemplate)[vs[1].(string)] + }).(ResourceClaimTemplateOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateInput)(nil)).Elem(), &ResourceClaimTemplate{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateArrayInput)(nil)).Elem(), ResourceClaimTemplateArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateMapInput)(nil)).Elem(), ResourceClaimTemplateMap{}) + pulumi.RegisterOutputType(ResourceClaimTemplateOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplateList.go b/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplateList.go new file mode 100644 index 0000000000..8c7ecaa1ad --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplateList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ResourceClaimTemplateList is a collection of claim templates. +type ResourceClaimTemplateList struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Items is the list of resource claim templates. + Items ResourceClaimTemplateTypeArrayOutput `pulumi:"items"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewResourceClaimTemplateList registers a new resource with the given unique name, arguments, and options. +func NewResourceClaimTemplateList(ctx *pulumi.Context, + name string, args *ResourceClaimTemplateListArgs, opts ...pulumi.ResourceOption) (*ResourceClaimTemplateList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceClaimTemplateList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceClaimTemplateList + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceClaimTemplateList gets an existing ResourceClaimTemplateList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceClaimTemplateList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceClaimTemplateListState, opts ...pulumi.ResourceOption) (*ResourceClaimTemplateList, error) { + var resource ResourceClaimTemplateList + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceClaimTemplateList resources. +type resourceClaimTemplateListState struct { +} + +type ResourceClaimTemplateListState struct { +} + +func (ResourceClaimTemplateListState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimTemplateListState)(nil)).Elem() +} + +type resourceClaimTemplateListArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource claim templates. + Items []ResourceClaimTemplateType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a ResourceClaimTemplateList resource. +type ResourceClaimTemplateListArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // Items is the list of resource claim templates. + Items ResourceClaimTemplateTypeArrayInput + // 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 + Kind pulumi.StringPtrInput + // Standard list metadata + Metadata metav1.ListMetaPtrInput +} + +func (ResourceClaimTemplateListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimTemplateListArgs)(nil)).Elem() +} + +type ResourceClaimTemplateListInput interface { + pulumi.Input + + ToResourceClaimTemplateListOutput() ResourceClaimTemplateListOutput + ToResourceClaimTemplateListOutputWithContext(ctx context.Context) ResourceClaimTemplateListOutput +} + +func (*ResourceClaimTemplateList) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimTemplateList)(nil)).Elem() +} + +func (i *ResourceClaimTemplateList) ToResourceClaimTemplateListOutput() ResourceClaimTemplateListOutput { + return i.ToResourceClaimTemplateListOutputWithContext(context.Background()) +} + +func (i *ResourceClaimTemplateList) ToResourceClaimTemplateListOutputWithContext(ctx context.Context) ResourceClaimTemplateListOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateListOutput) +} + +// ResourceClaimTemplateListArrayInput is an input type that accepts ResourceClaimTemplateListArray and ResourceClaimTemplateListArrayOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateListArrayInput` via: +// +// ResourceClaimTemplateListArray{ ResourceClaimTemplateListArgs{...} } +type ResourceClaimTemplateListArrayInput interface { + pulumi.Input + + ToResourceClaimTemplateListArrayOutput() ResourceClaimTemplateListArrayOutput + ToResourceClaimTemplateListArrayOutputWithContext(context.Context) ResourceClaimTemplateListArrayOutput +} + +type ResourceClaimTemplateListArray []ResourceClaimTemplateListInput + +func (ResourceClaimTemplateListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimTemplateList)(nil)).Elem() +} + +func (i ResourceClaimTemplateListArray) ToResourceClaimTemplateListArrayOutput() ResourceClaimTemplateListArrayOutput { + return i.ToResourceClaimTemplateListArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateListArray) ToResourceClaimTemplateListArrayOutputWithContext(ctx context.Context) ResourceClaimTemplateListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateListArrayOutput) +} + +// ResourceClaimTemplateListMapInput is an input type that accepts ResourceClaimTemplateListMap and ResourceClaimTemplateListMapOutput values. +// You can construct a concrete instance of `ResourceClaimTemplateListMapInput` via: +// +// ResourceClaimTemplateListMap{ "key": ResourceClaimTemplateListArgs{...} } +type ResourceClaimTemplateListMapInput interface { + pulumi.Input + + ToResourceClaimTemplateListMapOutput() ResourceClaimTemplateListMapOutput + ToResourceClaimTemplateListMapOutputWithContext(context.Context) ResourceClaimTemplateListMapOutput +} + +type ResourceClaimTemplateListMap map[string]ResourceClaimTemplateListInput + +func (ResourceClaimTemplateListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimTemplateList)(nil)).Elem() +} + +func (i ResourceClaimTemplateListMap) ToResourceClaimTemplateListMapOutput() ResourceClaimTemplateListMapOutput { + return i.ToResourceClaimTemplateListMapOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplateListMap) ToResourceClaimTemplateListMapOutputWithContext(ctx context.Context) ResourceClaimTemplateListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplateListMapOutput) +} + +type ResourceClaimTemplateListOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimTemplateList)(nil)).Elem() +} + +func (o ResourceClaimTemplateListOutput) ToResourceClaimTemplateListOutput() ResourceClaimTemplateListOutput { + return o +} + +func (o ResourceClaimTemplateListOutput) ToResourceClaimTemplateListOutputWithContext(ctx context.Context) ResourceClaimTemplateListOutput { + return o +} + +// 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 +func (o ResourceClaimTemplateListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceClaimTemplateList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Items is the list of resource claim templates. +func (o ResourceClaimTemplateListOutput) Items() ResourceClaimTemplateTypeArrayOutput { + return o.ApplyT(func(v *ResourceClaimTemplateList) ResourceClaimTemplateTypeArrayOutput { return v.Items }).(ResourceClaimTemplateTypeArrayOutput) +} + +// 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 +func (o ResourceClaimTemplateListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceClaimTemplateList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata +func (o ResourceClaimTemplateListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *ResourceClaimTemplateList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type ResourceClaimTemplateListArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimTemplateList)(nil)).Elem() +} + +func (o ResourceClaimTemplateListArrayOutput) ToResourceClaimTemplateListArrayOutput() ResourceClaimTemplateListArrayOutput { + return o +} + +func (o ResourceClaimTemplateListArrayOutput) ToResourceClaimTemplateListArrayOutputWithContext(ctx context.Context) ResourceClaimTemplateListArrayOutput { + return o +} + +func (o ResourceClaimTemplateListArrayOutput) Index(i pulumi.IntInput) ResourceClaimTemplateListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceClaimTemplateList { + return vs[0].([]*ResourceClaimTemplateList)[vs[1].(int)] + }).(ResourceClaimTemplateListOutput) +} + +type ResourceClaimTemplateListMapOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplateListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimTemplateList)(nil)).Elem() +} + +func (o ResourceClaimTemplateListMapOutput) ToResourceClaimTemplateListMapOutput() ResourceClaimTemplateListMapOutput { + return o +} + +func (o ResourceClaimTemplateListMapOutput) ToResourceClaimTemplateListMapOutputWithContext(ctx context.Context) ResourceClaimTemplateListMapOutput { + return o +} + +func (o ResourceClaimTemplateListMapOutput) MapIndex(k pulumi.StringInput) ResourceClaimTemplateListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceClaimTemplateList { + return vs[0].(map[string]*ResourceClaimTemplateList)[vs[1].(string)] + }).(ResourceClaimTemplateListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateListInput)(nil)).Elem(), &ResourceClaimTemplateList{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateListArrayInput)(nil)).Elem(), ResourceClaimTemplateListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplateListMapInput)(nil)).Elem(), ResourceClaimTemplateListMap{}) + pulumi.RegisterOutputType(ResourceClaimTemplateListOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateListArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplateListMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplatePatch.go b/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplatePatch.go new file mode 100644 index 0000000000..38f45d4ec3 --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceClaimTemplatePatch.go @@ -0,0 +1,275 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// ResourceClaimTemplate is used to produce ResourceClaim objects. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceClaimTemplatePatch struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec ResourceClaimTemplateSpecPatchPtrOutput `pulumi:"spec"` +} + +// NewResourceClaimTemplatePatch registers a new resource with the given unique name, arguments, and options. +func NewResourceClaimTemplatePatch(ctx *pulumi.Context, + name string, args *ResourceClaimTemplatePatchArgs, opts ...pulumi.ResourceOption) (*ResourceClaimTemplatePatch, error) { + if args == nil { + args = &ResourceClaimTemplatePatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceClaimTemplate") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceClaimTemplatePatch + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceClaimTemplatePatch gets an existing ResourceClaimTemplatePatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceClaimTemplatePatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceClaimTemplatePatchState, opts ...pulumi.ResourceOption) (*ResourceClaimTemplatePatch, error) { + var resource ResourceClaimTemplatePatch + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceClaimTemplatePatch resources. +type resourceClaimTemplatePatchState struct { +} + +type ResourceClaimTemplatePatchState struct { +} + +func (ResourceClaimTemplatePatchState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimTemplatePatchState)(nil)).Elem() +} + +type resourceClaimTemplatePatchArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec *ResourceClaimTemplateSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a ResourceClaimTemplatePatch resource. +type ResourceClaimTemplatePatchArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput + // Describes the ResourceClaim that is to be generated. + // + // This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + Spec ResourceClaimTemplateSpecPatchPtrInput +} + +func (ResourceClaimTemplatePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceClaimTemplatePatchArgs)(nil)).Elem() +} + +type ResourceClaimTemplatePatchInput interface { + pulumi.Input + + ToResourceClaimTemplatePatchOutput() ResourceClaimTemplatePatchOutput + ToResourceClaimTemplatePatchOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchOutput +} + +func (*ResourceClaimTemplatePatch) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimTemplatePatch)(nil)).Elem() +} + +func (i *ResourceClaimTemplatePatch) ToResourceClaimTemplatePatchOutput() ResourceClaimTemplatePatchOutput { + return i.ToResourceClaimTemplatePatchOutputWithContext(context.Background()) +} + +func (i *ResourceClaimTemplatePatch) ToResourceClaimTemplatePatchOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplatePatchOutput) +} + +// ResourceClaimTemplatePatchArrayInput is an input type that accepts ResourceClaimTemplatePatchArray and ResourceClaimTemplatePatchArrayOutput values. +// You can construct a concrete instance of `ResourceClaimTemplatePatchArrayInput` via: +// +// ResourceClaimTemplatePatchArray{ ResourceClaimTemplatePatchArgs{...} } +type ResourceClaimTemplatePatchArrayInput interface { + pulumi.Input + + ToResourceClaimTemplatePatchArrayOutput() ResourceClaimTemplatePatchArrayOutput + ToResourceClaimTemplatePatchArrayOutputWithContext(context.Context) ResourceClaimTemplatePatchArrayOutput +} + +type ResourceClaimTemplatePatchArray []ResourceClaimTemplatePatchInput + +func (ResourceClaimTemplatePatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimTemplatePatch)(nil)).Elem() +} + +func (i ResourceClaimTemplatePatchArray) ToResourceClaimTemplatePatchArrayOutput() ResourceClaimTemplatePatchArrayOutput { + return i.ToResourceClaimTemplatePatchArrayOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplatePatchArray) ToResourceClaimTemplatePatchArrayOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplatePatchArrayOutput) +} + +// ResourceClaimTemplatePatchMapInput is an input type that accepts ResourceClaimTemplatePatchMap and ResourceClaimTemplatePatchMapOutput values. +// You can construct a concrete instance of `ResourceClaimTemplatePatchMapInput` via: +// +// ResourceClaimTemplatePatchMap{ "key": ResourceClaimTemplatePatchArgs{...} } +type ResourceClaimTemplatePatchMapInput interface { + pulumi.Input + + ToResourceClaimTemplatePatchMapOutput() ResourceClaimTemplatePatchMapOutput + ToResourceClaimTemplatePatchMapOutputWithContext(context.Context) ResourceClaimTemplatePatchMapOutput +} + +type ResourceClaimTemplatePatchMap map[string]ResourceClaimTemplatePatchInput + +func (ResourceClaimTemplatePatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimTemplatePatch)(nil)).Elem() +} + +func (i ResourceClaimTemplatePatchMap) ToResourceClaimTemplatePatchMapOutput() ResourceClaimTemplatePatchMapOutput { + return i.ToResourceClaimTemplatePatchMapOutputWithContext(context.Background()) +} + +func (i ResourceClaimTemplatePatchMap) ToResourceClaimTemplatePatchMapOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceClaimTemplatePatchMapOutput) +} + +type ResourceClaimTemplatePatchOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplatePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceClaimTemplatePatch)(nil)).Elem() +} + +func (o ResourceClaimTemplatePatchOutput) ToResourceClaimTemplatePatchOutput() ResourceClaimTemplatePatchOutput { + return o +} + +func (o ResourceClaimTemplatePatchOutput) ToResourceClaimTemplatePatchOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchOutput { + return o +} + +// 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 +func (o ResourceClaimTemplatePatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceClaimTemplatePatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceClaimTemplatePatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceClaimTemplatePatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceClaimTemplatePatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimTemplatePatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Describes the ResourceClaim that is to be generated. +// +// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. +func (o ResourceClaimTemplatePatchOutput) Spec() ResourceClaimTemplateSpecPatchPtrOutput { + return o.ApplyT(func(v *ResourceClaimTemplatePatch) ResourceClaimTemplateSpecPatchPtrOutput { return v.Spec }).(ResourceClaimTemplateSpecPatchPtrOutput) +} + +type ResourceClaimTemplatePatchArrayOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplatePatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceClaimTemplatePatch)(nil)).Elem() +} + +func (o ResourceClaimTemplatePatchArrayOutput) ToResourceClaimTemplatePatchArrayOutput() ResourceClaimTemplatePatchArrayOutput { + return o +} + +func (o ResourceClaimTemplatePatchArrayOutput) ToResourceClaimTemplatePatchArrayOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchArrayOutput { + return o +} + +func (o ResourceClaimTemplatePatchArrayOutput) Index(i pulumi.IntInput) ResourceClaimTemplatePatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceClaimTemplatePatch { + return vs[0].([]*ResourceClaimTemplatePatch)[vs[1].(int)] + }).(ResourceClaimTemplatePatchOutput) +} + +type ResourceClaimTemplatePatchMapOutput struct{ *pulumi.OutputState } + +func (ResourceClaimTemplatePatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceClaimTemplatePatch)(nil)).Elem() +} + +func (o ResourceClaimTemplatePatchMapOutput) ToResourceClaimTemplatePatchMapOutput() ResourceClaimTemplatePatchMapOutput { + return o +} + +func (o ResourceClaimTemplatePatchMapOutput) ToResourceClaimTemplatePatchMapOutputWithContext(ctx context.Context) ResourceClaimTemplatePatchMapOutput { + return o +} + +func (o ResourceClaimTemplatePatchMapOutput) MapIndex(k pulumi.StringInput) ResourceClaimTemplatePatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceClaimTemplatePatch { + return vs[0].(map[string]*ResourceClaimTemplatePatch)[vs[1].(string)] + }).(ResourceClaimTemplatePatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplatePatchInput)(nil)).Elem(), &ResourceClaimTemplatePatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplatePatchArrayInput)(nil)).Elem(), ResourceClaimTemplatePatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceClaimTemplatePatchMapInput)(nil)).Elem(), ResourceClaimTemplatePatchMap{}) + pulumi.RegisterOutputType(ResourceClaimTemplatePatchOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplatePatchArrayOutput{}) + pulumi.RegisterOutputType(ResourceClaimTemplatePatchMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceSlice.go b/sdk/go/kubernetes/resource/v1beta1/resourceSlice.go new file mode 100644 index 0000000000..0476a49f2d --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceSlice.go @@ -0,0 +1,278 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// 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. +// +// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . +// +// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. +// +// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. +// +// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceSlice struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec ResourceSliceSpecOutput `pulumi:"spec"` +} + +// NewResourceSlice registers a new resource with the given unique name, arguments, and options. +func NewResourceSlice(ctx *pulumi.Context, + name string, args *ResourceSliceArgs, opts ...pulumi.ResourceOption) (*ResourceSlice, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Spec == nil { + return nil, errors.New("invalid value for required argument 'Spec'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceSlice") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceSlice"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceSlice"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceSlice + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceSlice gets an existing ResourceSlice resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceSlice(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceSliceState, opts ...pulumi.ResourceOption) (*ResourceSlice, error) { + var resource ResourceSlice + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceSlice resources. +type resourceSliceState struct { +} + +type ResourceSliceState struct { +} + +func (ResourceSliceState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceSliceState)(nil)).Elem() +} + +type resourceSliceArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec ResourceSliceSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a ResourceSlice resource. +type ResourceSliceArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec ResourceSliceSpecInput +} + +func (ResourceSliceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceSliceArgs)(nil)).Elem() +} + +type ResourceSliceInput interface { + pulumi.Input + + ToResourceSliceOutput() ResourceSliceOutput + ToResourceSliceOutputWithContext(ctx context.Context) ResourceSliceOutput +} + +func (*ResourceSlice) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSlice)(nil)).Elem() +} + +func (i *ResourceSlice) ToResourceSliceOutput() ResourceSliceOutput { + return i.ToResourceSliceOutputWithContext(context.Background()) +} + +func (i *ResourceSlice) ToResourceSliceOutputWithContext(ctx context.Context) ResourceSliceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceOutput) +} + +// ResourceSliceArrayInput is an input type that accepts ResourceSliceArray and ResourceSliceArrayOutput values. +// You can construct a concrete instance of `ResourceSliceArrayInput` via: +// +// ResourceSliceArray{ ResourceSliceArgs{...} } +type ResourceSliceArrayInput interface { + pulumi.Input + + ToResourceSliceArrayOutput() ResourceSliceArrayOutput + ToResourceSliceArrayOutputWithContext(context.Context) ResourceSliceArrayOutput +} + +type ResourceSliceArray []ResourceSliceInput + +func (ResourceSliceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceSlice)(nil)).Elem() +} + +func (i ResourceSliceArray) ToResourceSliceArrayOutput() ResourceSliceArrayOutput { + return i.ToResourceSliceArrayOutputWithContext(context.Background()) +} + +func (i ResourceSliceArray) ToResourceSliceArrayOutputWithContext(ctx context.Context) ResourceSliceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceArrayOutput) +} + +// ResourceSliceMapInput is an input type that accepts ResourceSliceMap and ResourceSliceMapOutput values. +// You can construct a concrete instance of `ResourceSliceMapInput` via: +// +// ResourceSliceMap{ "key": ResourceSliceArgs{...} } +type ResourceSliceMapInput interface { + pulumi.Input + + ToResourceSliceMapOutput() ResourceSliceMapOutput + ToResourceSliceMapOutputWithContext(context.Context) ResourceSliceMapOutput +} + +type ResourceSliceMap map[string]ResourceSliceInput + +func (ResourceSliceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceSlice)(nil)).Elem() +} + +func (i ResourceSliceMap) ToResourceSliceMapOutput() ResourceSliceMapOutput { + return i.ToResourceSliceMapOutputWithContext(context.Background()) +} + +func (i ResourceSliceMap) ToResourceSliceMapOutputWithContext(ctx context.Context) ResourceSliceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceMapOutput) +} + +type ResourceSliceOutput struct{ *pulumi.OutputState } + +func (ResourceSliceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSlice)(nil)).Elem() +} + +func (o ResourceSliceOutput) ToResourceSliceOutput() ResourceSliceOutput { + return o +} + +func (o ResourceSliceOutput) ToResourceSliceOutputWithContext(ctx context.Context) ResourceSliceOutput { + return o +} + +// 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 +func (o ResourceSliceOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceSlice) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// 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 +func (o ResourceSliceOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceSlice) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata +func (o ResourceSliceOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *ResourceSlice) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Contains the information published by the driver. +// +// Changing the spec automatically increments the metadata.generation number. +func (o ResourceSliceOutput) Spec() ResourceSliceSpecOutput { + return o.ApplyT(func(v *ResourceSlice) ResourceSliceSpecOutput { return v.Spec }).(ResourceSliceSpecOutput) +} + +type ResourceSliceArrayOutput struct{ *pulumi.OutputState } + +func (ResourceSliceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceSlice)(nil)).Elem() +} + +func (o ResourceSliceArrayOutput) ToResourceSliceArrayOutput() ResourceSliceArrayOutput { + return o +} + +func (o ResourceSliceArrayOutput) ToResourceSliceArrayOutputWithContext(ctx context.Context) ResourceSliceArrayOutput { + return o +} + +func (o ResourceSliceArrayOutput) Index(i pulumi.IntInput) ResourceSliceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceSlice { + return vs[0].([]*ResourceSlice)[vs[1].(int)] + }).(ResourceSliceOutput) +} + +type ResourceSliceMapOutput struct{ *pulumi.OutputState } + +func (ResourceSliceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceSlice)(nil)).Elem() +} + +func (o ResourceSliceMapOutput) ToResourceSliceMapOutput() ResourceSliceMapOutput { + return o +} + +func (o ResourceSliceMapOutput) ToResourceSliceMapOutputWithContext(ctx context.Context) ResourceSliceMapOutput { + return o +} + +func (o ResourceSliceMapOutput) MapIndex(k pulumi.StringInput) ResourceSliceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceSlice { + return vs[0].(map[string]*ResourceSlice)[vs[1].(string)] + }).(ResourceSliceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceInput)(nil)).Elem(), &ResourceSlice{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceArrayInput)(nil)).Elem(), ResourceSliceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceMapInput)(nil)).Elem(), ResourceSliceMap{}) + pulumi.RegisterOutputType(ResourceSliceOutput{}) + pulumi.RegisterOutputType(ResourceSliceArrayOutput{}) + pulumi.RegisterOutputType(ResourceSliceMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceSliceList.go b/sdk/go/kubernetes/resource/v1beta1/resourceSliceList.go new file mode 100644 index 0000000000..9d5aa951df --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceSliceList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ResourceSliceList is a collection of ResourceSlices. +type ResourceSliceList struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Items is the list of resource ResourceSlices. + Items ResourceSliceTypeArrayOutput `pulumi:"items"` + // 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 + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewResourceSliceList registers a new resource with the given unique name, arguments, and options. +func NewResourceSliceList(ctx *pulumi.Context, + name string, args *ResourceSliceListArgs, opts ...pulumi.ResourceOption) (*ResourceSliceList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceSliceList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceSliceList + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceSliceList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceSliceList gets an existing ResourceSliceList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceSliceList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceSliceListState, opts ...pulumi.ResourceOption) (*ResourceSliceList, error) { + var resource ResourceSliceList + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceSliceList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceSliceList resources. +type resourceSliceListState struct { +} + +type ResourceSliceListState struct { +} + +func (ResourceSliceListState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceSliceListState)(nil)).Elem() +} + +type resourceSliceListArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource ResourceSlices. + Items []ResourceSliceType `pulumi:"items"` + // 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 + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a ResourceSliceList resource. +type ResourceSliceListArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // Items is the list of resource ResourceSlices. + Items ResourceSliceTypeArrayInput + // 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 + Kind pulumi.StringPtrInput + // Standard list metadata + Metadata metav1.ListMetaPtrInput +} + +func (ResourceSliceListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceSliceListArgs)(nil)).Elem() +} + +type ResourceSliceListInput interface { + pulumi.Input + + ToResourceSliceListOutput() ResourceSliceListOutput + ToResourceSliceListOutputWithContext(ctx context.Context) ResourceSliceListOutput +} + +func (*ResourceSliceList) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSliceList)(nil)).Elem() +} + +func (i *ResourceSliceList) ToResourceSliceListOutput() ResourceSliceListOutput { + return i.ToResourceSliceListOutputWithContext(context.Background()) +} + +func (i *ResourceSliceList) ToResourceSliceListOutputWithContext(ctx context.Context) ResourceSliceListOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListOutput) +} + +// ResourceSliceListArrayInput is an input type that accepts ResourceSliceListArray and ResourceSliceListArrayOutput values. +// You can construct a concrete instance of `ResourceSliceListArrayInput` via: +// +// ResourceSliceListArray{ ResourceSliceListArgs{...} } +type ResourceSliceListArrayInput interface { + pulumi.Input + + ToResourceSliceListArrayOutput() ResourceSliceListArrayOutput + ToResourceSliceListArrayOutputWithContext(context.Context) ResourceSliceListArrayOutput +} + +type ResourceSliceListArray []ResourceSliceListInput + +func (ResourceSliceListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceSliceList)(nil)).Elem() +} + +func (i ResourceSliceListArray) ToResourceSliceListArrayOutput() ResourceSliceListArrayOutput { + return i.ToResourceSliceListArrayOutputWithContext(context.Background()) +} + +func (i ResourceSliceListArray) ToResourceSliceListArrayOutputWithContext(ctx context.Context) ResourceSliceListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListArrayOutput) +} + +// ResourceSliceListMapInput is an input type that accepts ResourceSliceListMap and ResourceSliceListMapOutput values. +// You can construct a concrete instance of `ResourceSliceListMapInput` via: +// +// ResourceSliceListMap{ "key": ResourceSliceListArgs{...} } +type ResourceSliceListMapInput interface { + pulumi.Input + + ToResourceSliceListMapOutput() ResourceSliceListMapOutput + ToResourceSliceListMapOutputWithContext(context.Context) ResourceSliceListMapOutput +} + +type ResourceSliceListMap map[string]ResourceSliceListInput + +func (ResourceSliceListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceSliceList)(nil)).Elem() +} + +func (i ResourceSliceListMap) ToResourceSliceListMapOutput() ResourceSliceListMapOutput { + return i.ToResourceSliceListMapOutputWithContext(context.Background()) +} + +func (i ResourceSliceListMap) ToResourceSliceListMapOutputWithContext(ctx context.Context) ResourceSliceListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSliceListMapOutput) +} + +type ResourceSliceListOutput struct{ *pulumi.OutputState } + +func (ResourceSliceListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSliceList)(nil)).Elem() +} + +func (o ResourceSliceListOutput) ToResourceSliceListOutput() ResourceSliceListOutput { + return o +} + +func (o ResourceSliceListOutput) ToResourceSliceListOutputWithContext(ctx context.Context) ResourceSliceListOutput { + return o +} + +// 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 +func (o ResourceSliceListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceSliceList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Items is the list of resource ResourceSlices. +func (o ResourceSliceListOutput) Items() ResourceSliceTypeArrayOutput { + return o.ApplyT(func(v *ResourceSliceList) ResourceSliceTypeArrayOutput { return v.Items }).(ResourceSliceTypeArrayOutput) +} + +// 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 +func (o ResourceSliceListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *ResourceSliceList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata +func (o ResourceSliceListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *ResourceSliceList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type ResourceSliceListArrayOutput struct{ *pulumi.OutputState } + +func (ResourceSliceListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceSliceList)(nil)).Elem() +} + +func (o ResourceSliceListArrayOutput) ToResourceSliceListArrayOutput() ResourceSliceListArrayOutput { + return o +} + +func (o ResourceSliceListArrayOutput) ToResourceSliceListArrayOutputWithContext(ctx context.Context) ResourceSliceListArrayOutput { + return o +} + +func (o ResourceSliceListArrayOutput) Index(i pulumi.IntInput) ResourceSliceListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceSliceList { + return vs[0].([]*ResourceSliceList)[vs[1].(int)] + }).(ResourceSliceListOutput) +} + +type ResourceSliceListMapOutput struct{ *pulumi.OutputState } + +func (ResourceSliceListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceSliceList)(nil)).Elem() +} + +func (o ResourceSliceListMapOutput) ToResourceSliceListMapOutput() ResourceSliceListMapOutput { + return o +} + +func (o ResourceSliceListMapOutput) ToResourceSliceListMapOutputWithContext(ctx context.Context) ResourceSliceListMapOutput { + return o +} + +func (o ResourceSliceListMapOutput) MapIndex(k pulumi.StringInput) ResourceSliceListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceSliceList { + return vs[0].(map[string]*ResourceSliceList)[vs[1].(string)] + }).(ResourceSliceListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListInput)(nil)).Elem(), &ResourceSliceList{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListArrayInput)(nil)).Elem(), ResourceSliceListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSliceListMapInput)(nil)).Elem(), ResourceSliceListMap{}) + pulumi.RegisterOutputType(ResourceSliceListOutput{}) + pulumi.RegisterOutputType(ResourceSliceListArrayOutput{}) + pulumi.RegisterOutputType(ResourceSliceListMapOutput{}) +} diff --git a/sdk/go/kubernetes/resource/v1beta1/resourceSlicePatch.go b/sdk/go/kubernetes/resource/v1beta1/resourceSlicePatch.go new file mode 100644 index 0000000000..b211c50f17 --- /dev/null +++ b/sdk/go/kubernetes/resource/v1beta1/resourceSlicePatch.go @@ -0,0 +1,280 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// 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. +// +// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . +// +// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. +// +// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. +// +// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type ResourceSlicePatch struct { + pulumi.CustomResourceState + + // 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 + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // 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 + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec ResourceSliceSpecPatchPtrOutput `pulumi:"spec"` +} + +// NewResourceSlicePatch registers a new resource with the given unique name, arguments, and options. +func NewResourceSlicePatch(ctx *pulumi.Context, + name string, args *ResourceSlicePatchArgs, opts ...pulumi.ResourceOption) (*ResourceSlicePatch, error) { + if args == nil { + args = &ResourceSlicePatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("ResourceSlice") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource ResourceSlicePatch + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceSlicePatch gets an existing ResourceSlicePatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResourceSlicePatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceSlicePatchState, opts ...pulumi.ResourceOption) (*ResourceSlicePatch, error) { + var resource ResourceSlicePatch + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceSlicePatch resources. +type resourceSlicePatchState struct { +} + +type ResourceSlicePatchState struct { +} + +func (ResourceSlicePatchState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceSlicePatchState)(nil)).Elem() +} + +type resourceSlicePatchArgs struct { + // 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 + ApiVersion *string `pulumi:"apiVersion"` + // 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 + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec *ResourceSliceSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a ResourceSlicePatch resource. +type ResourceSlicePatchArgs struct { + // 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 + ApiVersion pulumi.StringPtrInput + // 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 + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput + // Contains the information published by the driver. + // + // Changing the spec automatically increments the metadata.generation number. + Spec ResourceSliceSpecPatchPtrInput +} + +func (ResourceSlicePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceSlicePatchArgs)(nil)).Elem() +} + +type ResourceSlicePatchInput interface { + pulumi.Input + + ToResourceSlicePatchOutput() ResourceSlicePatchOutput + ToResourceSlicePatchOutputWithContext(ctx context.Context) ResourceSlicePatchOutput +} + +func (*ResourceSlicePatch) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSlicePatch)(nil)).Elem() +} + +func (i *ResourceSlicePatch) ToResourceSlicePatchOutput() ResourceSlicePatchOutput { + return i.ToResourceSlicePatchOutputWithContext(context.Background()) +} + +func (i *ResourceSlicePatch) ToResourceSlicePatchOutputWithContext(ctx context.Context) ResourceSlicePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSlicePatchOutput) +} + +// ResourceSlicePatchArrayInput is an input type that accepts ResourceSlicePatchArray and ResourceSlicePatchArrayOutput values. +// You can construct a concrete instance of `ResourceSlicePatchArrayInput` via: +// +// ResourceSlicePatchArray{ ResourceSlicePatchArgs{...} } +type ResourceSlicePatchArrayInput interface { + pulumi.Input + + ToResourceSlicePatchArrayOutput() ResourceSlicePatchArrayOutput + ToResourceSlicePatchArrayOutputWithContext(context.Context) ResourceSlicePatchArrayOutput +} + +type ResourceSlicePatchArray []ResourceSlicePatchInput + +func (ResourceSlicePatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceSlicePatch)(nil)).Elem() +} + +func (i ResourceSlicePatchArray) ToResourceSlicePatchArrayOutput() ResourceSlicePatchArrayOutput { + return i.ToResourceSlicePatchArrayOutputWithContext(context.Background()) +} + +func (i ResourceSlicePatchArray) ToResourceSlicePatchArrayOutputWithContext(ctx context.Context) ResourceSlicePatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSlicePatchArrayOutput) +} + +// ResourceSlicePatchMapInput is an input type that accepts ResourceSlicePatchMap and ResourceSlicePatchMapOutput values. +// You can construct a concrete instance of `ResourceSlicePatchMapInput` via: +// +// ResourceSlicePatchMap{ "key": ResourceSlicePatchArgs{...} } +type ResourceSlicePatchMapInput interface { + pulumi.Input + + ToResourceSlicePatchMapOutput() ResourceSlicePatchMapOutput + ToResourceSlicePatchMapOutputWithContext(context.Context) ResourceSlicePatchMapOutput +} + +type ResourceSlicePatchMap map[string]ResourceSlicePatchInput + +func (ResourceSlicePatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceSlicePatch)(nil)).Elem() +} + +func (i ResourceSlicePatchMap) ToResourceSlicePatchMapOutput() ResourceSlicePatchMapOutput { + return i.ToResourceSlicePatchMapOutputWithContext(context.Background()) +} + +func (i ResourceSlicePatchMap) ToResourceSlicePatchMapOutputWithContext(ctx context.Context) ResourceSlicePatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceSlicePatchMapOutput) +} + +type ResourceSlicePatchOutput struct{ *pulumi.OutputState } + +func (ResourceSlicePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceSlicePatch)(nil)).Elem() +} + +func (o ResourceSlicePatchOutput) ToResourceSlicePatchOutput() ResourceSlicePatchOutput { + return o +} + +func (o ResourceSlicePatchOutput) ToResourceSlicePatchOutputWithContext(ctx context.Context) ResourceSlicePatchOutput { + return o +} + +// 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 +func (o ResourceSlicePatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceSlicePatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// 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 +func (o ResourceSlicePatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceSlicePatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o ResourceSlicePatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *ResourceSlicePatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Contains the information published by the driver. +// +// Changing the spec automatically increments the metadata.generation number. +func (o ResourceSlicePatchOutput) Spec() ResourceSliceSpecPatchPtrOutput { + return o.ApplyT(func(v *ResourceSlicePatch) ResourceSliceSpecPatchPtrOutput { return v.Spec }).(ResourceSliceSpecPatchPtrOutput) +} + +type ResourceSlicePatchArrayOutput struct{ *pulumi.OutputState } + +func (ResourceSlicePatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceSlicePatch)(nil)).Elem() +} + +func (o ResourceSlicePatchArrayOutput) ToResourceSlicePatchArrayOutput() ResourceSlicePatchArrayOutput { + return o +} + +func (o ResourceSlicePatchArrayOutput) ToResourceSlicePatchArrayOutputWithContext(ctx context.Context) ResourceSlicePatchArrayOutput { + return o +} + +func (o ResourceSlicePatchArrayOutput) Index(i pulumi.IntInput) ResourceSlicePatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceSlicePatch { + return vs[0].([]*ResourceSlicePatch)[vs[1].(int)] + }).(ResourceSlicePatchOutput) +} + +type ResourceSlicePatchMapOutput struct{ *pulumi.OutputState } + +func (ResourceSlicePatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceSlicePatch)(nil)).Elem() +} + +func (o ResourceSlicePatchMapOutput) ToResourceSlicePatchMapOutput() ResourceSlicePatchMapOutput { + return o +} + +func (o ResourceSlicePatchMapOutput) ToResourceSlicePatchMapOutputWithContext(ctx context.Context) ResourceSlicePatchMapOutput { + return o +} + +func (o ResourceSlicePatchMapOutput) MapIndex(k pulumi.StringInput) ResourceSlicePatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceSlicePatch { + return vs[0].(map[string]*ResourceSlicePatch)[vs[1].(string)] + }).(ResourceSlicePatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSlicePatchInput)(nil)).Elem(), &ResourceSlicePatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSlicePatchArrayInput)(nil)).Elem(), ResourceSlicePatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceSlicePatchMapInput)(nil)).Elem(), ResourceSlicePatchMap{}) + pulumi.RegisterOutputType(ResourceSlicePatchOutput{}) + pulumi.RegisterOutputType(ResourceSlicePatchArrayOutput{}) + pulumi.RegisterOutputType(ResourceSlicePatchMapOutput{}) +} diff --git a/sdk/go/kubernetes/storage/v1/pulumiTypes.go b/sdk/go/kubernetes/storage/v1/pulumiTypes.go index f877bd7862..bbff65afbc 100644 --- a/sdk/go/kubernetes/storage/v1/pulumiTypes.go +++ b/sdk/go/kubernetes/storage/v1/pulumiTypes.go @@ -3132,7 +3132,7 @@ func (o VolumeAttachmentPatchTypeOutput) Status() VolumeAttachmentStatusPatchPtr return o.ApplyT(func(v VolumeAttachmentPatchType) *VolumeAttachmentStatusPatch { return v.Status }).(VolumeAttachmentStatusPatchPtrOutput) } -// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. +// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. type VolumeAttachmentSource struct { // inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. InlineVolumeSpec *corev1.PersistentVolumeSpec `pulumi:"inlineVolumeSpec"` @@ -3151,7 +3151,7 @@ type VolumeAttachmentSourceInput interface { ToVolumeAttachmentSourceOutputWithContext(context.Context) VolumeAttachmentSourceOutput } -// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. +// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. type VolumeAttachmentSourceArgs struct { // inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. InlineVolumeSpec corev1.PersistentVolumeSpecPtrInput `pulumi:"inlineVolumeSpec"` @@ -3171,7 +3171,7 @@ func (i VolumeAttachmentSourceArgs) ToVolumeAttachmentSourceOutputWithContext(ct return pulumi.ToOutputWithContext(ctx, i).(VolumeAttachmentSourceOutput) } -// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. +// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. type VolumeAttachmentSourceOutput struct{ *pulumi.OutputState } func (VolumeAttachmentSourceOutput) ElementType() reflect.Type { @@ -3196,7 +3196,7 @@ func (o VolumeAttachmentSourceOutput) PersistentVolumeName() pulumi.StringPtrOut return o.ApplyT(func(v VolumeAttachmentSource) *string { return v.PersistentVolumeName }).(pulumi.StringPtrOutput) } -// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. +// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. type VolumeAttachmentSourcePatch struct { // inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. InlineVolumeSpec *corev1.PersistentVolumeSpecPatch `pulumi:"inlineVolumeSpec"` @@ -3215,7 +3215,7 @@ type VolumeAttachmentSourcePatchInput interface { ToVolumeAttachmentSourcePatchOutputWithContext(context.Context) VolumeAttachmentSourcePatchOutput } -// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. +// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. type VolumeAttachmentSourcePatchArgs struct { // inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. InlineVolumeSpec corev1.PersistentVolumeSpecPatchPtrInput `pulumi:"inlineVolumeSpec"` @@ -3276,7 +3276,7 @@ func (i *volumeAttachmentSourcePatchPtrType) ToVolumeAttachmentSourcePatchPtrOut return pulumi.ToOutputWithContext(ctx, i).(VolumeAttachmentSourcePatchPtrOutput) } -// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. +// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. type VolumeAttachmentSourcePatchOutput struct{ *pulumi.OutputState } func (VolumeAttachmentSourcePatchOutput) ElementType() reflect.Type { diff --git a/sdk/go/kubernetes/yaml/v2/kinds.go b/sdk/go/kubernetes/yaml/v2/kinds.go index ea1b64d9c5..9c21a4fad2 100644 --- a/sdk/go/kubernetes/yaml/v2/kinds.go +++ b/sdk/go/kubernetes/yaml/v2/kinds.go @@ -44,6 +44,7 @@ import ( certificatesv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1" coordinationv1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/coordination/v1" coordinationv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/coordination/v1alpha1" + coordinationv1alpha2 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/coordination/v1alpha2" coordinationv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/coordination/v1beta1" corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1" discoveryv1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/discovery/v1" @@ -71,6 +72,7 @@ import ( resourcev1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1alpha1" resourcev1alpha2 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1alpha2" resourcev1alpha3 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1alpha3" + resourcev1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1beta1" schedulingv1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/scheduling/v1" schedulingv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/scheduling/v1alpha1" schedulingv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/scheduling/v1beta1" @@ -90,6 +92,8 @@ func IsListKind(apiVersion, kind string) bool { "admissionregistration.k8s.io/v1/ValidatingAdmissionPolicyBindingList", "admissionregistration.k8s.io/v1/ValidatingAdmissionPolicyList", "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList", + "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", + "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyBindingList", "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyList", "admissionregistration.k8s.io/v1beta1/MutatingWebhookConfigurationList", @@ -127,6 +131,7 @@ func IsListKind(apiVersion, kind string) bool { "certificates.k8s.io/v1beta1/CertificateSigningRequestList", "coordination.k8s.io/v1/LeaseList", "coordination.k8s.io/v1alpha1/LeaseCandidateList", + "coordination.k8s.io/v1alpha2/LeaseCandidateList", "coordination.k8s.io/v1beta1/LeaseList", "v1/ConfigMapList", "v1/EndpointsList", @@ -206,6 +211,11 @@ func IsListKind(apiVersion, kind string) bool { "resource.k8s.io/v1alpha3/PodSchedulingContextList", "resource.k8s.io/v1alpha3/ResourceClaimList", "resource.k8s.io/v1alpha3/ResourceClaimTemplateList", + "resource.k8s.io/v1alpha3/ResourceSliceList", + "resource.k8s.io/v1beta1/DeviceClassList", + "resource.k8s.io/v1beta1/ResourceClaimList", + "resource.k8s.io/v1beta1/ResourceClaimTemplateList", + "resource.k8s.io/v1beta1/ResourceSliceList", "scheduling.k8s.io/v1/PriorityClassList", "scheduling.k8s.io/v1alpha1/PriorityClassList", "scheduling.k8s.io/v1beta1/PriorityClassList", @@ -262,6 +272,20 @@ func RegisterResource(ctx *pulumi.Context, apiVersion, kind, name string, props return nil, err } return &res, nil + case "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy": + var res admissionregistrationv1alpha1.MutatingAdmissionPolicy + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, props, &res, opts...) + if err != nil { + return nil, err + } + return &res, nil + case "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding": + var res admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, props, &res, opts...) + if err != nil { + return nil, err + } + return &res, nil case "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy": var res admissionregistrationv1alpha1.ValidatingAdmissionPolicy err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicy", name, props, &res, opts...) @@ -521,6 +545,13 @@ func RegisterResource(ctx *pulumi.Context, apiVersion, kind, name string, props return nil, err } return &res, nil + case "coordination.k8s.io/v1alpha2/LeaseCandidate": + var res coordinationv1alpha2.LeaseCandidate + err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", name, props, &res, opts...) + if err != nil { + return nil, err + } + return &res, nil case "coordination.k8s.io/v1beta1/Lease": var res coordinationv1beta1.Lease err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1beta1:Lease", name, props, &res, opts...) @@ -1095,6 +1126,34 @@ func RegisterResource(ctx *pulumi.Context, apiVersion, kind, name string, props return nil, err } return &res, nil + case "resource.k8s.io/v1beta1/DeviceClass": + var res resourcev1beta1.DeviceClass + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:DeviceClass", name, props, &res, opts...) + if err != nil { + return nil, err + } + return &res, nil + case "resource.k8s.io/v1beta1/ResourceClaim": + var res resourcev1beta1.ResourceClaim + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", name, props, &res, opts...) + if err != nil { + return nil, err + } + return &res, nil + case "resource.k8s.io/v1beta1/ResourceClaimTemplate": + var res resourcev1beta1.ResourceClaimTemplate + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", name, props, &res, opts...) + if err != nil { + return nil, err + } + return &res, nil + case "resource.k8s.io/v1beta1/ResourceSlice": + var res resourcev1beta1.ResourceSlice + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", name, props, &res, opts...) + if err != nil { + return nil, err + } + return &res, nil case "scheduling.k8s.io/v1/PriorityClass": var res schedulingv1.PriorityClass err := ctx.RegisterResource("kubernetes:scheduling.k8s.io/v1:PriorityClass", name, props, &res, opts...) diff --git a/sdk/go/kubernetes/yaml/yaml.go b/sdk/go/kubernetes/yaml/yaml.go index 583a7fe0d8..75a72e4270 100644 --- a/sdk/go/kubernetes/yaml/yaml.go +++ b/sdk/go/kubernetes/yaml/yaml.go @@ -51,6 +51,7 @@ import ( certificatesv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1" coordinationv1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/coordination/v1" coordinationv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/coordination/v1alpha1" + coordinationv1alpha2 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/coordination/v1alpha2" coordinationv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/coordination/v1beta1" corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1" discoveryv1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/discovery/v1" @@ -78,6 +79,7 @@ import ( resourcev1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1alpha1" resourcev1alpha2 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1alpha2" resourcev1alpha3 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1alpha3" + resourcev1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1beta1" schedulingv1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/scheduling/v1" schedulingv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/scheduling/v1alpha1" schedulingv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/scheduling/v1beta1" @@ -284,6 +286,8 @@ func parseYamlObject(ctx *pulumi.Context, obj map[string]interface{}, transforma "admissionregistration.k8s.io/v1/ValidatingAdmissionPolicyBindingList", "admissionregistration.k8s.io/v1/ValidatingAdmissionPolicyList", "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList", + "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", + "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyBindingList", "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyList", "admissionregistration.k8s.io/v1beta1/MutatingWebhookConfigurationList", @@ -321,6 +325,7 @@ func parseYamlObject(ctx *pulumi.Context, obj map[string]interface{}, transforma "certificates.k8s.io/v1beta1/CertificateSigningRequestList", "coordination.k8s.io/v1/LeaseList", "coordination.k8s.io/v1alpha1/LeaseCandidateList", + "coordination.k8s.io/v1alpha2/LeaseCandidateList", "coordination.k8s.io/v1beta1/LeaseList", "v1/ConfigMapList", "v1/EndpointsList", @@ -400,6 +405,11 @@ func parseYamlObject(ctx *pulumi.Context, obj map[string]interface{}, transforma "resource.k8s.io/v1alpha3/PodSchedulingContextList", "resource.k8s.io/v1alpha3/ResourceClaimList", "resource.k8s.io/v1alpha3/ResourceClaimTemplateList", + "resource.k8s.io/v1alpha3/ResourceSliceList", + "resource.k8s.io/v1beta1/DeviceClassList", + "resource.k8s.io/v1beta1/ResourceClaimList", + "resource.k8s.io/v1beta1/ResourceClaimTemplateList", + "resource.k8s.io/v1beta1/ResourceSliceList", "scheduling.k8s.io/v1/PriorityClassList", "scheduling.k8s.io/v1alpha1/PriorityClassList", "scheduling.k8s.io/v1beta1/PriorityClassList", @@ -501,6 +511,20 @@ func parseYamlObject(ctx *pulumi.Context, obj map[string]interface{}, transforma return nil, err } return []resourceTuple{{Name: key, Resource: &res}}, nil + case "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy": + var res admissionregistrationv1alpha1.MutatingAdmissionPolicy + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", metaName, kubernetes.UntypedArgs(obj), &res, opts...) + if err != nil { + return nil, err + } + return []resourceTuple{{Name: key, Resource: &res}}, nil + case "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding": + var res admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) + if err != nil { + return nil, err + } + return []resourceTuple{{Name: key, Resource: &res}}, nil case "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy": var res admissionregistrationv1alpha1.ValidatingAdmissionPolicy err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicy", metaName, kubernetes.UntypedArgs(obj), &res, opts...) @@ -760,6 +784,13 @@ func parseYamlObject(ctx *pulumi.Context, obj map[string]interface{}, transforma return nil, err } return []resourceTuple{{Name: key, Resource: &res}}, nil + case "coordination.k8s.io/v1alpha2/LeaseCandidate": + var res coordinationv1alpha2.LeaseCandidate + err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", metaName, kubernetes.UntypedArgs(obj), &res, opts...) + if err != nil { + return nil, err + } + return []resourceTuple{{Name: key, Resource: &res}}, nil case "coordination.k8s.io/v1beta1/Lease": var res coordinationv1beta1.Lease err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1beta1:Lease", metaName, kubernetes.UntypedArgs(obj), &res, opts...) @@ -1334,6 +1365,34 @@ func parseYamlObject(ctx *pulumi.Context, obj map[string]interface{}, transforma return nil, err } return []resourceTuple{{Name: key, Resource: &res}}, nil + case "resource.k8s.io/v1beta1/DeviceClass": + var res resourcev1beta1.DeviceClass + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:DeviceClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) + if err != nil { + return nil, err + } + return []resourceTuple{{Name: key, Resource: &res}}, nil + case "resource.k8s.io/v1beta1/ResourceClaim": + var res resourcev1beta1.ResourceClaim + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", metaName, kubernetes.UntypedArgs(obj), &res, opts...) + if err != nil { + return nil, err + } + return []resourceTuple{{Name: key, Resource: &res}}, nil + case "resource.k8s.io/v1beta1/ResourceClaimTemplate": + var res resourcev1beta1.ResourceClaimTemplate + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", metaName, kubernetes.UntypedArgs(obj), &res, opts...) + if err != nil { + return nil, err + } + return []resourceTuple{{Name: key, Resource: &res}}, nil + case "resource.k8s.io/v1beta1/ResourceSlice": + var res resourcev1beta1.ResourceSlice + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", metaName, kubernetes.UntypedArgs(obj), &res, opts...) + if err != nil { + return nil, err + } + return []resourceTuple{{Name: key, Resource: &res}}, nil case "scheduling.k8s.io/v1/PriorityClass": var res schedulingv1.PriorityClass err := ctx.RegisterResource("kubernetes:scheduling.k8s.io/v1:PriorityClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java index f5cc6eae01..1ee5e557e9 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java @@ -80,7 +80,7 @@ public Optional> policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -105,7 +105,7 @@ public Optional> policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -221,7 +221,7 @@ public Builder policyName(String policyName) { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -250,7 +250,7 @@ public Builder validationActions(@Nullable Output> validationAction * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -278,7 +278,7 @@ public Builder validationActions(List validationActions) { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java index ab02e433bd..1381833274 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java @@ -80,7 +80,7 @@ public Optional> policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -105,7 +105,7 @@ public Optional> policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -221,7 +221,7 @@ public Builder policyName(String policyName) { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -250,7 +250,7 @@ public Builder validationActions(@Nullable Output> validationAction * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -278,7 +278,7 @@ public Builder validationActions(List validationActions) { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/outputs/ValidatingAdmissionPolicyBindingSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/outputs/ValidatingAdmissionPolicyBindingSpec.java index 0fb58ef728..f92082883a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/outputs/ValidatingAdmissionPolicyBindingSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/outputs/ValidatingAdmissionPolicyBindingSpec.java @@ -42,7 +42,7 @@ public final class ValidatingAdmissionPolicyBindingSpec { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -88,7 +88,7 @@ public Optional policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java index fc4a090f41..511a98841a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java @@ -42,7 +42,7 @@ public final class ValidatingAdmissionPolicyBindingSpecPatch { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -88,7 +88,7 @@ public Optional policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.java new file mode 100644 index 0000000000..dd5613e0f8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.MutatingAdmissionPolicyArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutatingAdmissionPolicySpec; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + * + */ +@ResourceType(type="kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy") +public class MutatingAdmissionPolicy extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Export(name="metadata", refs={ObjectMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Output metadata() { + return this.metadata; + } + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + @Export(name="spec", refs={MutatingAdmissionPolicySpec.class}, tree="[0]") + private Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + public Output spec() { + return this.spec; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MutatingAdmissionPolicy(String name) { + this(name, MutatingAdmissionPolicyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MutatingAdmissionPolicy(String name, @Nullable MutatingAdmissionPolicyArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public MutatingAdmissionPolicy(String name, @Nullable MutatingAdmissionPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private MutatingAdmissionPolicy(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, null, makeResourceOptions(options, id)); + } + + private static MutatingAdmissionPolicyArgs makeArgs(@Nullable MutatingAdmissionPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? MutatingAdmissionPolicyArgs.builder() : MutatingAdmissionPolicyArgs.builder(args); + return builder + .apiVersion("admissionregistration.k8s.io/v1alpha1") + .kind("MutatingAdmissionPolicy") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static MutatingAdmissionPolicy get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MutatingAdmissionPolicy(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyArgs.java new file mode 100644 index 0000000000..0393d07916 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyArgs.java @@ -0,0 +1,199 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutatingAdmissionPolicySpecArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MutatingAdmissionPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyArgs Empty = new MutatingAdmissionPolicyArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private MutatingAdmissionPolicyArgs() {} + + private MutatingAdmissionPolicyArgs(MutatingAdmissionPolicyArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyArgs(); + } + + public Builder(MutatingAdmissionPolicyArgs defaults) { + $ = new MutatingAdmissionPolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder spec(MutatingAdmissionPolicySpecArgs spec) { + return spec(Output.of(spec)); + } + + public MutatingAdmissionPolicyArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.java new file mode 100644 index 0000000000..baff3a82d0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.java @@ -0,0 +1,142 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutatingAdmissionPolicyBindingSpec; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + * + * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + * + * Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + * + */ +@ResourceType(type="kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding") +public class MutatingAdmissionPolicyBinding extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Export(name="metadata", refs={ObjectMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Output metadata() { + return this.metadata; + } + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + @Export(name="spec", refs={MutatingAdmissionPolicyBindingSpec.class}, tree="[0]") + private Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + public Output spec() { + return this.spec; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MutatingAdmissionPolicyBinding(String name) { + this(name, MutatingAdmissionPolicyBindingArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MutatingAdmissionPolicyBinding(String name, @Nullable MutatingAdmissionPolicyBindingArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public MutatingAdmissionPolicyBinding(String name, @Nullable MutatingAdmissionPolicyBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private MutatingAdmissionPolicyBinding(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, null, makeResourceOptions(options, id)); + } + + private static MutatingAdmissionPolicyBindingArgs makeArgs(@Nullable MutatingAdmissionPolicyBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? MutatingAdmissionPolicyBindingArgs.builder() : MutatingAdmissionPolicyBindingArgs.builder(args); + return builder + .apiVersion("admissionregistration.k8s.io/v1alpha1") + .kind("MutatingAdmissionPolicyBinding") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static MutatingAdmissionPolicyBinding get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MutatingAdmissionPolicyBinding(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingArgs.java new file mode 100644 index 0000000000..fed8dd9a21 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingArgs.java @@ -0,0 +1,199 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutatingAdmissionPolicyBindingSpecArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MutatingAdmissionPolicyBindingArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyBindingArgs Empty = new MutatingAdmissionPolicyBindingArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private MutatingAdmissionPolicyBindingArgs() {} + + private MutatingAdmissionPolicyBindingArgs(MutatingAdmissionPolicyBindingArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyBindingArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyBindingArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyBindingArgs(); + } + + public Builder(MutatingAdmissionPolicyBindingArgs defaults) { + $ = new MutatingAdmissionPolicyBindingArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + * @return builder + * + */ + public Builder spec(MutatingAdmissionPolicyBindingSpecArgs spec) { + return spec(Output.of(spec)); + } + + public MutatingAdmissionPolicyBindingArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.java new file mode 100644 index 0000000000..ff59f3fa42 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.java @@ -0,0 +1,139 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingListArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutatingAdmissionPolicyBinding; +import com.pulumi.kubernetes.meta.v1.outputs.ListMeta; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. + * + */ +@ResourceType(type="kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList") +public class MutatingAdmissionPolicyBindingList extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * List of PolicyBinding. + * + */ + @Export(name="items", refs={List.class,MutatingAdmissionPolicyBinding.class}, tree="[0,1]") + private Output> items; + + /** + * @return List of PolicyBinding. + * + */ + public Output> items() { + return this.items; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + */ + @Export(name="metadata", refs={ListMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + */ + public Output metadata() { + return this.metadata; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MutatingAdmissionPolicyBindingList(String name) { + this(name, MutatingAdmissionPolicyBindingListArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MutatingAdmissionPolicyBindingList(String name, MutatingAdmissionPolicyBindingListArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public MutatingAdmissionPolicyBindingList(String name, MutatingAdmissionPolicyBindingListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private MutatingAdmissionPolicyBindingList(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList", name, null, makeResourceOptions(options, id)); + } + + private static MutatingAdmissionPolicyBindingListArgs makeArgs(MutatingAdmissionPolicyBindingListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? MutatingAdmissionPolicyBindingListArgs.builder() : MutatingAdmissionPolicyBindingListArgs.builder(args); + return builder + .apiVersion("admissionregistration.k8s.io/v1alpha1") + .kind("MutatingAdmissionPolicyBindingList") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static MutatingAdmissionPolicyBindingList get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MutatingAdmissionPolicyBindingList(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingListArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingListArgs.java new file mode 100644 index 0000000000..28ac682b0f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingListArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutatingAdmissionPolicyBindingArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ListMetaArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MutatingAdmissionPolicyBindingListArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyBindingListArgs Empty = new MutatingAdmissionPolicyBindingListArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * List of PolicyBinding. + * + */ + @Import(name="items", required=true) + private Output> items; + + /** + * @return List of PolicyBinding. + * + */ + public Output> items() { + return this.items; + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + private MutatingAdmissionPolicyBindingListArgs() {} + + private MutatingAdmissionPolicyBindingListArgs(MutatingAdmissionPolicyBindingListArgs $) { + this.apiVersion = $.apiVersion; + this.items = $.items; + this.kind = $.kind; + this.metadata = $.metadata; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyBindingListArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyBindingListArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyBindingListArgs(); + } + + public Builder(MutatingAdmissionPolicyBindingListArgs defaults) { + $ = new MutatingAdmissionPolicyBindingListArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param items List of PolicyBinding. + * + * @return builder + * + */ + public Builder items(Output> items) { + $.items = items; + return this; + } + + /** + * @param items List of PolicyBinding. + * + * @return builder + * + */ + public Builder items(List items) { + return items(Output.of(items)); + } + + /** + * @param items List of PolicyBinding. + * + * @return builder + * + */ + public Builder items(MutatingAdmissionPolicyBindingArgs... items) { + return items(List.of(items)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + * @return builder + * + */ + public Builder metadata(ListMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + public MutatingAdmissionPolicyBindingListArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + if ($.items == null) { + throw new MissingRequiredPropertyException("MutatingAdmissionPolicyBindingListArgs", "items"); + } + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.java new file mode 100644 index 0000000000..f70f259590 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.java @@ -0,0 +1,149 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingPatchArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutatingAdmissionPolicyBindingSpecPatch; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; +import java.lang.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + * + * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + * + * Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + * + */ +@ResourceType(type="kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch") +public class MutatingAdmissionPolicyBindingPatch extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output> apiVersion() { + return Codegen.optional(this.apiVersion); + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output> kind() { + return Codegen.optional(this.kind); + } + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Export(name="metadata", refs={ObjectMetaPatch.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Output> metadata() { + return Codegen.optional(this.metadata); + } + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + @Export(name="spec", refs={MutatingAdmissionPolicyBindingSpecPatch.class}, tree="[0]") + private Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + public Output> spec() { + return Codegen.optional(this.spec); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MutatingAdmissionPolicyBindingPatch(String name) { + this(name, MutatingAdmissionPolicyBindingPatchArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MutatingAdmissionPolicyBindingPatch(String name, @Nullable MutatingAdmissionPolicyBindingPatchArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public MutatingAdmissionPolicyBindingPatch(String name, @Nullable MutatingAdmissionPolicyBindingPatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private MutatingAdmissionPolicyBindingPatch(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch", name, null, makeResourceOptions(options, id)); + } + + private static MutatingAdmissionPolicyBindingPatchArgs makeArgs(@Nullable MutatingAdmissionPolicyBindingPatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? MutatingAdmissionPolicyBindingPatchArgs.builder() : MutatingAdmissionPolicyBindingPatchArgs.builder(args); + return builder + .apiVersion("admissionregistration.k8s.io/v1alpha1") + .kind("MutatingAdmissionPolicyBinding") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static MutatingAdmissionPolicyBindingPatch get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MutatingAdmissionPolicyBindingPatch(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatchArgs.java new file mode 100644 index 0000000000..058ebfba0e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatchArgs.java @@ -0,0 +1,199 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutatingAdmissionPolicyBindingSpecPatchArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MutatingAdmissionPolicyBindingPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyBindingPatchArgs Empty = new MutatingAdmissionPolicyBindingPatchArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private MutatingAdmissionPolicyBindingPatchArgs() {} + + private MutatingAdmissionPolicyBindingPatchArgs(MutatingAdmissionPolicyBindingPatchArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyBindingPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyBindingPatchArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyBindingPatchArgs(); + } + + public Builder(MutatingAdmissionPolicyBindingPatchArgs defaults) { + $ = new MutatingAdmissionPolicyBindingPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(ObjectMetaPatchArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + * @return builder + * + */ + public Builder spec(MutatingAdmissionPolicyBindingSpecPatchArgs spec) { + return spec(Output.of(spec)); + } + + public MutatingAdmissionPolicyBindingPatchArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.java new file mode 100644 index 0000000000..6e0311f81b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.java @@ -0,0 +1,139 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.MutatingAdmissionPolicyListArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutatingAdmissionPolicy; +import com.pulumi.kubernetes.meta.v1.outputs.ListMeta; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. + * + */ +@ResourceType(type="kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList") +public class MutatingAdmissionPolicyList extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * List of ValidatingAdmissionPolicy. + * + */ + @Export(name="items", refs={List.class,MutatingAdmissionPolicy.class}, tree="[0,1]") + private Output> items; + + /** + * @return List of ValidatingAdmissionPolicy. + * + */ + public Output> items() { + return this.items; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + */ + @Export(name="metadata", refs={ListMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + */ + public Output metadata() { + return this.metadata; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MutatingAdmissionPolicyList(String name) { + this(name, MutatingAdmissionPolicyListArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MutatingAdmissionPolicyList(String name, MutatingAdmissionPolicyListArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public MutatingAdmissionPolicyList(String name, MutatingAdmissionPolicyListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private MutatingAdmissionPolicyList(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList", name, null, makeResourceOptions(options, id)); + } + + private static MutatingAdmissionPolicyListArgs makeArgs(MutatingAdmissionPolicyListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? MutatingAdmissionPolicyListArgs.builder() : MutatingAdmissionPolicyListArgs.builder(args); + return builder + .apiVersion("admissionregistration.k8s.io/v1alpha1") + .kind("MutatingAdmissionPolicyList") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static MutatingAdmissionPolicyList get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MutatingAdmissionPolicyList(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyListArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyListArgs.java new file mode 100644 index 0000000000..8aea90f223 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyListArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutatingAdmissionPolicyArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ListMetaArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MutatingAdmissionPolicyListArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyListArgs Empty = new MutatingAdmissionPolicyListArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * List of ValidatingAdmissionPolicy. + * + */ + @Import(name="items", required=true) + private Output> items; + + /** + * @return List of ValidatingAdmissionPolicy. + * + */ + public Output> items() { + return this.items; + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + private MutatingAdmissionPolicyListArgs() {} + + private MutatingAdmissionPolicyListArgs(MutatingAdmissionPolicyListArgs $) { + this.apiVersion = $.apiVersion; + this.items = $.items; + this.kind = $.kind; + this.metadata = $.metadata; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyListArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyListArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyListArgs(); + } + + public Builder(MutatingAdmissionPolicyListArgs defaults) { + $ = new MutatingAdmissionPolicyListArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param items List of ValidatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder items(Output> items) { + $.items = items; + return this; + } + + /** + * @param items List of ValidatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder items(List items) { + return items(Output.of(items)); + } + + /** + * @param items List of ValidatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder items(MutatingAdmissionPolicyArgs... items) { + return items(List.of(items)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * + * @return builder + * + */ + public Builder metadata(ListMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + public MutatingAdmissionPolicyListArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + if ($.items == null) { + throw new MissingRequiredPropertyException("MutatingAdmissionPolicyListArgs", "items"); + } + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.java new file mode 100644 index 0000000000..71afbc70d3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.java @@ -0,0 +1,145 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.MutatingAdmissionPolicyPatchArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutatingAdmissionPolicySpecPatch; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; +import java.lang.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + * + */ +@ResourceType(type="kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch") +public class MutatingAdmissionPolicyPatch extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output> apiVersion() { + return Codegen.optional(this.apiVersion); + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output> kind() { + return Codegen.optional(this.kind); + } + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Export(name="metadata", refs={ObjectMetaPatch.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Output> metadata() { + return Codegen.optional(this.metadata); + } + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + @Export(name="spec", refs={MutatingAdmissionPolicySpecPatch.class}, tree="[0]") + private Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + public Output> spec() { + return Codegen.optional(this.spec); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MutatingAdmissionPolicyPatch(String name) { + this(name, MutatingAdmissionPolicyPatchArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MutatingAdmissionPolicyPatch(String name, @Nullable MutatingAdmissionPolicyPatchArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public MutatingAdmissionPolicyPatch(String name, @Nullable MutatingAdmissionPolicyPatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private MutatingAdmissionPolicyPatch(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch", name, null, makeResourceOptions(options, id)); + } + + private static MutatingAdmissionPolicyPatchArgs makeArgs(@Nullable MutatingAdmissionPolicyPatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? MutatingAdmissionPolicyPatchArgs.builder() : MutatingAdmissionPolicyPatchArgs.builder(args); + return builder + .apiVersion("admissionregistration.k8s.io/v1alpha1") + .kind("MutatingAdmissionPolicy") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static MutatingAdmissionPolicyPatch get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MutatingAdmissionPolicyPatch(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatchArgs.java new file mode 100644 index 0000000000..3b84a003f0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatchArgs.java @@ -0,0 +1,199 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutatingAdmissionPolicySpecPatchArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MutatingAdmissionPolicyPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyPatchArgs Empty = new MutatingAdmissionPolicyPatchArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private MutatingAdmissionPolicyPatchArgs() {} + + private MutatingAdmissionPolicyPatchArgs(MutatingAdmissionPolicyPatchArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyPatchArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyPatchArgs(); + } + + public Builder(MutatingAdmissionPolicyPatchArgs defaults) { + $ = new MutatingAdmissionPolicyPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(ObjectMetaPatchArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder spec(MutatingAdmissionPolicySpecPatchArgs spec) { + return spec(Output.of(spec)); + } + + public MutatingAdmissionPolicyPatchArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.java index 6181b0023f..9eb405cdc0 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.java @@ -19,10 +19,6 @@ /** * ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. * - * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - * - * The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. - * */ @ResourceType(type="kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBinding") public class ValidatingAdmissionPolicyBinding extends com.pulumi.resources.CustomResource { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.java index 85a9479561..bae3970afd 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.java @@ -26,10 +26,6 @@ * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. * ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. * - * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - * - * The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. - * */ @ResourceType(type="kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBindingPatch") public class ValidatingAdmissionPolicyBindingPatch extends com.pulumi.resources.CustomResource { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ApplyConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ApplyConfigurationArgs.java new file mode 100644 index 0000000000..adf74a999e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ApplyConfigurationArgs.java @@ -0,0 +1,195 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ApplyConfiguration defines the desired configuration values of an object. + * + */ +public final class ApplyConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final ApplyConfigurationArgs Empty = new ApplyConfigurationArgs(); + + /** + * expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + @Import(name="expression") + private @Nullable Output expression; + + /** + * @return expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + public Optional> expression() { + return Optional.ofNullable(this.expression); + } + + private ApplyConfigurationArgs() {} + + private ApplyConfigurationArgs(ApplyConfigurationArgs $) { + this.expression = $.expression; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApplyConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApplyConfigurationArgs $; + + public Builder() { + $ = new ApplyConfigurationArgs(); + } + + public Builder(ApplyConfigurationArgs defaults) { + $ = new ApplyConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param expression expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + * @return builder + * + */ + public Builder expression(@Nullable Output expression) { + $.expression = expression; + return this; + } + + /** + * @param expression expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + * @return builder + * + */ + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + public ApplyConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ApplyConfigurationPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ApplyConfigurationPatchArgs.java new file mode 100644 index 0000000000..ddbd208b42 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ApplyConfigurationPatchArgs.java @@ -0,0 +1,195 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ApplyConfiguration defines the desired configuration values of an object. + * + */ +public final class ApplyConfigurationPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final ApplyConfigurationPatchArgs Empty = new ApplyConfigurationPatchArgs(); + + /** + * expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + @Import(name="expression") + private @Nullable Output expression; + + /** + * @return expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + public Optional> expression() { + return Optional.ofNullable(this.expression); + } + + private ApplyConfigurationPatchArgs() {} + + private ApplyConfigurationPatchArgs(ApplyConfigurationPatchArgs $) { + this.expression = $.expression; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApplyConfigurationPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApplyConfigurationPatchArgs $; + + public Builder() { + $ = new ApplyConfigurationPatchArgs(); + } + + public Builder(ApplyConfigurationPatchArgs defaults) { + $ = new ApplyConfigurationPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param expression expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + * @return builder + * + */ + public Builder expression(@Nullable Output expression) { + $.expression = expression; + return this; + } + + /** + * @param expression expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + * @return builder + * + */ + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + public ApplyConfigurationPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/JSONPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/JSONPatchArgs.java new file mode 100644 index 0000000000..8f201d0994 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/JSONPatchArgs.java @@ -0,0 +1,299 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * JSONPatch defines a JSON Patch. + * + */ +public final class JSONPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final JSONPatchArgs Empty = new JSONPatchArgs(); + + /** + * expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + @Import(name="expression") + private @Nullable Output expression; + + /** + * @return expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + public Optional> expression() { + return Optional.ofNullable(this.expression); + } + + private JSONPatchArgs() {} + + private JSONPatchArgs(JSONPatchArgs $) { + this.expression = $.expression; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(JSONPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private JSONPatchArgs $; + + public Builder() { + $ = new JSONPatchArgs(); + } + + public Builder(JSONPatchArgs defaults) { + $ = new JSONPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param expression expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + * @return builder + * + */ + public Builder expression(@Nullable Output expression) { + $.expression = expression; + return this; + } + + /** + * @param expression expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + * @return builder + * + */ + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + public JSONPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/JSONPatchPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/JSONPatchPatchArgs.java new file mode 100644 index 0000000000..251c327e3d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/JSONPatchPatchArgs.java @@ -0,0 +1,299 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * JSONPatch defines a JSON Patch. + * + */ +public final class JSONPatchPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final JSONPatchPatchArgs Empty = new JSONPatchPatchArgs(); + + /** + * expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + @Import(name="expression") + private @Nullable Output expression; + + /** + * @return expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + public Optional> expression() { + return Optional.ofNullable(this.expression); + } + + private JSONPatchPatchArgs() {} + + private JSONPatchPatchArgs(JSONPatchPatchArgs $) { + this.expression = $.expression; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(JSONPatchPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private JSONPatchPatchArgs $; + + public Builder() { + $ = new JSONPatchPatchArgs(); + } + + public Builder(JSONPatchPatchArgs defaults) { + $ = new JSONPatchPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param expression expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + * @return builder + * + */ + public Builder expression(@Nullable Output expression) { + $.expression = expression; + return this; + } + + /** + * @param expression expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + * @return builder + * + */ + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + public JSONPatchPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyArgs.java new file mode 100644 index 0000000000..e16280ddf3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyArgs.java @@ -0,0 +1,203 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutatingAdmissionPolicySpecArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + * + */ +public final class MutatingAdmissionPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyArgs Empty = new MutatingAdmissionPolicyArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private MutatingAdmissionPolicyArgs() {} + + private MutatingAdmissionPolicyArgs(MutatingAdmissionPolicyArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyArgs(); + } + + public Builder(MutatingAdmissionPolicyArgs defaults) { + $ = new MutatingAdmissionPolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicy. + * + * @return builder + * + */ + public Builder spec(MutatingAdmissionPolicySpecArgs spec) { + return spec(Output.of(spec)); + } + + public MutatingAdmissionPolicyArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingArgs.java new file mode 100644 index 0000000000..2dd18e5caf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingArgs.java @@ -0,0 +1,207 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutatingAdmissionPolicyBindingSpecArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + * + * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + * + * Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + * + */ +public final class MutatingAdmissionPolicyBindingArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyBindingArgs Empty = new MutatingAdmissionPolicyBindingArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private MutatingAdmissionPolicyBindingArgs() {} + + private MutatingAdmissionPolicyBindingArgs(MutatingAdmissionPolicyBindingArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyBindingArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyBindingArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyBindingArgs(); + } + + public Builder(MutatingAdmissionPolicyBindingArgs defaults) { + $ = new MutatingAdmissionPolicyBindingArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + * @return builder + * + */ + public Builder spec(MutatingAdmissionPolicyBindingSpecArgs spec) { + return spec(Output.of(spec)); + } + + public MutatingAdmissionPolicyBindingArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingSpecArgs.java new file mode 100644 index 0000000000..837b6c02b4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingSpecArgs.java @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MatchResourcesArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.ParamRefArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + * + */ +public final class MutatingAdmissionPolicyBindingSpecArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyBindingSpecArgs Empty = new MutatingAdmissionPolicyBindingSpecArgs(); + + /** + * matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + */ + @Import(name="matchResources") + private @Nullable Output matchResources; + + /** + * @return matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + */ + public Optional> matchResources() { + return Optional.ofNullable(this.matchResources); + } + + /** + * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + */ + @Import(name="paramRef") + private @Nullable Output paramRef; + + /** + * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + */ + public Optional> paramRef() { + return Optional.ofNullable(this.paramRef); + } + + /** + * policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + */ + @Import(name="policyName") + private @Nullable Output policyName; + + /** + * @return policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + */ + public Optional> policyName() { + return Optional.ofNullable(this.policyName); + } + + private MutatingAdmissionPolicyBindingSpecArgs() {} + + private MutatingAdmissionPolicyBindingSpecArgs(MutatingAdmissionPolicyBindingSpecArgs $) { + this.matchResources = $.matchResources; + this.paramRef = $.paramRef; + this.policyName = $.policyName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyBindingSpecArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyBindingSpecArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyBindingSpecArgs(); + } + + public Builder(MutatingAdmissionPolicyBindingSpecArgs defaults) { + $ = new MutatingAdmissionPolicyBindingSpecArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param matchResources matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + * @return builder + * + */ + public Builder matchResources(@Nullable Output matchResources) { + $.matchResources = matchResources; + return this; + } + + /** + * @param matchResources matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + * @return builder + * + */ + public Builder matchResources(MatchResourcesArgs matchResources) { + return matchResources(Output.of(matchResources)); + } + + /** + * @param paramRef paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + * @return builder + * + */ + public Builder paramRef(@Nullable Output paramRef) { + $.paramRef = paramRef; + return this; + } + + /** + * @param paramRef paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + * @return builder + * + */ + public Builder paramRef(ParamRefArgs paramRef) { + return paramRef(Output.of(paramRef)); + } + + /** + * @param policyName policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + * @return builder + * + */ + public Builder policyName(@Nullable Output policyName) { + $.policyName = policyName; + return this; + } + + /** + * @param policyName policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + * @return builder + * + */ + public Builder policyName(String policyName) { + return policyName(Output.of(policyName)); + } + + public MutatingAdmissionPolicyBindingSpecArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingSpecPatchArgs.java new file mode 100644 index 0000000000..3f492acb8d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicyBindingSpecPatchArgs.java @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MatchResourcesPatchArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.ParamRefPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + * + */ +public final class MutatingAdmissionPolicyBindingSpecPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicyBindingSpecPatchArgs Empty = new MutatingAdmissionPolicyBindingSpecPatchArgs(); + + /** + * matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + */ + @Import(name="matchResources") + private @Nullable Output matchResources; + + /** + * @return matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + */ + public Optional> matchResources() { + return Optional.ofNullable(this.matchResources); + } + + /** + * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + */ + @Import(name="paramRef") + private @Nullable Output paramRef; + + /** + * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + */ + public Optional> paramRef() { + return Optional.ofNullable(this.paramRef); + } + + /** + * policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + */ + @Import(name="policyName") + private @Nullable Output policyName; + + /** + * @return policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + */ + public Optional> policyName() { + return Optional.ofNullable(this.policyName); + } + + private MutatingAdmissionPolicyBindingSpecPatchArgs() {} + + private MutatingAdmissionPolicyBindingSpecPatchArgs(MutatingAdmissionPolicyBindingSpecPatchArgs $) { + this.matchResources = $.matchResources; + this.paramRef = $.paramRef; + this.policyName = $.policyName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicyBindingSpecPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicyBindingSpecPatchArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicyBindingSpecPatchArgs(); + } + + public Builder(MutatingAdmissionPolicyBindingSpecPatchArgs defaults) { + $ = new MutatingAdmissionPolicyBindingSpecPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param matchResources matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + * @return builder + * + */ + public Builder matchResources(@Nullable Output matchResources) { + $.matchResources = matchResources; + return this; + } + + /** + * @param matchResources matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + * @return builder + * + */ + public Builder matchResources(MatchResourcesPatchArgs matchResources) { + return matchResources(Output.of(matchResources)); + } + + /** + * @param paramRef paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + * @return builder + * + */ + public Builder paramRef(@Nullable Output paramRef) { + $.paramRef = paramRef; + return this; + } + + /** + * @param paramRef paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + * @return builder + * + */ + public Builder paramRef(ParamRefPatchArgs paramRef) { + return paramRef(Output.of(paramRef)); + } + + /** + * @param policyName policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + * @return builder + * + */ + public Builder policyName(@Nullable Output policyName) { + $.policyName = policyName; + return this; + } + + /** + * @param policyName policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + * @return builder + * + */ + public Builder policyName(String policyName) { + return policyName(Output.of(policyName)); + } + + public MutatingAdmissionPolicyBindingSpecPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicySpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicySpecArgs.java new file mode 100644 index 0000000000..fa312ff340 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicySpecArgs.java @@ -0,0 +1,440 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MatchConditionArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MatchResourcesArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutationArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.ParamKindArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.VariableArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + * + */ +public final class MutatingAdmissionPolicySpecArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicySpecArgs Empty = new MutatingAdmissionPolicySpecArgs(); + + /** + * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + */ + @Import(name="failurePolicy") + private @Nullable Output failurePolicy; + + /** + * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + */ + public Optional> failurePolicy() { + return Optional.ofNullable(this.failurePolicy); + } + + /** + * matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + */ + @Import(name="matchConditions") + private @Nullable Output> matchConditions; + + /** + * @return matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + */ + public Optional>> matchConditions() { + return Optional.ofNullable(this.matchConditions); + } + + /** + * matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + */ + @Import(name="matchConstraints") + private @Nullable Output matchConstraints; + + /** + * @return matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + */ + public Optional> matchConstraints() { + return Optional.ofNullable(this.matchConstraints); + } + + /** + * mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + */ + @Import(name="mutations") + private @Nullable Output> mutations; + + /** + * @return mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + */ + public Optional>> mutations() { + return Optional.ofNullable(this.mutations); + } + + /** + * paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + */ + @Import(name="paramKind") + private @Nullable Output paramKind; + + /** + * @return paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + */ + public Optional> paramKind() { + return Optional.ofNullable(this.paramKind); + } + + /** + * reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + */ + @Import(name="reinvocationPolicy") + private @Nullable Output reinvocationPolicy; + + /** + * @return reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + */ + public Optional> reinvocationPolicy() { + return Optional.ofNullable(this.reinvocationPolicy); + } + + /** + * variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + */ + @Import(name="variables") + private @Nullable Output> variables; + + /** + * @return variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + */ + public Optional>> variables() { + return Optional.ofNullable(this.variables); + } + + private MutatingAdmissionPolicySpecArgs() {} + + private MutatingAdmissionPolicySpecArgs(MutatingAdmissionPolicySpecArgs $) { + this.failurePolicy = $.failurePolicy; + this.matchConditions = $.matchConditions; + this.matchConstraints = $.matchConstraints; + this.mutations = $.mutations; + this.paramKind = $.paramKind; + this.reinvocationPolicy = $.reinvocationPolicy; + this.variables = $.variables; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicySpecArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicySpecArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicySpecArgs(); + } + + public Builder(MutatingAdmissionPolicySpecArgs defaults) { + $ = new MutatingAdmissionPolicySpecArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param failurePolicy failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + * @return builder + * + */ + public Builder failurePolicy(@Nullable Output failurePolicy) { + $.failurePolicy = failurePolicy; + return this; + } + + /** + * @param failurePolicy failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + * @return builder + * + */ + public Builder failurePolicy(String failurePolicy) { + return failurePolicy(Output.of(failurePolicy)); + } + + /** + * @param matchConditions matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + * @return builder + * + */ + public Builder matchConditions(@Nullable Output> matchConditions) { + $.matchConditions = matchConditions; + return this; + } + + /** + * @param matchConditions matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + * @return builder + * + */ + public Builder matchConditions(List matchConditions) { + return matchConditions(Output.of(matchConditions)); + } + + /** + * @param matchConditions matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + * @return builder + * + */ + public Builder matchConditions(MatchConditionArgs... matchConditions) { + return matchConditions(List.of(matchConditions)); + } + + /** + * @param matchConstraints matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + * @return builder + * + */ + public Builder matchConstraints(@Nullable Output matchConstraints) { + $.matchConstraints = matchConstraints; + return this; + } + + /** + * @param matchConstraints matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + * @return builder + * + */ + public Builder matchConstraints(MatchResourcesArgs matchConstraints) { + return matchConstraints(Output.of(matchConstraints)); + } + + /** + * @param mutations mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + * @return builder + * + */ + public Builder mutations(@Nullable Output> mutations) { + $.mutations = mutations; + return this; + } + + /** + * @param mutations mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + * @return builder + * + */ + public Builder mutations(List mutations) { + return mutations(Output.of(mutations)); + } + + /** + * @param mutations mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + * @return builder + * + */ + public Builder mutations(MutationArgs... mutations) { + return mutations(List.of(mutations)); + } + + /** + * @param paramKind paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + * @return builder + * + */ + public Builder paramKind(@Nullable Output paramKind) { + $.paramKind = paramKind; + return this; + } + + /** + * @param paramKind paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + * @return builder + * + */ + public Builder paramKind(ParamKindArgs paramKind) { + return paramKind(Output.of(paramKind)); + } + + /** + * @param reinvocationPolicy reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + * @return builder + * + */ + public Builder reinvocationPolicy(@Nullable Output reinvocationPolicy) { + $.reinvocationPolicy = reinvocationPolicy; + return this; + } + + /** + * @param reinvocationPolicy reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + * @return builder + * + */ + public Builder reinvocationPolicy(String reinvocationPolicy) { + return reinvocationPolicy(Output.of(reinvocationPolicy)); + } + + /** + * @param variables variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + * @return builder + * + */ + public Builder variables(@Nullable Output> variables) { + $.variables = variables; + return this; + } + + /** + * @param variables variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + * @return builder + * + */ + public Builder variables(List variables) { + return variables(Output.of(variables)); + } + + /** + * @param variables variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + * @return builder + * + */ + public Builder variables(VariableArgs... variables) { + return variables(List.of(variables)); + } + + public MutatingAdmissionPolicySpecArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicySpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicySpecPatchArgs.java new file mode 100644 index 0000000000..90bf79b4a1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutatingAdmissionPolicySpecPatchArgs.java @@ -0,0 +1,440 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MatchConditionPatchArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MatchResourcesPatchArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.MutationPatchArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.ParamKindPatchArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.VariablePatchArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + * + */ +public final class MutatingAdmissionPolicySpecPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutatingAdmissionPolicySpecPatchArgs Empty = new MutatingAdmissionPolicySpecPatchArgs(); + + /** + * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + */ + @Import(name="failurePolicy") + private @Nullable Output failurePolicy; + + /** + * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + */ + public Optional> failurePolicy() { + return Optional.ofNullable(this.failurePolicy); + } + + /** + * matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + */ + @Import(name="matchConditions") + private @Nullable Output> matchConditions; + + /** + * @return matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + */ + public Optional>> matchConditions() { + return Optional.ofNullable(this.matchConditions); + } + + /** + * matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + */ + @Import(name="matchConstraints") + private @Nullable Output matchConstraints; + + /** + * @return matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + */ + public Optional> matchConstraints() { + return Optional.ofNullable(this.matchConstraints); + } + + /** + * mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + */ + @Import(name="mutations") + private @Nullable Output> mutations; + + /** + * @return mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + */ + public Optional>> mutations() { + return Optional.ofNullable(this.mutations); + } + + /** + * paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + */ + @Import(name="paramKind") + private @Nullable Output paramKind; + + /** + * @return paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + */ + public Optional> paramKind() { + return Optional.ofNullable(this.paramKind); + } + + /** + * reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + */ + @Import(name="reinvocationPolicy") + private @Nullable Output reinvocationPolicy; + + /** + * @return reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + */ + public Optional> reinvocationPolicy() { + return Optional.ofNullable(this.reinvocationPolicy); + } + + /** + * variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + */ + @Import(name="variables") + private @Nullable Output> variables; + + /** + * @return variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + */ + public Optional>> variables() { + return Optional.ofNullable(this.variables); + } + + private MutatingAdmissionPolicySpecPatchArgs() {} + + private MutatingAdmissionPolicySpecPatchArgs(MutatingAdmissionPolicySpecPatchArgs $) { + this.failurePolicy = $.failurePolicy; + this.matchConditions = $.matchConditions; + this.matchConstraints = $.matchConstraints; + this.mutations = $.mutations; + this.paramKind = $.paramKind; + this.reinvocationPolicy = $.reinvocationPolicy; + this.variables = $.variables; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutatingAdmissionPolicySpecPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutatingAdmissionPolicySpecPatchArgs $; + + public Builder() { + $ = new MutatingAdmissionPolicySpecPatchArgs(); + } + + public Builder(MutatingAdmissionPolicySpecPatchArgs defaults) { + $ = new MutatingAdmissionPolicySpecPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param failurePolicy failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + * @return builder + * + */ + public Builder failurePolicy(@Nullable Output failurePolicy) { + $.failurePolicy = failurePolicy; + return this; + } + + /** + * @param failurePolicy failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + * @return builder + * + */ + public Builder failurePolicy(String failurePolicy) { + return failurePolicy(Output.of(failurePolicy)); + } + + /** + * @param matchConditions matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + * @return builder + * + */ + public Builder matchConditions(@Nullable Output> matchConditions) { + $.matchConditions = matchConditions; + return this; + } + + /** + * @param matchConditions matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + * @return builder + * + */ + public Builder matchConditions(List matchConditions) { + return matchConditions(Output.of(matchConditions)); + } + + /** + * @param matchConditions matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + * @return builder + * + */ + public Builder matchConditions(MatchConditionPatchArgs... matchConditions) { + return matchConditions(List.of(matchConditions)); + } + + /** + * @param matchConstraints matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + * @return builder + * + */ + public Builder matchConstraints(@Nullable Output matchConstraints) { + $.matchConstraints = matchConstraints; + return this; + } + + /** + * @param matchConstraints matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + * @return builder + * + */ + public Builder matchConstraints(MatchResourcesPatchArgs matchConstraints) { + return matchConstraints(Output.of(matchConstraints)); + } + + /** + * @param mutations mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + * @return builder + * + */ + public Builder mutations(@Nullable Output> mutations) { + $.mutations = mutations; + return this; + } + + /** + * @param mutations mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + * @return builder + * + */ + public Builder mutations(List mutations) { + return mutations(Output.of(mutations)); + } + + /** + * @param mutations mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + * @return builder + * + */ + public Builder mutations(MutationPatchArgs... mutations) { + return mutations(List.of(mutations)); + } + + /** + * @param paramKind paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + * @return builder + * + */ + public Builder paramKind(@Nullable Output paramKind) { + $.paramKind = paramKind; + return this; + } + + /** + * @param paramKind paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + * @return builder + * + */ + public Builder paramKind(ParamKindPatchArgs paramKind) { + return paramKind(Output.of(paramKind)); + } + + /** + * @param reinvocationPolicy reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + * @return builder + * + */ + public Builder reinvocationPolicy(@Nullable Output reinvocationPolicy) { + $.reinvocationPolicy = reinvocationPolicy; + return this; + } + + /** + * @param reinvocationPolicy reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + * @return builder + * + */ + public Builder reinvocationPolicy(String reinvocationPolicy) { + return reinvocationPolicy(Output.of(reinvocationPolicy)); + } + + /** + * @param variables variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + * @return builder + * + */ + public Builder variables(@Nullable Output> variables) { + $.variables = variables; + return this; + } + + /** + * @param variables variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + * @return builder + * + */ + public Builder variables(List variables) { + return variables(Output.of(variables)); + } + + /** + * @param variables variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + * @return builder + * + */ + public Builder variables(VariablePatchArgs... variables) { + return variables(List.of(variables)); + } + + public MutatingAdmissionPolicySpecPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutationArgs.java new file mode 100644 index 0000000000..8787a3f3bf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutationArgs.java @@ -0,0 +1,167 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.ApplyConfigurationArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.JSONPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * Mutation specifies the CEL expression which is used to apply the Mutation. + * + */ +public final class MutationArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutationArgs Empty = new MutationArgs(); + + /** + * applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + */ + @Import(name="applyConfiguration") + private @Nullable Output applyConfiguration; + + /** + * @return applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + */ + public Optional> applyConfiguration() { + return Optional.ofNullable(this.applyConfiguration); + } + + /** + * jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + */ + @Import(name="jsonPatch") + private @Nullable Output jsonPatch; + + /** + * @return jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + */ + public Optional> jsonPatch() { + return Optional.ofNullable(this.jsonPatch); + } + + /** + * patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + */ + @Import(name="patchType", required=true) + private Output patchType; + + /** + * @return patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + */ + public Output patchType() { + return this.patchType; + } + + private MutationArgs() {} + + private MutationArgs(MutationArgs $) { + this.applyConfiguration = $.applyConfiguration; + this.jsonPatch = $.jsonPatch; + this.patchType = $.patchType; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutationArgs $; + + public Builder() { + $ = new MutationArgs(); + } + + public Builder(MutationArgs defaults) { + $ = new MutationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param applyConfiguration applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + * @return builder + * + */ + public Builder applyConfiguration(@Nullable Output applyConfiguration) { + $.applyConfiguration = applyConfiguration; + return this; + } + + /** + * @param applyConfiguration applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + * @return builder + * + */ + public Builder applyConfiguration(ApplyConfigurationArgs applyConfiguration) { + return applyConfiguration(Output.of(applyConfiguration)); + } + + /** + * @param jsonPatch jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + * @return builder + * + */ + public Builder jsonPatch(@Nullable Output jsonPatch) { + $.jsonPatch = jsonPatch; + return this; + } + + /** + * @param jsonPatch jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + * @return builder + * + */ + public Builder jsonPatch(JSONPatchArgs jsonPatch) { + return jsonPatch(Output.of(jsonPatch)); + } + + /** + * @param patchType patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + * @return builder + * + */ + public Builder patchType(Output patchType) { + $.patchType = patchType; + return this; + } + + /** + * @param patchType patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + * @return builder + * + */ + public Builder patchType(String patchType) { + return patchType(Output.of(patchType)); + } + + public MutationArgs build() { + if ($.patchType == null) { + throw new MissingRequiredPropertyException("MutationArgs", "patchType"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutationPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutationPatchArgs.java new file mode 100644 index 0000000000..8d4f569259 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/MutationPatchArgs.java @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.ApplyConfigurationPatchArgs; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.inputs.JSONPatchPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * Mutation specifies the CEL expression which is used to apply the Mutation. + * + */ +public final class MutationPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final MutationPatchArgs Empty = new MutationPatchArgs(); + + /** + * applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + */ + @Import(name="applyConfiguration") + private @Nullable Output applyConfiguration; + + /** + * @return applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + */ + public Optional> applyConfiguration() { + return Optional.ofNullable(this.applyConfiguration); + } + + /** + * jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + */ + @Import(name="jsonPatch") + private @Nullable Output jsonPatch; + + /** + * @return jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + */ + public Optional> jsonPatch() { + return Optional.ofNullable(this.jsonPatch); + } + + /** + * patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + */ + @Import(name="patchType") + private @Nullable Output patchType; + + /** + * @return patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + */ + public Optional> patchType() { + return Optional.ofNullable(this.patchType); + } + + private MutationPatchArgs() {} + + private MutationPatchArgs(MutationPatchArgs $) { + this.applyConfiguration = $.applyConfiguration; + this.jsonPatch = $.jsonPatch; + this.patchType = $.patchType; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MutationPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MutationPatchArgs $; + + public Builder() { + $ = new MutationPatchArgs(); + } + + public Builder(MutationPatchArgs defaults) { + $ = new MutationPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param applyConfiguration applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + * @return builder + * + */ + public Builder applyConfiguration(@Nullable Output applyConfiguration) { + $.applyConfiguration = applyConfiguration; + return this; + } + + /** + * @param applyConfiguration applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + * @return builder + * + */ + public Builder applyConfiguration(ApplyConfigurationPatchArgs applyConfiguration) { + return applyConfiguration(Output.of(applyConfiguration)); + } + + /** + * @param jsonPatch jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + * @return builder + * + */ + public Builder jsonPatch(@Nullable Output jsonPatch) { + $.jsonPatch = jsonPatch; + return this; + } + + /** + * @param jsonPatch jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + * @return builder + * + */ + public Builder jsonPatch(JSONPatchPatchArgs jsonPatch) { + return jsonPatch(Output.of(jsonPatch)); + } + + /** + * @param patchType patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + * @return builder + * + */ + public Builder patchType(@Nullable Output patchType) { + $.patchType = patchType; + return this; + } + + /** + * @param patchType patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + * @return builder + * + */ + public Builder patchType(String patchType) { + return patchType(Output.of(patchType)); + } + + public MutationPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingArgs.java index b2352e0859..535d7c5835 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingArgs.java @@ -17,10 +17,6 @@ /** * ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. * - * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - * - * The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. - * */ public final class ValidatingAdmissionPolicyBindingArgs extends com.pulumi.resources.ResourceArgs { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java index a034c61f9e..c442cc77ab 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java @@ -38,14 +38,14 @@ public Optional> matchResources() { } /** - * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * */ @Import(name="paramRef") private @Nullable Output paramRef; /** - * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @return ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * */ public Optional> paramRef() { @@ -167,7 +167,7 @@ public Builder matchResources(MatchResourcesArgs matchResources) { } /** - * @param paramRef paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @param paramRef ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * * @return builder * @@ -178,7 +178,7 @@ public Builder paramRef(@Nullable Output paramRef) { } /** - * @param paramRef paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @param paramRef ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java index 2badce36d0..34b041e498 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java @@ -38,14 +38,14 @@ public Optional> matchResources() { } /** - * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * */ @Import(name="paramRef") private @Nullable Output paramRef; /** - * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @return ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * */ public Optional> paramRef() { @@ -167,7 +167,7 @@ public Builder matchResources(MatchResourcesPatchArgs matchResources) { } /** - * @param paramRef paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @param paramRef ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * * @return builder * @@ -178,7 +178,7 @@ public Builder paramRef(@Nullable Output paramRef) { } /** - * @param paramRef paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @param paramRef ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicySpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicySpecArgs.java index 5fce425b41..e63df0ebbb 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicySpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicySpecArgs.java @@ -43,30 +43,14 @@ public Optional>> auditAnnotations() { } /** - * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * */ @Import(name="failurePolicy") private @Nullable Output failurePolicy; /** - * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @return FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * */ public Optional> failurePolicy() { @@ -137,14 +121,14 @@ public Optional> paramKind() { } /** - * Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * */ @Import(name="validations", required=true) private Output> validations; /** - * @return Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @return Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * */ public Output> validations() { @@ -232,15 +216,7 @@ public Builder auditAnnotations(AuditAnnotationArgs... auditAnnotations) { } /** - * @param failurePolicy failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @param failurePolicy FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * * @return builder * @@ -251,15 +227,7 @@ public Builder failurePolicy(@Nullable Output failurePolicy) { } /** - * @param failurePolicy failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @param failurePolicy FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * * @return builder * @@ -369,7 +337,7 @@ public Builder paramKind(ParamKindArgs paramKind) { } /** - * @param validations Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @param validations Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * * @return builder * @@ -380,7 +348,7 @@ public Builder validations(Output> validations) { } /** - * @param validations Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @param validations Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * * @return builder * @@ -390,7 +358,7 @@ public Builder validations(List validations) { } /** - * @param validations Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @param validations Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicySpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicySpecPatchArgs.java index 6aaff4962e..9c71171a62 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicySpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidatingAdmissionPolicySpecPatchArgs.java @@ -42,30 +42,14 @@ public Optional>> auditAnnotations() { } /** - * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * */ @Import(name="failurePolicy") private @Nullable Output failurePolicy; /** - * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @return FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * */ public Optional> failurePolicy() { @@ -136,14 +120,14 @@ public Optional> paramKind() { } /** - * Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * */ @Import(name="validations") private @Nullable Output> validations; /** - * @return Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @return Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * */ public Optional>> validations() { @@ -231,15 +215,7 @@ public Builder auditAnnotations(AuditAnnotationPatchArgs... auditAnnotations) { } /** - * @param failurePolicy failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @param failurePolicy FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * * @return builder * @@ -250,15 +226,7 @@ public Builder failurePolicy(@Nullable Output failurePolicy) { } /** - * @param failurePolicy failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @param failurePolicy FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * * @return builder * @@ -368,7 +336,7 @@ public Builder paramKind(ParamKindPatchArgs paramKind) { } /** - * @param validations Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @param validations Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * * @return builder * @@ -379,7 +347,7 @@ public Builder validations(@Nullable Output> validatio } /** - * @param validations Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @param validations Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * * @return builder * @@ -389,7 +357,7 @@ public Builder validations(List validations) { } /** - * @param validations Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @param validations Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidationArgs.java index 9c105f57ca..2e138d000f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidationArgs.java @@ -21,14 +21,9 @@ public final class ValidationArgs extends com.pulumi.resources.ResourceArgs { public static final ValidationArgs Empty = new ValidationArgs(); /** - * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -53,14 +48,9 @@ public final class ValidationArgs extends com.pulumi.resources.ResourceArgs { private Output expression; /** - * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -158,14 +148,9 @@ public Builder(ValidationArgs defaults) { } /** - * @param expression Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * @param expression Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -194,14 +179,9 @@ public Builder expression(Output expression) { } /** - * @param expression Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * @param expression Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidationPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidationPatchArgs.java index a0a400db94..d697fb41ae 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidationPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/inputs/ValidationPatchArgs.java @@ -20,14 +20,9 @@ public final class ValidationPatchArgs extends com.pulumi.resources.ResourceArgs public static final ValidationPatchArgs Empty = new ValidationPatchArgs(); /** - * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -52,14 +47,9 @@ public final class ValidationPatchArgs extends com.pulumi.resources.ResourceArgs private @Nullable Output expression; /** - * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -157,14 +147,9 @@ public Builder(ValidationPatchArgs defaults) { } /** - * @param expression Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * @param expression Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -193,14 +178,9 @@ public Builder expression(@Nullable Output expression) { } /** - * @param expression Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * @param expression Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ApplyConfiguration.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ApplyConfiguration.java new file mode 100644 index 0000000000..8ac68ee956 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ApplyConfiguration.java @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ApplyConfiguration { + /** + * @return expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + private @Nullable String expression; + + private ApplyConfiguration() {} + /** + * @return expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + public Optional expression() { + return Optional.ofNullable(this.expression); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ApplyConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String expression; + public Builder() {} + public Builder(ApplyConfiguration defaults) { + Objects.requireNonNull(defaults); + this.expression = defaults.expression; + } + + @CustomType.Setter + public Builder expression(@Nullable String expression) { + + this.expression = expression; + return this; + } + public ApplyConfiguration build() { + final var _resultValue = new ApplyConfiguration(); + _resultValue.expression = expression; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ApplyConfigurationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ApplyConfigurationPatch.java new file mode 100644 index 0000000000..16fa7d1c87 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ApplyConfigurationPatch.java @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ApplyConfigurationPatch { + /** + * @return expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + private @Nullable String expression; + + private ApplyConfigurationPatch() {} + /** + * @return expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + public Optional expression() { + return Optional.ofNullable(this.expression); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ApplyConfigurationPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String expression; + public Builder() {} + public Builder(ApplyConfigurationPatch defaults) { + Objects.requireNonNull(defaults); + this.expression = defaults.expression; + } + + @CustomType.Setter + public Builder expression(@Nullable String expression) { + + this.expression = expression; + return this; + } + public ApplyConfigurationPatch build() { + final var _resultValue = new ApplyConfigurationPatch(); + _resultValue.expression = expression; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/JSONPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/JSONPatch.java new file mode 100644 index 0000000000..80a9d393a4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/JSONPatch.java @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class JSONPatch { + /** + * @return expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + private @Nullable String expression; + + private JSONPatch() {} + /** + * @return expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + public Optional expression() { + return Optional.ofNullable(this.expression); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(JSONPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String expression; + public Builder() {} + public Builder(JSONPatch defaults) { + Objects.requireNonNull(defaults); + this.expression = defaults.expression; + } + + @CustomType.Setter + public Builder expression(@Nullable String expression) { + + this.expression = expression; + return this; + } + public JSONPatch build() { + final var _resultValue = new JSONPatch(); + _resultValue.expression = expression; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/JSONPatchPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/JSONPatchPatch.java new file mode 100644 index 0000000000..a82d99e770 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/JSONPatchPatch.java @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class JSONPatchPatch { + /** + * @return expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + private @Nullable String expression; + + private JSONPatchPatch() {} + /** + * @return expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + * + */ + public Optional expression() { + return Optional.ofNullable(this.expression); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(JSONPatchPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String expression; + public Builder() {} + public Builder(JSONPatchPatch defaults) { + Objects.requireNonNull(defaults); + this.expression = defaults.expression; + } + + @CustomType.Setter + public Builder expression(@Nullable String expression) { + + this.expression = expression; + return this; + } + public JSONPatchPatch build() { + final var _resultValue = new JSONPatchPatch(); + _resultValue.expression = expression; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicy.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicy.java new file mode 100644 index 0000000000..76ec36b374 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicy.java @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutatingAdmissionPolicySpec; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MutatingAdmissionPolicy { + /** + * @return 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 + * + */ + private @Nullable String apiVersion; + /** + * @return 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 + * + */ + private @Nullable String kind; + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + private @Nullable MutatingAdmissionPolicySpec spec; + + private MutatingAdmissionPolicy() {} + /** + * @return 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 + * + */ + public Optional apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + /** + * @return 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 + * + */ + public Optional kind() { + return Optional.ofNullable(this.kind); + } + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicy. + * + */ + public Optional spec() { + return Optional.ofNullable(this.spec); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MutatingAdmissionPolicy defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiVersion; + private @Nullable String kind; + private @Nullable ObjectMeta metadata; + private @Nullable MutatingAdmissionPolicySpec spec; + public Builder() {} + public Builder(MutatingAdmissionPolicy defaults) { + Objects.requireNonNull(defaults); + this.apiVersion = defaults.apiVersion; + this.kind = defaults.kind; + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder apiVersion(@Nullable String apiVersion) { + + this.apiVersion = apiVersion; + return this; + } + @CustomType.Setter + public Builder kind(@Nullable String kind) { + + this.kind = kind; + return this; + } + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(@Nullable MutatingAdmissionPolicySpec spec) { + + this.spec = spec; + return this; + } + public MutatingAdmissionPolicy build() { + final var _resultValue = new MutatingAdmissionPolicy(); + _resultValue.apiVersion = apiVersion; + _resultValue.kind = kind; + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBinding.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBinding.java new file mode 100644 index 0000000000..23289d635f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBinding.java @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutatingAdmissionPolicyBindingSpec; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MutatingAdmissionPolicyBinding { + /** + * @return 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 + * + */ + private @Nullable String apiVersion; + /** + * @return 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 + * + */ + private @Nullable String kind; + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + private @Nullable MutatingAdmissionPolicyBindingSpec spec; + + private MutatingAdmissionPolicyBinding() {} + /** + * @return 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 + * + */ + public Optional apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + /** + * @return 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 + * + */ + public Optional kind() { + return Optional.ofNullable(this.kind); + } + /** + * @return Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + * + */ + public Optional spec() { + return Optional.ofNullable(this.spec); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MutatingAdmissionPolicyBinding defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiVersion; + private @Nullable String kind; + private @Nullable ObjectMeta metadata; + private @Nullable MutatingAdmissionPolicyBindingSpec spec; + public Builder() {} + public Builder(MutatingAdmissionPolicyBinding defaults) { + Objects.requireNonNull(defaults); + this.apiVersion = defaults.apiVersion; + this.kind = defaults.kind; + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder apiVersion(@Nullable String apiVersion) { + + this.apiVersion = apiVersion; + return this; + } + @CustomType.Setter + public Builder kind(@Nullable String kind) { + + this.kind = kind; + return this; + } + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(@Nullable MutatingAdmissionPolicyBindingSpec spec) { + + this.spec = spec; + return this; + } + public MutatingAdmissionPolicyBinding build() { + final var _resultValue = new MutatingAdmissionPolicyBinding(); + _resultValue.apiVersion = apiVersion; + _resultValue.kind = kind; + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBindingSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBindingSpec.java new file mode 100644 index 0000000000..fa2528f478 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBindingSpec.java @@ -0,0 +1,101 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MatchResources; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.ParamRef; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MutatingAdmissionPolicyBindingSpec { + /** + * @return matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + */ + private @Nullable MatchResources matchResources; + /** + * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + */ + private @Nullable ParamRef paramRef; + /** + * @return policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + */ + private @Nullable String policyName; + + private MutatingAdmissionPolicyBindingSpec() {} + /** + * @return matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + */ + public Optional matchResources() { + return Optional.ofNullable(this.matchResources); + } + /** + * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + */ + public Optional paramRef() { + return Optional.ofNullable(this.paramRef); + } + /** + * @return policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + */ + public Optional policyName() { + return Optional.ofNullable(this.policyName); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MutatingAdmissionPolicyBindingSpec defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable MatchResources matchResources; + private @Nullable ParamRef paramRef; + private @Nullable String policyName; + public Builder() {} + public Builder(MutatingAdmissionPolicyBindingSpec defaults) { + Objects.requireNonNull(defaults); + this.matchResources = defaults.matchResources; + this.paramRef = defaults.paramRef; + this.policyName = defaults.policyName; + } + + @CustomType.Setter + public Builder matchResources(@Nullable MatchResources matchResources) { + + this.matchResources = matchResources; + return this; + } + @CustomType.Setter + public Builder paramRef(@Nullable ParamRef paramRef) { + + this.paramRef = paramRef; + return this; + } + @CustomType.Setter + public Builder policyName(@Nullable String policyName) { + + this.policyName = policyName; + return this; + } + public MutatingAdmissionPolicyBindingSpec build() { + final var _resultValue = new MutatingAdmissionPolicyBindingSpec(); + _resultValue.matchResources = matchResources; + _resultValue.paramRef = paramRef; + _resultValue.policyName = policyName; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBindingSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBindingSpecPatch.java new file mode 100644 index 0000000000..f89e46f16e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicyBindingSpecPatch.java @@ -0,0 +1,101 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MatchResourcesPatch; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.ParamRefPatch; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MutatingAdmissionPolicyBindingSpecPatch { + /** + * @return matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + */ + private @Nullable MatchResourcesPatch matchResources; + /** + * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + */ + private @Nullable ParamRefPatch paramRef; + /** + * @return policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + */ + private @Nullable String policyName; + + private MutatingAdmissionPolicyBindingSpecPatch() {} + /** + * @return matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + * + */ + public Optional matchResources() { + return Optional.ofNullable(this.matchResources); + } + /** + * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * + */ + public Optional paramRef() { + return Optional.ofNullable(this.paramRef); + } + /** + * @return policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + * + */ + public Optional policyName() { + return Optional.ofNullable(this.policyName); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MutatingAdmissionPolicyBindingSpecPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable MatchResourcesPatch matchResources; + private @Nullable ParamRefPatch paramRef; + private @Nullable String policyName; + public Builder() {} + public Builder(MutatingAdmissionPolicyBindingSpecPatch defaults) { + Objects.requireNonNull(defaults); + this.matchResources = defaults.matchResources; + this.paramRef = defaults.paramRef; + this.policyName = defaults.policyName; + } + + @CustomType.Setter + public Builder matchResources(@Nullable MatchResourcesPatch matchResources) { + + this.matchResources = matchResources; + return this; + } + @CustomType.Setter + public Builder paramRef(@Nullable ParamRefPatch paramRef) { + + this.paramRef = paramRef; + return this; + } + @CustomType.Setter + public Builder policyName(@Nullable String policyName) { + + this.policyName = policyName; + return this; + } + public MutatingAdmissionPolicyBindingSpecPatch build() { + final var _resultValue = new MutatingAdmissionPolicyBindingSpecPatch(); + _resultValue.matchResources = matchResources; + _resultValue.paramRef = paramRef; + _resultValue.policyName = policyName; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicySpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicySpec.java new file mode 100644 index 0000000000..148bac210b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicySpec.java @@ -0,0 +1,240 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MatchCondition; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MatchResources; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.Mutation; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.ParamKind; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.Variable; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MutatingAdmissionPolicySpec { + /** + * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + */ + private @Nullable String failurePolicy; + /** + * @return matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + */ + private @Nullable List matchConditions; + /** + * @return matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + */ + private @Nullable MatchResources matchConstraints; + /** + * @return mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + */ + private @Nullable List mutations; + /** + * @return paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + */ + private @Nullable ParamKind paramKind; + /** + * @return reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + */ + private @Nullable String reinvocationPolicy; + /** + * @return variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + */ + private @Nullable List variables; + + private MutatingAdmissionPolicySpec() {} + /** + * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + */ + public Optional failurePolicy() { + return Optional.ofNullable(this.failurePolicy); + } + /** + * @return matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + */ + public List matchConditions() { + return this.matchConditions == null ? List.of() : this.matchConditions; + } + /** + * @return matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + */ + public Optional matchConstraints() { + return Optional.ofNullable(this.matchConstraints); + } + /** + * @return mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + */ + public List mutations() { + return this.mutations == null ? List.of() : this.mutations; + } + /** + * @return paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + */ + public Optional paramKind() { + return Optional.ofNullable(this.paramKind); + } + /** + * @return reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + */ + public Optional reinvocationPolicy() { + return Optional.ofNullable(this.reinvocationPolicy); + } + /** + * @return variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + */ + public List variables() { + return this.variables == null ? List.of() : this.variables; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MutatingAdmissionPolicySpec defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String failurePolicy; + private @Nullable List matchConditions; + private @Nullable MatchResources matchConstraints; + private @Nullable List mutations; + private @Nullable ParamKind paramKind; + private @Nullable String reinvocationPolicy; + private @Nullable List variables; + public Builder() {} + public Builder(MutatingAdmissionPolicySpec defaults) { + Objects.requireNonNull(defaults); + this.failurePolicy = defaults.failurePolicy; + this.matchConditions = defaults.matchConditions; + this.matchConstraints = defaults.matchConstraints; + this.mutations = defaults.mutations; + this.paramKind = defaults.paramKind; + this.reinvocationPolicy = defaults.reinvocationPolicy; + this.variables = defaults.variables; + } + + @CustomType.Setter + public Builder failurePolicy(@Nullable String failurePolicy) { + + this.failurePolicy = failurePolicy; + return this; + } + @CustomType.Setter + public Builder matchConditions(@Nullable List matchConditions) { + + this.matchConditions = matchConditions; + return this; + } + public Builder matchConditions(MatchCondition... matchConditions) { + return matchConditions(List.of(matchConditions)); + } + @CustomType.Setter + public Builder matchConstraints(@Nullable MatchResources matchConstraints) { + + this.matchConstraints = matchConstraints; + return this; + } + @CustomType.Setter + public Builder mutations(@Nullable List mutations) { + + this.mutations = mutations; + return this; + } + public Builder mutations(Mutation... mutations) { + return mutations(List.of(mutations)); + } + @CustomType.Setter + public Builder paramKind(@Nullable ParamKind paramKind) { + + this.paramKind = paramKind; + return this; + } + @CustomType.Setter + public Builder reinvocationPolicy(@Nullable String reinvocationPolicy) { + + this.reinvocationPolicy = reinvocationPolicy; + return this; + } + @CustomType.Setter + public Builder variables(@Nullable List variables) { + + this.variables = variables; + return this; + } + public Builder variables(Variable... variables) { + return variables(List.of(variables)); + } + public MutatingAdmissionPolicySpec build() { + final var _resultValue = new MutatingAdmissionPolicySpec(); + _resultValue.failurePolicy = failurePolicy; + _resultValue.matchConditions = matchConditions; + _resultValue.matchConstraints = matchConstraints; + _resultValue.mutations = mutations; + _resultValue.paramKind = paramKind; + _resultValue.reinvocationPolicy = reinvocationPolicy; + _resultValue.variables = variables; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicySpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicySpecPatch.java new file mode 100644 index 0000000000..e569ff2510 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutatingAdmissionPolicySpecPatch.java @@ -0,0 +1,240 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MatchConditionPatch; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MatchResourcesPatch; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.MutationPatch; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.ParamKindPatch; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.VariablePatch; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MutatingAdmissionPolicySpecPatch { + /** + * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + */ + private @Nullable String failurePolicy; + /** + * @return matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + */ + private @Nullable List matchConditions; + /** + * @return matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + */ + private @Nullable MatchResourcesPatch matchConstraints; + /** + * @return mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + */ + private @Nullable List mutations; + /** + * @return paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + */ + private @Nullable ParamKindPatch paramKind; + /** + * @return reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + */ + private @Nullable String reinvocationPolicy; + /** + * @return variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + */ + private @Nullable List variables; + + private MutatingAdmissionPolicySpecPatch() {} + /** + * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + * + */ + public Optional failurePolicy() { + return Optional.ofNullable(this.failurePolicy); + } + /** + * @return matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + * + */ + public List matchConditions() { + return this.matchConditions == null ? List.of() : this.matchConditions; + } + /** + * @return matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + * + */ + public Optional matchConstraints() { + return Optional.ofNullable(this.matchConstraints); + } + /** + * @return mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + * + */ + public List mutations() { + return this.mutations == null ? List.of() : this.mutations; + } + /** + * @return paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + * + */ + public Optional paramKind() { + return Optional.ofNullable(this.paramKind); + } + /** + * @return reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + * + */ + public Optional reinvocationPolicy() { + return Optional.ofNullable(this.reinvocationPolicy); + } + /** + * @return variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + * + */ + public List variables() { + return this.variables == null ? List.of() : this.variables; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MutatingAdmissionPolicySpecPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String failurePolicy; + private @Nullable List matchConditions; + private @Nullable MatchResourcesPatch matchConstraints; + private @Nullable List mutations; + private @Nullable ParamKindPatch paramKind; + private @Nullable String reinvocationPolicy; + private @Nullable List variables; + public Builder() {} + public Builder(MutatingAdmissionPolicySpecPatch defaults) { + Objects.requireNonNull(defaults); + this.failurePolicy = defaults.failurePolicy; + this.matchConditions = defaults.matchConditions; + this.matchConstraints = defaults.matchConstraints; + this.mutations = defaults.mutations; + this.paramKind = defaults.paramKind; + this.reinvocationPolicy = defaults.reinvocationPolicy; + this.variables = defaults.variables; + } + + @CustomType.Setter + public Builder failurePolicy(@Nullable String failurePolicy) { + + this.failurePolicy = failurePolicy; + return this; + } + @CustomType.Setter + public Builder matchConditions(@Nullable List matchConditions) { + + this.matchConditions = matchConditions; + return this; + } + public Builder matchConditions(MatchConditionPatch... matchConditions) { + return matchConditions(List.of(matchConditions)); + } + @CustomType.Setter + public Builder matchConstraints(@Nullable MatchResourcesPatch matchConstraints) { + + this.matchConstraints = matchConstraints; + return this; + } + @CustomType.Setter + public Builder mutations(@Nullable List mutations) { + + this.mutations = mutations; + return this; + } + public Builder mutations(MutationPatch... mutations) { + return mutations(List.of(mutations)); + } + @CustomType.Setter + public Builder paramKind(@Nullable ParamKindPatch paramKind) { + + this.paramKind = paramKind; + return this; + } + @CustomType.Setter + public Builder reinvocationPolicy(@Nullable String reinvocationPolicy) { + + this.reinvocationPolicy = reinvocationPolicy; + return this; + } + @CustomType.Setter + public Builder variables(@Nullable List variables) { + + this.variables = variables; + return this; + } + public Builder variables(VariablePatch... variables) { + return variables(List.of(variables)); + } + public MutatingAdmissionPolicySpecPatch build() { + final var _resultValue = new MutatingAdmissionPolicySpecPatch(); + _resultValue.failurePolicy = failurePolicy; + _resultValue.matchConditions = matchConditions; + _resultValue.matchConstraints = matchConstraints; + _resultValue.mutations = mutations; + _resultValue.paramKind = paramKind; + _resultValue.reinvocationPolicy = reinvocationPolicy; + _resultValue.variables = variables; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/Mutation.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/Mutation.java new file mode 100644 index 0000000000..9efe1b2f9a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/Mutation.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.ApplyConfiguration; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.JSONPatch; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class Mutation { + /** + * @return applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + */ + private @Nullable ApplyConfiguration applyConfiguration; + /** + * @return jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + */ + private @Nullable JSONPatch jsonPatch; + /** + * @return patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + */ + private String patchType; + + private Mutation() {} + /** + * @return applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + */ + public Optional applyConfiguration() { + return Optional.ofNullable(this.applyConfiguration); + } + /** + * @return jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + */ + public Optional jsonPatch() { + return Optional.ofNullable(this.jsonPatch); + } + /** + * @return patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + */ + public String patchType() { + return this.patchType; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(Mutation defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable ApplyConfiguration applyConfiguration; + private @Nullable JSONPatch jsonPatch; + private String patchType; + public Builder() {} + public Builder(Mutation defaults) { + Objects.requireNonNull(defaults); + this.applyConfiguration = defaults.applyConfiguration; + this.jsonPatch = defaults.jsonPatch; + this.patchType = defaults.patchType; + } + + @CustomType.Setter + public Builder applyConfiguration(@Nullable ApplyConfiguration applyConfiguration) { + + this.applyConfiguration = applyConfiguration; + return this; + } + @CustomType.Setter + public Builder jsonPatch(@Nullable JSONPatch jsonPatch) { + + this.jsonPatch = jsonPatch; + return this; + } + @CustomType.Setter + public Builder patchType(String patchType) { + if (patchType == null) { + throw new MissingRequiredPropertyException("Mutation", "patchType"); + } + this.patchType = patchType; + return this; + } + public Mutation build() { + final var _resultValue = new Mutation(); + _resultValue.applyConfiguration = applyConfiguration; + _resultValue.jsonPatch = jsonPatch; + _resultValue.patchType = patchType; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutationPatch.java new file mode 100644 index 0000000000..ebd4bc39e4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/MutationPatch.java @@ -0,0 +1,101 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.ApplyConfigurationPatch; +import com.pulumi.kubernetes.admissionregistration.v1alpha1.outputs.JSONPatchPatch; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MutationPatch { + /** + * @return applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + */ + private @Nullable ApplyConfigurationPatch applyConfiguration; + /** + * @return jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + */ + private @Nullable JSONPatchPatch jsonPatch; + /** + * @return patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + */ + private @Nullable String patchType; + + private MutationPatch() {} + /** + * @return applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + * + */ + public Optional applyConfiguration() { + return Optional.ofNullable(this.applyConfiguration); + } + /** + * @return jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + * + */ + public Optional jsonPatch() { + return Optional.ofNullable(this.jsonPatch); + } + /** + * @return patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + * + */ + public Optional patchType() { + return Optional.ofNullable(this.patchType); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MutationPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable ApplyConfigurationPatch applyConfiguration; + private @Nullable JSONPatchPatch jsonPatch; + private @Nullable String patchType; + public Builder() {} + public Builder(MutationPatch defaults) { + Objects.requireNonNull(defaults); + this.applyConfiguration = defaults.applyConfiguration; + this.jsonPatch = defaults.jsonPatch; + this.patchType = defaults.patchType; + } + + @CustomType.Setter + public Builder applyConfiguration(@Nullable ApplyConfigurationPatch applyConfiguration) { + + this.applyConfiguration = applyConfiguration; + return this; + } + @CustomType.Setter + public Builder jsonPatch(@Nullable JSONPatchPatch jsonPatch) { + + this.jsonPatch = jsonPatch; + return this; + } + @CustomType.Setter + public Builder patchType(@Nullable String patchType) { + + this.patchType = patchType; + return this; + } + public MutationPatch build() { + final var _resultValue = new MutationPatch(); + _resultValue.applyConfiguration = applyConfiguration; + _resultValue.jsonPatch = jsonPatch; + _resultValue.patchType = patchType; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicyBindingSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicyBindingSpec.java index 2eb2467ad5..5ce5d9cc21 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicyBindingSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicyBindingSpec.java @@ -20,7 +20,7 @@ public final class ValidatingAdmissionPolicyBindingSpec { */ private @Nullable MatchResources matchResources; /** - * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @return ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * */ private @Nullable ParamRef paramRef; @@ -62,7 +62,7 @@ public Optional matchResources() { return Optional.ofNullable(this.matchResources); } /** - * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @return ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * */ public Optional paramRef() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java index f7ae65534d..2f247b0158 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java @@ -20,7 +20,7 @@ public final class ValidatingAdmissionPolicyBindingSpecPatch { */ private @Nullable MatchResourcesPatch matchResources; /** - * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @return ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * */ private @Nullable ParamRefPatch paramRef; @@ -62,7 +62,7 @@ public Optional matchResources() { return Optional.ofNullable(this.matchResources); } /** - * @return paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * @return ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. * */ public Optional paramRef() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicySpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicySpec.java index 9b90f278b5..688be1c830 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicySpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicySpec.java @@ -25,15 +25,7 @@ public final class ValidatingAdmissionPolicySpec { */ private @Nullable List auditAnnotations; /** - * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @return FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * */ private @Nullable String failurePolicy; @@ -62,7 +54,7 @@ public final class ValidatingAdmissionPolicySpec { */ private @Nullable ParamKind paramKind; /** - * @return Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @return Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * */ private List validations; @@ -83,15 +75,7 @@ public List auditAnnotations() { return this.auditAnnotations == null ? List.of() : this.auditAnnotations; } /** - * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @return FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * */ public Optional failurePolicy() { @@ -128,7 +112,7 @@ public Optional paramKind() { return Optional.ofNullable(this.paramKind); } /** - * @return Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @return Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * */ public List validations() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicySpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicySpecPatch.java index e838518201..b5ae9fff8e 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicySpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidatingAdmissionPolicySpecPatch.java @@ -24,15 +24,7 @@ public final class ValidatingAdmissionPolicySpecPatch { */ private @Nullable List auditAnnotations; /** - * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @return FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * */ private @Nullable String failurePolicy; @@ -61,7 +53,7 @@ public final class ValidatingAdmissionPolicySpecPatch { */ private @Nullable ParamKindPatch paramKind; /** - * @return Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @return Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * */ private @Nullable List validations; @@ -82,15 +74,7 @@ public List auditAnnotations() { return this.auditAnnotations == null ? List.of() : this.auditAnnotations; } /** - * @return failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * @return FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. * */ public Optional failurePolicy() { @@ -127,7 +111,7 @@ public Optional paramKind() { return Optional.ofNullable(this.paramKind); } /** - * @return Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * @return Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. * */ public List validations() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/Validation.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/Validation.java index 55c291900a..4e11deb8ee 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/Validation.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/Validation.java @@ -13,14 +13,9 @@ @CustomType public final class Validation { /** - * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -60,14 +55,9 @@ public final class Validation { private Validation() {} /** - * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: - * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: + * + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidationPatch.java index 3cb3c198f0..adf80d2b4d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidationPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1alpha1/outputs/ValidationPatch.java @@ -12,14 +12,9 @@ @CustomType public final class ValidationPatch { /** - * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -59,14 +54,9 @@ public final class ValidationPatch { private ValidationPatch() {} /** - * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: - * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * @return Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: + * + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java index 3d74f2d1b4..36665362ff 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/inputs/ValidatingAdmissionPolicyBindingSpecArgs.java @@ -80,7 +80,7 @@ public Optional> policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -105,7 +105,7 @@ public Optional> policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -221,7 +221,7 @@ public Builder policyName(String policyName) { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -250,7 +250,7 @@ public Builder validationActions(@Nullable Output> validationAction * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -278,7 +278,7 @@ public Builder validationActions(List validationActions) { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java index 1ee4cf9a1e..8da39e7e26 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/inputs/ValidatingAdmissionPolicyBindingSpecPatchArgs.java @@ -80,7 +80,7 @@ public Optional> policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -105,7 +105,7 @@ public Optional> policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -221,7 +221,7 @@ public Builder policyName(String policyName) { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -250,7 +250,7 @@ public Builder validationActions(@Nullable Output> validationAction * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -278,7 +278,7 @@ public Builder validationActions(List validationActions) { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/outputs/ValidatingAdmissionPolicyBindingSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/outputs/ValidatingAdmissionPolicyBindingSpec.java index 0c70b2b31a..d7af59c773 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/outputs/ValidatingAdmissionPolicyBindingSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/outputs/ValidatingAdmissionPolicyBindingSpec.java @@ -42,7 +42,7 @@ public final class ValidatingAdmissionPolicyBindingSpec { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -88,7 +88,7 @@ public Optional policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java index 24461b65e5..7e3b14a9a6 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/admissionregistration/v1beta1/outputs/ValidatingAdmissionPolicyBindingSpecPatch.java @@ -42,7 +42,7 @@ public final class ValidatingAdmissionPolicyBindingSpecPatch { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -88,7 +88,7 @@ public Optional policyName() { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/inputs/JSONSchemaPropsArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/inputs/JSONSchemaPropsArgs.java index af9fa3a327..55bb27e3cc 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/inputs/JSONSchemaPropsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/inputs/JSONSchemaPropsArgs.java @@ -144,7 +144,7 @@ public Optional> externalDocs() { /** * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * */ @Import(name="format") @@ -153,7 +153,7 @@ public Optional> externalDocs() { /** * @return format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * */ public Optional> format() { @@ -723,7 +723,7 @@ public Builder externalDocs(ExternalDocumentationArgs externalDocs) { /** * @param format format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * * @return builder * @@ -736,7 +736,7 @@ public Builder format(@Nullable Output format) { /** * @param format format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/inputs/JSONSchemaPropsPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/inputs/JSONSchemaPropsPatchArgs.java index f166a00f50..792d8622af 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/inputs/JSONSchemaPropsPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/inputs/JSONSchemaPropsPatchArgs.java @@ -145,7 +145,7 @@ public Optional> externalDocs() { /** * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * */ @Import(name="format") @@ -154,7 +154,7 @@ public Optional> externalDocs() { /** * @return format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * */ public Optional> format() { @@ -724,7 +724,7 @@ public Builder externalDocs(ExternalDocumentationPatchArgs externalDocs) { /** * @param format format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * * @return builder * @@ -737,7 +737,7 @@ public Builder format(@Nullable Output format) { /** * @param format format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/outputs/JSONSchemaProps.java b/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/outputs/JSONSchemaProps.java index 0b1373b5b1..2e459da0ef 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/outputs/JSONSchemaProps.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/outputs/JSONSchemaProps.java @@ -42,7 +42,7 @@ public final class JSONSchemaProps { /** * @return format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * */ private @Nullable String format; @@ -189,7 +189,7 @@ public Optional externalDocs() { /** * @return format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * */ public Optional format() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/outputs/JSONSchemaPropsPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/outputs/JSONSchemaPropsPatch.java index 7a9ce87473..acfef75833 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/outputs/JSONSchemaPropsPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/apiextensions/v1/outputs/JSONSchemaPropsPatch.java @@ -43,7 +43,7 @@ public final class JSONSchemaPropsPatch { /** * @return format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * */ private @Nullable String format; @@ -190,7 +190,7 @@ public Optional externalDocs() { /** * @return format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. * */ public Optional format() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/apps/v1/inputs/StatefulSetSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/apps/v1/inputs/StatefulSetSpecArgs.java index 3c1370fa63..0e3ca82be0 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/apps/v1/inputs/StatefulSetSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/apps/v1/inputs/StatefulSetSpecArgs.java @@ -59,14 +59,14 @@ public Optional> ordinals() { } /** - * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * */ @Import(name="persistentVolumeClaimRetentionPolicy") private @Nullable Output persistentVolumeClaimRetentionPolicy; /** - * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * */ public Optional> persistentVolumeClaimRetentionPolicy() { @@ -270,7 +270,7 @@ public Builder ordinals(StatefulSetOrdinalsArgs ordinals) { } /** - * @param persistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * @param persistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * * @return builder * @@ -281,7 +281,7 @@ public Builder persistentVolumeClaimRetentionPolicy(@Nullable Output> ordinals() { } /** - * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * */ @Import(name="persistentVolumeClaimRetentionPolicy") private @Nullable Output persistentVolumeClaimRetentionPolicy; /** - * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * */ public Optional> persistentVolumeClaimRetentionPolicy() { @@ -269,7 +269,7 @@ public Builder ordinals(StatefulSetOrdinalsPatchArgs ordinals) { } /** - * @param persistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * @param persistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * * @return builder * @@ -280,7 +280,7 @@ public Builder persistentVolumeClaimRetentionPolicy(@Nullable Output ordinals() { return Optional.ofNullable(this.ordinals); } /** - * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * */ public Optional persistentVolumeClaimRetentionPolicy() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/apps/v1/outputs/StatefulSetSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/apps/v1/outputs/StatefulSetSpecPatch.java index 31b0d8ad2c..9201b20d8f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/apps/v1/outputs/StatefulSetSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/apps/v1/outputs/StatefulSetSpecPatch.java @@ -30,7 +30,7 @@ public final class StatefulSetSpecPatch { */ private @Nullable StatefulSetOrdinalsPatch ordinals; /** - * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * */ private @Nullable StatefulSetPersistentVolumeClaimRetentionPolicyPatch persistentVolumeClaimRetentionPolicy; @@ -91,7 +91,7 @@ public Optional ordinals() { return Optional.ofNullable(this.ordinals); } /** - * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * @return persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. * */ public Optional persistentVolumeClaimRetentionPolicy() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricSpecArgs.java index 352e8a3590..25a4e35919 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricSpecArgs.java @@ -26,14 +26,14 @@ public final class MetricSpecArgs extends com.pulumi.resources.ResourceArgs { public static final MetricSpecArgs Empty = new MetricSpecArgs(); /** - * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * */ @Import(name="containerResource") private @Nullable Output containerResource; /** - * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * */ public Optional> containerResource() { @@ -101,14 +101,14 @@ public Optional> resource() { } /** - * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * */ @Import(name="type", required=true) private Output type; /** - * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * */ public Output type() { @@ -145,7 +145,7 @@ public Builder(MetricSpecArgs defaults) { } /** - * @param containerResource containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * @param containerResource containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * * @return builder * @@ -156,7 +156,7 @@ public Builder containerResource(@Nullable Output type) { } /** - * @param type type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @param type type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricSpecPatchArgs.java index 8848f08bf0..f388c0ea96 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricSpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricSpecPatchArgs.java @@ -25,14 +25,14 @@ public final class MetricSpecPatchArgs extends com.pulumi.resources.ResourceArgs public static final MetricSpecPatchArgs Empty = new MetricSpecPatchArgs(); /** - * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * */ @Import(name="containerResource") private @Nullable Output containerResource; /** - * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * */ public Optional> containerResource() { @@ -100,14 +100,14 @@ public Optional> resource() { } /** - * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * */ @Import(name="type") private @Nullable Output type; /** - * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * */ public Optional> type() { @@ -144,7 +144,7 @@ public Builder(MetricSpecPatchArgs defaults) { } /** - * @param containerResource containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * @param containerResource containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * * @return builder * @@ -155,7 +155,7 @@ public Builder containerResource(@Nullable Output type) { } /** - * @param type type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @param type type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricStatusArgs.java index 4dfd3281b6..e3e0f4b50b 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricStatusArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/inputs/MetricStatusArgs.java @@ -101,14 +101,14 @@ public Optional> resource() { } /** - * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. * */ @Import(name="type", required=true) private Output type; /** - * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. * */ public Output type() { @@ -250,7 +250,7 @@ public Builder resource(ResourceMetricStatusArgs resource) { } /** - * @param type type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @param type type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. * * @return builder * @@ -261,7 +261,7 @@ public Builder type(Output type) { } /** - * @param type type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @param type type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricSpec.java index db9718dbc5..47bc462f0d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricSpec.java @@ -18,7 +18,7 @@ @CustomType public final class MetricSpec { /** - * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * */ private @Nullable ContainerResourceMetricSource containerResource; @@ -43,14 +43,14 @@ public final class MetricSpec { */ private @Nullable ResourceMetricSource resource; /** - * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * */ private String type; private MetricSpec() {} /** - * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * */ public Optional containerResource() { @@ -85,7 +85,7 @@ public Optional resource() { return Optional.ofNullable(this.resource); } /** - * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * */ public String type() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricSpecPatch.java index 4497ba8743..36408b59fe 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricSpecPatch.java @@ -17,7 +17,7 @@ @CustomType public final class MetricSpecPatch { /** - * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * */ private @Nullable ContainerResourceMetricSourcePatch containerResource; @@ -42,14 +42,14 @@ public final class MetricSpecPatch { */ private @Nullable ResourceMetricSourcePatch resource; /** - * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * */ private @Nullable String type; private MetricSpecPatch() {} /** - * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * @return containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. * */ public Optional containerResource() { @@ -84,7 +84,7 @@ public Optional resource() { return Optional.ofNullable(this.resource); } /** - * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. * */ public Optional type() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricStatus.java index 3e2b359d7f..e3aeb1271d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricStatus.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricStatus.java @@ -43,7 +43,7 @@ public final class MetricStatus { */ private @Nullable ResourceMetricStatus resource; /** - * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. * */ private String type; @@ -85,7 +85,7 @@ public Optional resource() { return Optional.ofNullable(this.resource); } /** - * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. * */ public String type() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricStatusPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricStatusPatch.java index a63c7471ff..79ee033a75 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricStatusPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/autoscaling/v2/outputs/MetricStatusPatch.java @@ -42,7 +42,7 @@ public final class MetricStatusPatch { */ private @Nullable ResourceMetricStatusPatch resource; /** - * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. * */ private @Nullable String type; @@ -84,7 +84,7 @@ public Optional resource() { return Optional.ofNullable(this.resource); } /** - * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * @return type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. * */ public Optional type() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/inputs/JobSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/inputs/JobSpecArgs.java index a9dde9f56d..7aeb49265c 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/inputs/JobSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/inputs/JobSpecArgs.java @@ -116,7 +116,7 @@ public Optional> completions() { /** * ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * */ @Import(name="managedBy") @@ -125,7 +125,7 @@ public Optional> completions() { /** * @return ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * */ public Optional> managedBy() { @@ -455,7 +455,7 @@ public Builder completions(Integer completions) { /** * @param managedBy ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * * @return builder * @@ -468,7 +468,7 @@ public Builder managedBy(@Nullable Output managedBy) { /** * @param managedBy ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/inputs/JobSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/inputs/JobSpecPatchArgs.java index 56930ccce1..4312d9d4b5 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/inputs/JobSpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/inputs/JobSpecPatchArgs.java @@ -115,7 +115,7 @@ public Optional> completions() { /** * ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * */ @Import(name="managedBy") @@ -124,7 +124,7 @@ public Optional> completions() { /** * @return ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * */ public Optional> managedBy() { @@ -454,7 +454,7 @@ public Builder completions(Integer completions) { /** * @param managedBy ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * * @return builder * @@ -467,7 +467,7 @@ public Builder managedBy(@Nullable Output managedBy) { /** * @param managedBy ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/outputs/JobSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/outputs/JobSpec.java index 4d19efd6dc..02c5d22254 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/outputs/JobSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/outputs/JobSpec.java @@ -52,7 +52,7 @@ public final class JobSpec { /** * @return ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * */ private @Nullable String managedBy; @@ -159,7 +159,7 @@ public Optional completions() { /** * @return ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * */ public Optional managedBy() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/outputs/JobSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/outputs/JobSpecPatch.java index 772b1cf3d4..accc568380 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/outputs/JobSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/batch/v1/outputs/JobSpecPatch.java @@ -51,7 +51,7 @@ public final class JobSpecPatch { /** * @return ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * */ private @Nullable String managedBy; @@ -158,7 +158,7 @@ public Optional completions() { /** * @return ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). * */ public Optional managedBy() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha1/LeaseCandidate.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha1/LeaseCandidate.java index 3906ca1fb4..6aca71b042 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha1/LeaseCandidate.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha1/LeaseCandidate.java @@ -3,6 +3,7 @@ package com.pulumi.kubernetes.coordination.v1alpha1; +import com.pulumi.core.Alias; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -12,6 +13,7 @@ import com.pulumi.kubernetes.coordination.v1alpha1.outputs.LeaseCandidateSpec; import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; import java.lang.String; +import java.util.List; import javax.annotation.Nullable; /** @@ -120,6 +122,9 @@ private static LeaseCandidateArgs makeArgs(@Nullable LeaseCandidateArgs args, @N private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate").build()) + )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha1/LeaseCandidatePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha1/LeaseCandidatePatch.java index 9d96dcf1f8..7646e215b7 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha1/LeaseCandidatePatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha1/LeaseCandidatePatch.java @@ -3,6 +3,7 @@ package com.pulumi.kubernetes.coordination.v1alpha1; +import com.pulumi.core.Alias; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -12,6 +13,7 @@ import com.pulumi.kubernetes.coordination.v1alpha1.outputs.LeaseCandidateSpecPatch; import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; import java.lang.String; +import java.util.List; import java.util.Optional; import javax.annotation.Nullable; @@ -127,6 +129,9 @@ private static LeaseCandidatePatchArgs makeArgs(@Nullable LeaseCandidatePatchArg private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch").build()) + )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidate.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidate.java new file mode 100644 index 0000000000..5addc9b75e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidate.java @@ -0,0 +1,143 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.coordination.v1alpha2.LeaseCandidateArgs; +import com.pulumi.kubernetes.coordination.v1alpha2.outputs.LeaseCandidateSpec; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + * + */ +@ResourceType(type="kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate") +public class LeaseCandidate extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + @Export(name="metadata", refs={ObjectMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + public Output metadata() { + return this.metadata; + } + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + @Export(name="spec", refs={LeaseCandidateSpec.class}, tree="[0]") + private Output spec; + + /** + * @return spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + public Output spec() { + return this.spec; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public LeaseCandidate(String name) { + this(name, LeaseCandidateArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public LeaseCandidate(String name, @Nullable LeaseCandidateArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public LeaseCandidate(String name, @Nullable LeaseCandidateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private LeaseCandidate(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate", name, null, makeResourceOptions(options, id)); + } + + private static LeaseCandidateArgs makeArgs(@Nullable LeaseCandidateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? LeaseCandidateArgs.builder() : LeaseCandidateArgs.builder(args); + return builder + .apiVersion("coordination.k8s.io/v1alpha2") + .kind("LeaseCandidate") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidate").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static LeaseCandidate get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new LeaseCandidate(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateArgs.java new file mode 100644 index 0000000000..21362d0f7d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateArgs.java @@ -0,0 +1,199 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.coordination.v1alpha2.inputs.LeaseCandidateSpecArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LeaseCandidateArgs extends com.pulumi.resources.ResourceArgs { + + public static final LeaseCandidateArgs Empty = new LeaseCandidateArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private LeaseCandidateArgs() {} + + private LeaseCandidateArgs(LeaseCandidateArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LeaseCandidateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LeaseCandidateArgs $; + + public Builder() { + $ = new LeaseCandidateArgs(); + } + + public Builder(LeaseCandidateArgs defaults) { + $ = new LeaseCandidateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + * @return builder + * + */ + public Builder spec(LeaseCandidateSpecArgs spec) { + return spec(Output.of(spec)); + } + + public LeaseCandidateArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateList.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateList.java new file mode 100644 index 0000000000..1160150dfb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateList.java @@ -0,0 +1,139 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.coordination.v1alpha2.LeaseCandidateListArgs; +import com.pulumi.kubernetes.coordination.v1alpha2.outputs.LeaseCandidate; +import com.pulumi.kubernetes.meta.v1.outputs.ListMeta; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * LeaseCandidateList is a list of Lease objects. + * + */ +@ResourceType(type="kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList") +public class LeaseCandidateList extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * items is a list of schema objects. + * + */ + @Export(name="items", refs={List.class,LeaseCandidate.class}, tree="[0,1]") + private Output> items; + + /** + * @return items is a list of schema objects. + * + */ + public Output> items() { + return this.items; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + @Export(name="metadata", refs={ListMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + public Output metadata() { + return this.metadata; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public LeaseCandidateList(String name) { + this(name, LeaseCandidateListArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public LeaseCandidateList(String name, LeaseCandidateListArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public LeaseCandidateList(String name, LeaseCandidateListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private LeaseCandidateList(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList", name, null, makeResourceOptions(options, id)); + } + + private static LeaseCandidateListArgs makeArgs(LeaseCandidateListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? LeaseCandidateListArgs.builder() : LeaseCandidateListArgs.builder(args); + return builder + .apiVersion("coordination.k8s.io/v1alpha2") + .kind("LeaseCandidateList") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static LeaseCandidateList get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new LeaseCandidateList(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateListArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateListArgs.java new file mode 100644 index 0000000000..553b08f392 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidateListArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.coordination.v1alpha2.inputs.LeaseCandidateArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ListMetaArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LeaseCandidateListArgs extends com.pulumi.resources.ResourceArgs { + + public static final LeaseCandidateListArgs Empty = new LeaseCandidateListArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * items is a list of schema objects. + * + */ + @Import(name="items", required=true) + private Output> items; + + /** + * @return items is a list of schema objects. + * + */ + public Output> items() { + return this.items; + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + private LeaseCandidateListArgs() {} + + private LeaseCandidateListArgs(LeaseCandidateListArgs $) { + this.apiVersion = $.apiVersion; + this.items = $.items; + this.kind = $.kind; + this.metadata = $.metadata; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LeaseCandidateListArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LeaseCandidateListArgs $; + + public Builder() { + $ = new LeaseCandidateListArgs(); + } + + public Builder(LeaseCandidateListArgs defaults) { + $ = new LeaseCandidateListArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param items items is a list of schema objects. + * + * @return builder + * + */ + public Builder items(Output> items) { + $.items = items; + return this; + } + + /** + * @param items items is a list of schema objects. + * + * @return builder + * + */ + public Builder items(List items) { + return items(Output.of(items)); + } + + /** + * @param items items is a list of schema objects. + * + * @return builder + * + */ + public Builder items(LeaseCandidateArgs... items) { + return items(List.of(items)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + * @return builder + * + */ + public Builder metadata(ListMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + public LeaseCandidateListArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + if ($.items == null) { + throw new MissingRequiredPropertyException("LeaseCandidateListArgs", "items"); + } + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidatePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidatePatch.java new file mode 100644 index 0000000000..8cab195421 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidatePatch.java @@ -0,0 +1,150 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.coordination.v1alpha2.LeaseCandidatePatchArgs; +import com.pulumi.kubernetes.coordination.v1alpha2.outputs.LeaseCandidateSpecPatch; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + * + */ +@ResourceType(type="kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch") +public class LeaseCandidatePatch extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output> apiVersion() { + return Codegen.optional(this.apiVersion); + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output> kind() { + return Codegen.optional(this.kind); + } + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + @Export(name="metadata", refs={ObjectMetaPatch.class}, tree="[0]") + private Output metadata; + + /** + * @return More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + public Output> metadata() { + return Codegen.optional(this.metadata); + } + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + @Export(name="spec", refs={LeaseCandidateSpecPatch.class}, tree="[0]") + private Output spec; + + /** + * @return spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + public Output> spec() { + return Codegen.optional(this.spec); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public LeaseCandidatePatch(String name) { + this(name, LeaseCandidatePatchArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public LeaseCandidatePatch(String name, @Nullable LeaseCandidatePatchArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public LeaseCandidatePatch(String name, @Nullable LeaseCandidatePatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private LeaseCandidatePatch(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch", name, null, makeResourceOptions(options, id)); + } + + private static LeaseCandidatePatchArgs makeArgs(@Nullable LeaseCandidatePatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? LeaseCandidatePatchArgs.builder() : LeaseCandidatePatchArgs.builder(args); + return builder + .apiVersion("coordination.k8s.io/v1alpha2") + .kind("LeaseCandidate") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidatePatch").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static LeaseCandidatePatch get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new LeaseCandidatePatch(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidatePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidatePatchArgs.java new file mode 100644 index 0000000000..ec3d0eb26a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/LeaseCandidatePatchArgs.java @@ -0,0 +1,199 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.coordination.v1alpha2.inputs.LeaseCandidateSpecPatchArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LeaseCandidatePatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final LeaseCandidatePatchArgs Empty = new LeaseCandidatePatchArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private LeaseCandidatePatchArgs() {} + + private LeaseCandidatePatchArgs(LeaseCandidatePatchArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LeaseCandidatePatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LeaseCandidatePatchArgs $; + + public Builder() { + $ = new LeaseCandidatePatchArgs(); + } + + public Builder(LeaseCandidatePatchArgs defaults) { + $ = new LeaseCandidatePatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaPatchArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + * @return builder + * + */ + public Builder spec(LeaseCandidateSpecPatchArgs spec) { + return spec(Output.of(spec)); + } + + public LeaseCandidatePatchArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateArgs.java new file mode 100644 index 0000000000..7f87b6c63e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateArgs.java @@ -0,0 +1,203 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.coordination.v1alpha2.inputs.LeaseCandidateSpecArgs; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + * + */ +public final class LeaseCandidateArgs extends com.pulumi.resources.ResourceArgs { + + public static final LeaseCandidateArgs Empty = new LeaseCandidateArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private LeaseCandidateArgs() {} + + private LeaseCandidateArgs(LeaseCandidateArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LeaseCandidateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LeaseCandidateArgs $; + + public Builder() { + $ = new LeaseCandidateArgs(); + } + + public Builder(LeaseCandidateArgs defaults) { + $ = new LeaseCandidateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + * @return builder + * + */ + public Builder spec(LeaseCandidateSpecArgs spec) { + return spec(Output.of(spec)); + } + + public LeaseCandidateArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateSpecArgs.java new file mode 100644 index 0000000000..54fba46023 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateSpecArgs.java @@ -0,0 +1,282 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * LeaseCandidateSpec is a specification of a Lease. + * + */ +public final class LeaseCandidateSpecArgs extends com.pulumi.resources.ResourceArgs { + + public static final LeaseCandidateSpecArgs Empty = new LeaseCandidateSpecArgs(); + + /** + * BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + */ + @Import(name="binaryVersion", required=true) + private Output binaryVersion; + + /** + * @return BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + */ + public Output binaryVersion() { + return this.binaryVersion; + } + + /** + * EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + */ + @Import(name="emulationVersion") + private @Nullable Output emulationVersion; + + /** + * @return EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + */ + public Optional> emulationVersion() { + return Optional.ofNullable(this.emulationVersion); + } + + /** + * LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + */ + @Import(name="leaseName", required=true) + private Output leaseName; + + /** + * @return LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + */ + public Output leaseName() { + return this.leaseName; + } + + /** + * PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + */ + @Import(name="pingTime") + private @Nullable Output pingTime; + + /** + * @return PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + */ + public Optional> pingTime() { + return Optional.ofNullable(this.pingTime); + } + + /** + * RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + */ + @Import(name="renewTime") + private @Nullable Output renewTime; + + /** + * @return RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + */ + public Optional> renewTime() { + return Optional.ofNullable(this.renewTime); + } + + /** + * Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + */ + @Import(name="strategy", required=true) + private Output strategy; + + /** + * @return Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + */ + public Output strategy() { + return this.strategy; + } + + private LeaseCandidateSpecArgs() {} + + private LeaseCandidateSpecArgs(LeaseCandidateSpecArgs $) { + this.binaryVersion = $.binaryVersion; + this.emulationVersion = $.emulationVersion; + this.leaseName = $.leaseName; + this.pingTime = $.pingTime; + this.renewTime = $.renewTime; + this.strategy = $.strategy; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LeaseCandidateSpecArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LeaseCandidateSpecArgs $; + + public Builder() { + $ = new LeaseCandidateSpecArgs(); + } + + public Builder(LeaseCandidateSpecArgs defaults) { + $ = new LeaseCandidateSpecArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param binaryVersion BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + * @return builder + * + */ + public Builder binaryVersion(Output binaryVersion) { + $.binaryVersion = binaryVersion; + return this; + } + + /** + * @param binaryVersion BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + * @return builder + * + */ + public Builder binaryVersion(String binaryVersion) { + return binaryVersion(Output.of(binaryVersion)); + } + + /** + * @param emulationVersion EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + * @return builder + * + */ + public Builder emulationVersion(@Nullable Output emulationVersion) { + $.emulationVersion = emulationVersion; + return this; + } + + /** + * @param emulationVersion EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + * @return builder + * + */ + public Builder emulationVersion(String emulationVersion) { + return emulationVersion(Output.of(emulationVersion)); + } + + /** + * @param leaseName LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + * @return builder + * + */ + public Builder leaseName(Output leaseName) { + $.leaseName = leaseName; + return this; + } + + /** + * @param leaseName LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + * @return builder + * + */ + public Builder leaseName(String leaseName) { + return leaseName(Output.of(leaseName)); + } + + /** + * @param pingTime PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + * @return builder + * + */ + public Builder pingTime(@Nullable Output pingTime) { + $.pingTime = pingTime; + return this; + } + + /** + * @param pingTime PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + * @return builder + * + */ + public Builder pingTime(String pingTime) { + return pingTime(Output.of(pingTime)); + } + + /** + * @param renewTime RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + * @return builder + * + */ + public Builder renewTime(@Nullable Output renewTime) { + $.renewTime = renewTime; + return this; + } + + /** + * @param renewTime RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + * @return builder + * + */ + public Builder renewTime(String renewTime) { + return renewTime(Output.of(renewTime)); + } + + /** + * @param strategy Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + * @return builder + * + */ + public Builder strategy(Output strategy) { + $.strategy = strategy; + return this; + } + + /** + * @param strategy Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + * @return builder + * + */ + public Builder strategy(String strategy) { + return strategy(Output.of(strategy)); + } + + public LeaseCandidateSpecArgs build() { + if ($.binaryVersion == null) { + throw new MissingRequiredPropertyException("LeaseCandidateSpecArgs", "binaryVersion"); + } + if ($.leaseName == null) { + throw new MissingRequiredPropertyException("LeaseCandidateSpecArgs", "leaseName"); + } + if ($.strategy == null) { + throw new MissingRequiredPropertyException("LeaseCandidateSpecArgs", "strategy"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateSpecPatchArgs.java new file mode 100644 index 0000000000..5082a7a127 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/inputs/LeaseCandidateSpecPatchArgs.java @@ -0,0 +1,272 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * LeaseCandidateSpec is a specification of a Lease. + * + */ +public final class LeaseCandidateSpecPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final LeaseCandidateSpecPatchArgs Empty = new LeaseCandidateSpecPatchArgs(); + + /** + * BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + */ + @Import(name="binaryVersion") + private @Nullable Output binaryVersion; + + /** + * @return BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + */ + public Optional> binaryVersion() { + return Optional.ofNullable(this.binaryVersion); + } + + /** + * EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + */ + @Import(name="emulationVersion") + private @Nullable Output emulationVersion; + + /** + * @return EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + */ + public Optional> emulationVersion() { + return Optional.ofNullable(this.emulationVersion); + } + + /** + * LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + */ + @Import(name="leaseName") + private @Nullable Output leaseName; + + /** + * @return LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + */ + public Optional> leaseName() { + return Optional.ofNullable(this.leaseName); + } + + /** + * PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + */ + @Import(name="pingTime") + private @Nullable Output pingTime; + + /** + * @return PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + */ + public Optional> pingTime() { + return Optional.ofNullable(this.pingTime); + } + + /** + * RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + */ + @Import(name="renewTime") + private @Nullable Output renewTime; + + /** + * @return RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + */ + public Optional> renewTime() { + return Optional.ofNullable(this.renewTime); + } + + /** + * Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + */ + @Import(name="strategy") + private @Nullable Output strategy; + + /** + * @return Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + */ + public Optional> strategy() { + return Optional.ofNullable(this.strategy); + } + + private LeaseCandidateSpecPatchArgs() {} + + private LeaseCandidateSpecPatchArgs(LeaseCandidateSpecPatchArgs $) { + this.binaryVersion = $.binaryVersion; + this.emulationVersion = $.emulationVersion; + this.leaseName = $.leaseName; + this.pingTime = $.pingTime; + this.renewTime = $.renewTime; + this.strategy = $.strategy; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LeaseCandidateSpecPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LeaseCandidateSpecPatchArgs $; + + public Builder() { + $ = new LeaseCandidateSpecPatchArgs(); + } + + public Builder(LeaseCandidateSpecPatchArgs defaults) { + $ = new LeaseCandidateSpecPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param binaryVersion BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + * @return builder + * + */ + public Builder binaryVersion(@Nullable Output binaryVersion) { + $.binaryVersion = binaryVersion; + return this; + } + + /** + * @param binaryVersion BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + * @return builder + * + */ + public Builder binaryVersion(String binaryVersion) { + return binaryVersion(Output.of(binaryVersion)); + } + + /** + * @param emulationVersion EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + * @return builder + * + */ + public Builder emulationVersion(@Nullable Output emulationVersion) { + $.emulationVersion = emulationVersion; + return this; + } + + /** + * @param emulationVersion EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + * @return builder + * + */ + public Builder emulationVersion(String emulationVersion) { + return emulationVersion(Output.of(emulationVersion)); + } + + /** + * @param leaseName LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + * @return builder + * + */ + public Builder leaseName(@Nullable Output leaseName) { + $.leaseName = leaseName; + return this; + } + + /** + * @param leaseName LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + * @return builder + * + */ + public Builder leaseName(String leaseName) { + return leaseName(Output.of(leaseName)); + } + + /** + * @param pingTime PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + * @return builder + * + */ + public Builder pingTime(@Nullable Output pingTime) { + $.pingTime = pingTime; + return this; + } + + /** + * @param pingTime PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + * @return builder + * + */ + public Builder pingTime(String pingTime) { + return pingTime(Output.of(pingTime)); + } + + /** + * @param renewTime RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + * @return builder + * + */ + public Builder renewTime(@Nullable Output renewTime) { + $.renewTime = renewTime; + return this; + } + + /** + * @param renewTime RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + * @return builder + * + */ + public Builder renewTime(String renewTime) { + return renewTime(Output.of(renewTime)); + } + + /** + * @param strategy Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + * @return builder + * + */ + public Builder strategy(@Nullable Output strategy) { + $.strategy = strategy; + return this; + } + + /** + * @param strategy Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + * @return builder + * + */ + public Builder strategy(String strategy) { + return strategy(Output.of(strategy)); + } + + public LeaseCandidateSpecPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidate.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidate.java new file mode 100644 index 0000000000..c9fbda2105 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidate.java @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.coordination.v1alpha2.outputs.LeaseCandidateSpec; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class LeaseCandidate { + /** + * @return 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 + * + */ + private @Nullable String apiVersion; + /** + * @return 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 + * + */ + private @Nullable String kind; + /** + * @return More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + private @Nullable LeaseCandidateSpec spec; + + private LeaseCandidate() {} + /** + * @return 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 + * + */ + public Optional apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + /** + * @return 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 + * + */ + public Optional kind() { + return Optional.ofNullable(this.kind); + } + /** + * @return More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * + */ + public Optional spec() { + return Optional.ofNullable(this.spec); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LeaseCandidate defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiVersion; + private @Nullable String kind; + private @Nullable ObjectMeta metadata; + private @Nullable LeaseCandidateSpec spec; + public Builder() {} + public Builder(LeaseCandidate defaults) { + Objects.requireNonNull(defaults); + this.apiVersion = defaults.apiVersion; + this.kind = defaults.kind; + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder apiVersion(@Nullable String apiVersion) { + + this.apiVersion = apiVersion; + return this; + } + @CustomType.Setter + public Builder kind(@Nullable String kind) { + + this.kind = kind; + return this; + } + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(@Nullable LeaseCandidateSpec spec) { + + this.spec = spec; + return this; + } + public LeaseCandidate build() { + final var _resultValue = new LeaseCandidate(); + _resultValue.apiVersion = apiVersion; + _resultValue.kind = kind; + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidateSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidateSpec.java new file mode 100644 index 0000000000..d785efbd44 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidateSpec.java @@ -0,0 +1,169 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class LeaseCandidateSpec { + /** + * @return BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + */ + private String binaryVersion; + /** + * @return EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + */ + private @Nullable String emulationVersion; + /** + * @return LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + */ + private String leaseName; + /** + * @return PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + */ + private @Nullable String pingTime; + /** + * @return RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + */ + private @Nullable String renewTime; + /** + * @return Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + */ + private String strategy; + + private LeaseCandidateSpec() {} + /** + * @return BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + */ + public String binaryVersion() { + return this.binaryVersion; + } + /** + * @return EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + */ + public Optional emulationVersion() { + return Optional.ofNullable(this.emulationVersion); + } + /** + * @return LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + */ + public String leaseName() { + return this.leaseName; + } + /** + * @return PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + */ + public Optional pingTime() { + return Optional.ofNullable(this.pingTime); + } + /** + * @return RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + */ + public Optional renewTime() { + return Optional.ofNullable(this.renewTime); + } + /** + * @return Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + */ + public String strategy() { + return this.strategy; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LeaseCandidateSpec defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String binaryVersion; + private @Nullable String emulationVersion; + private String leaseName; + private @Nullable String pingTime; + private @Nullable String renewTime; + private String strategy; + public Builder() {} + public Builder(LeaseCandidateSpec defaults) { + Objects.requireNonNull(defaults); + this.binaryVersion = defaults.binaryVersion; + this.emulationVersion = defaults.emulationVersion; + this.leaseName = defaults.leaseName; + this.pingTime = defaults.pingTime; + this.renewTime = defaults.renewTime; + this.strategy = defaults.strategy; + } + + @CustomType.Setter + public Builder binaryVersion(String binaryVersion) { + if (binaryVersion == null) { + throw new MissingRequiredPropertyException("LeaseCandidateSpec", "binaryVersion"); + } + this.binaryVersion = binaryVersion; + return this; + } + @CustomType.Setter + public Builder emulationVersion(@Nullable String emulationVersion) { + + this.emulationVersion = emulationVersion; + return this; + } + @CustomType.Setter + public Builder leaseName(String leaseName) { + if (leaseName == null) { + throw new MissingRequiredPropertyException("LeaseCandidateSpec", "leaseName"); + } + this.leaseName = leaseName; + return this; + } + @CustomType.Setter + public Builder pingTime(@Nullable String pingTime) { + + this.pingTime = pingTime; + return this; + } + @CustomType.Setter + public Builder renewTime(@Nullable String renewTime) { + + this.renewTime = renewTime; + return this; + } + @CustomType.Setter + public Builder strategy(String strategy) { + if (strategy == null) { + throw new MissingRequiredPropertyException("LeaseCandidateSpec", "strategy"); + } + this.strategy = strategy; + return this; + } + public LeaseCandidateSpec build() { + final var _resultValue = new LeaseCandidateSpec(); + _resultValue.binaryVersion = binaryVersion; + _resultValue.emulationVersion = emulationVersion; + _resultValue.leaseName = leaseName; + _resultValue.pingTime = pingTime; + _resultValue.renewTime = renewTime; + _resultValue.strategy = strategy; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidateSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidateSpecPatch.java new file mode 100644 index 0000000000..f91dc4d6ca --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/coordination/v1alpha2/outputs/LeaseCandidateSpecPatch.java @@ -0,0 +1,162 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.coordination.v1alpha2.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class LeaseCandidateSpecPatch { + /** + * @return BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + */ + private @Nullable String binaryVersion; + /** + * @return EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + */ + private @Nullable String emulationVersion; + /** + * @return LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + */ + private @Nullable String leaseName; + /** + * @return PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + */ + private @Nullable String pingTime; + /** + * @return RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + */ + private @Nullable String renewTime; + /** + * @return Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + */ + private @Nullable String strategy; + + private LeaseCandidateSpecPatch() {} + /** + * @return BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + * + */ + public Optional binaryVersion() { + return Optional.ofNullable(this.binaryVersion); + } + /** + * @return EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + * + */ + public Optional emulationVersion() { + return Optional.ofNullable(this.emulationVersion); + } + /** + * @return LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + * + */ + public Optional leaseName() { + return Optional.ofNullable(this.leaseName); + } + /** + * @return PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + * + */ + public Optional pingTime() { + return Optional.ofNullable(this.pingTime); + } + /** + * @return RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + * + */ + public Optional renewTime() { + return Optional.ofNullable(this.renewTime); + } + /** + * @return Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + * + */ + public Optional strategy() { + return Optional.ofNullable(this.strategy); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LeaseCandidateSpecPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String binaryVersion; + private @Nullable String emulationVersion; + private @Nullable String leaseName; + private @Nullable String pingTime; + private @Nullable String renewTime; + private @Nullable String strategy; + public Builder() {} + public Builder(LeaseCandidateSpecPatch defaults) { + Objects.requireNonNull(defaults); + this.binaryVersion = defaults.binaryVersion; + this.emulationVersion = defaults.emulationVersion; + this.leaseName = defaults.leaseName; + this.pingTime = defaults.pingTime; + this.renewTime = defaults.renewTime; + this.strategy = defaults.strategy; + } + + @CustomType.Setter + public Builder binaryVersion(@Nullable String binaryVersion) { + + this.binaryVersion = binaryVersion; + return this; + } + @CustomType.Setter + public Builder emulationVersion(@Nullable String emulationVersion) { + + this.emulationVersion = emulationVersion; + return this; + } + @CustomType.Setter + public Builder leaseName(@Nullable String leaseName) { + + this.leaseName = leaseName; + return this; + } + @CustomType.Setter + public Builder pingTime(@Nullable String pingTime) { + + this.pingTime = pingTime; + return this; + } + @CustomType.Setter + public Builder renewTime(@Nullable String renewTime) { + + this.renewTime = renewTime; + return this; + } + @CustomType.Setter + public Builder strategy(@Nullable String strategy) { + + this.strategy = strategy; + return this; + } + public LeaseCandidateSpecPatch build() { + final var _resultValue = new LeaseCandidateSpecPatch(); + _resultValue.binaryVersion = binaryVersion; + _resultValue.emulationVersion = emulationVersion; + _resultValue.leaseName = leaseName; + _resultValue.pingTime = pingTime; + _resultValue.renewTime = renewTime; + _resultValue.strategy = strategy; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/Binding.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/Binding.java index e9f54cbfd8..29fa914d4f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/Binding.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/Binding.java @@ -15,7 +15,7 @@ import javax.annotation.Nullable; /** - * Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + * Binding ties one object to another; for example, a pod is bound to a node by a scheduler. * */ @ResourceType(type="kubernetes:core/v1:Binding") diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/BindingPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/BindingPatch.java index bfba1cbb2c..1df7b1427d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/BindingPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/BindingPatch.java @@ -22,7 +22,7 @@ * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. - * Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + * Binding ties one object to another; for example, a pod is bound to a node by a scheduler. * */ @ResourceType(type="kubernetes:core/v1:BindingPatch") diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccount.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccount.java index 357c9dfc9d..330e28274f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccount.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccount.java @@ -94,14 +94,14 @@ public Output metadata() { return this.metadata; } /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ @Export(name="secrets", refs={List.class,ObjectReference.class}, tree="[0,1]") private Output> secrets; /** - * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ public Output> secrets() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountArgs.java index c163ed5b96..6a934b203c 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountArgs.java @@ -97,14 +97,14 @@ public Optional> metadata() { } /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ @Import(name="secrets") private @Nullable Output> secrets; /** - * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ public Optional>> secrets() { @@ -256,7 +256,7 @@ public Builder metadata(ObjectMetaArgs metadata) { } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * @@ -267,7 +267,7 @@ public Builder secrets(@Nullable Output> secrets) { } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * @@ -277,7 +277,7 @@ public Builder secrets(List secrets) { } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountPatch.java index cc41d1ca86..22ef5ea822 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountPatch.java @@ -101,14 +101,14 @@ public Output> metadata() { return Codegen.optional(this.metadata); } /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ @Export(name="secrets", refs={List.class,ObjectReferencePatch.class}, tree="[0,1]") private Output> secrets; /** - * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ public Output>> secrets() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountPatchArgs.java index a2768eb767..79b8da7a11 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/ServiceAccountPatchArgs.java @@ -97,14 +97,14 @@ public Optional> metadata() { } /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ @Import(name="secrets") private @Nullable Output> secrets; /** - * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ public Optional>> secrets() { @@ -256,7 +256,7 @@ public Builder metadata(ObjectMetaPatchArgs metadata) { } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * @@ -267,7 +267,7 @@ public Builder secrets(@Nullable Output> secrets) } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * @@ -277,7 +277,7 @@ public Builder secrets(List secrets) { } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/CSIPersistentVolumeSourceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/CSIPersistentVolumeSourceArgs.java index 96728dec86..1091eab676 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/CSIPersistentVolumeSourceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/CSIPersistentVolumeSourceArgs.java @@ -16,7 +16,7 @@ /** - * Represents storage that is managed by an external CSI volume driver (Beta feature) + * Represents storage that is managed by an external CSI volume driver * */ public final class CSIPersistentVolumeSourceArgs extends com.pulumi.resources.ResourceArgs { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/CSIPersistentVolumeSourcePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/CSIPersistentVolumeSourcePatchArgs.java index 9552dc0fb5..6c51a02848 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/CSIPersistentVolumeSourcePatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/CSIPersistentVolumeSourcePatchArgs.java @@ -15,7 +15,7 @@ /** - * Represents storage that is managed by an external CSI volume driver (Beta feature) + * Represents storage that is managed by an external CSI volume driver * */ public final class CSIPersistentVolumeSourcePatchArgs extends com.pulumi.resources.ResourceArgs { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/GRPCActionArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/GRPCActionArgs.java index 6348ee0676..7a45f4e24e 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/GRPCActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/GRPCActionArgs.java @@ -13,6 +13,10 @@ import javax.annotation.Nullable; +/** + * GRPCAction specifies an action involving a GRPC service. + * + */ public final class GRPCActionArgs extends com.pulumi.resources.ResourceArgs { public static final GRPCActionArgs Empty = new GRPCActionArgs(); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/GRPCActionPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/GRPCActionPatchArgs.java index 5cdd9d4467..f4e3a803d1 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/GRPCActionPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/GRPCActionPatchArgs.java @@ -12,6 +12,10 @@ import javax.annotation.Nullable; +/** + * GRPCAction specifies an action involving a GRPC service. + * + */ public final class GRPCActionPatchArgs extends com.pulumi.resources.ResourceArgs { public static final GRPCActionPatchArgs Empty = new GRPCActionPatchArgs(); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LifecycleHandlerArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LifecycleHandlerArgs.java index 5431d315aa..5e17f51282 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LifecycleHandlerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LifecycleHandlerArgs.java @@ -23,14 +23,14 @@ public final class LifecycleHandlerArgs extends com.pulumi.resources.ResourceArg public static final LifecycleHandlerArgs Empty = new LifecycleHandlerArgs(); /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. * */ @Import(name="exec") private @Nullable Output exec; /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ public Optional> exec() { @@ -38,14 +38,14 @@ public Optional> exec() { } /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. * */ @Import(name="httpGet") private @Nullable Output httpGet; /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ public Optional> httpGet() { @@ -53,14 +53,14 @@ public Optional> httpGet() { } /** - * Sleep represents the duration that the container should sleep before being terminated. + * Sleep represents a duration that the container should sleep. * */ @Import(name="sleep") private @Nullable Output sleep; /** - * @return Sleep represents the duration that the container should sleep before being terminated. + * @return Sleep represents a duration that the container should sleep. * */ public Optional> sleep() { @@ -68,14 +68,14 @@ public Optional> sleep() { } /** - * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * */ @Import(name="tcpSocket") private @Nullable Output tcpSocket; /** - * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * */ public Optional> tcpSocket() { @@ -110,7 +110,7 @@ public Builder(LifecycleHandlerArgs defaults) { } /** - * @param exec Exec specifies the action to take. + * @param exec Exec specifies a command to execute in the container. * * @return builder * @@ -121,7 +121,7 @@ public Builder exec(@Nullable Output exec) { } /** - * @param exec Exec specifies the action to take. + * @param exec Exec specifies a command to execute in the container. * * @return builder * @@ -131,7 +131,7 @@ public Builder exec(ExecActionArgs exec) { } /** - * @param httpGet HTTPGet specifies the http request to perform. + * @param httpGet HTTPGet specifies an HTTP GET request to perform. * * @return builder * @@ -142,7 +142,7 @@ public Builder httpGet(@Nullable Output httpGet) { } /** - * @param httpGet HTTPGet specifies the http request to perform. + * @param httpGet HTTPGet specifies an HTTP GET request to perform. * * @return builder * @@ -152,7 +152,7 @@ public Builder httpGet(HTTPGetActionArgs httpGet) { } /** - * @param sleep Sleep represents the duration that the container should sleep before being terminated. + * @param sleep Sleep represents a duration that the container should sleep. * * @return builder * @@ -163,7 +163,7 @@ public Builder sleep(@Nullable Output sleep) { } /** - * @param sleep Sleep represents the duration that the container should sleep before being terminated. + * @param sleep Sleep represents a duration that the container should sleep. * * @return builder * @@ -173,7 +173,7 @@ public Builder sleep(SleepActionArgs sleep) { } /** - * @param tcpSocket Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @param tcpSocket Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * * @return builder * @@ -184,7 +184,7 @@ public Builder tcpSocket(@Nullable Output tcpSocket) { } /** - * @param tcpSocket Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @param tcpSocket Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LifecycleHandlerPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LifecycleHandlerPatchArgs.java index 70f5e90a46..d3afefc767 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LifecycleHandlerPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LifecycleHandlerPatchArgs.java @@ -23,14 +23,14 @@ public final class LifecycleHandlerPatchArgs extends com.pulumi.resources.Resour public static final LifecycleHandlerPatchArgs Empty = new LifecycleHandlerPatchArgs(); /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. * */ @Import(name="exec") private @Nullable Output exec; /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ public Optional> exec() { @@ -38,14 +38,14 @@ public Optional> exec() { } /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. * */ @Import(name="httpGet") private @Nullable Output httpGet; /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ public Optional> httpGet() { @@ -53,14 +53,14 @@ public Optional> httpGet() { } /** - * Sleep represents the duration that the container should sleep before being terminated. + * Sleep represents a duration that the container should sleep. * */ @Import(name="sleep") private @Nullable Output sleep; /** - * @return Sleep represents the duration that the container should sleep before being terminated. + * @return Sleep represents a duration that the container should sleep. * */ public Optional> sleep() { @@ -68,14 +68,14 @@ public Optional> sleep() { } /** - * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * */ @Import(name="tcpSocket") private @Nullable Output tcpSocket; /** - * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * */ public Optional> tcpSocket() { @@ -110,7 +110,7 @@ public Builder(LifecycleHandlerPatchArgs defaults) { } /** - * @param exec Exec specifies the action to take. + * @param exec Exec specifies a command to execute in the container. * * @return builder * @@ -121,7 +121,7 @@ public Builder exec(@Nullable Output exec) { } /** - * @param exec Exec specifies the action to take. + * @param exec Exec specifies a command to execute in the container. * * @return builder * @@ -131,7 +131,7 @@ public Builder exec(ExecActionPatchArgs exec) { } /** - * @param httpGet HTTPGet specifies the http request to perform. + * @param httpGet HTTPGet specifies an HTTP GET request to perform. * * @return builder * @@ -142,7 +142,7 @@ public Builder httpGet(@Nullable Output httpGet) { } /** - * @param httpGet HTTPGet specifies the http request to perform. + * @param httpGet HTTPGet specifies an HTTP GET request to perform. * * @return builder * @@ -152,7 +152,7 @@ public Builder httpGet(HTTPGetActionPatchArgs httpGet) { } /** - * @param sleep Sleep represents the duration that the container should sleep before being terminated. + * @param sleep Sleep represents a duration that the container should sleep. * * @return builder * @@ -163,7 +163,7 @@ public Builder sleep(@Nullable Output sleep) { } /** - * @param sleep Sleep represents the duration that the container should sleep before being terminated. + * @param sleep Sleep represents a duration that the container should sleep. * * @return builder * @@ -173,7 +173,7 @@ public Builder sleep(SleepActionPatchArgs sleep) { } /** - * @param tcpSocket Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @param tcpSocket Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * * @return builder * @@ -184,7 +184,7 @@ public Builder tcpSocket(@Nullable Output tcpSocket) { } /** - * @param tcpSocket Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @param tcpSocket Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LocalVolumeSourceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LocalVolumeSourceArgs.java index 40f73f90a6..52d75af385 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LocalVolumeSourceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LocalVolumeSourceArgs.java @@ -13,7 +13,7 @@ /** - * Local represents directly-attached storage with node affinity (Beta feature) + * Local represents directly-attached storage with node affinity * */ public final class LocalVolumeSourceArgs extends com.pulumi.resources.ResourceArgs { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LocalVolumeSourcePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LocalVolumeSourcePatchArgs.java index 8307205b89..25638525bb 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LocalVolumeSourcePatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/LocalVolumeSourcePatchArgs.java @@ -12,7 +12,7 @@ /** - * Local represents directly-attached storage with node affinity (Beta feature) + * Local represents directly-attached storage with node affinity * */ public final class LocalVolumeSourcePatchArgs extends com.pulumi.resources.ResourceArgs { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/NamespaceConditionArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/NamespaceConditionArgs.java index 3e25e0370e..62baf05837 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/NamespaceConditionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/NamespaceConditionArgs.java @@ -20,23 +20,47 @@ public final class NamespaceConditionArgs extends com.pulumi.resources.ResourceA public static final NamespaceConditionArgs Empty = new NamespaceConditionArgs(); + /** + * Last time the condition transitioned from one status to another. + * + */ @Import(name="lastTransitionTime") private @Nullable Output lastTransitionTime; + /** + * @return Last time the condition transitioned from one status to another. + * + */ public Optional> lastTransitionTime() { return Optional.ofNullable(this.lastTransitionTime); } + /** + * Human-readable message indicating details about last transition. + * + */ @Import(name="message") private @Nullable Output message; + /** + * @return Human-readable message indicating details about last transition. + * + */ public Optional> message() { return Optional.ofNullable(this.message); } + /** + * Unique, one-word, CamelCase reason for the condition's last transition. + * + */ @Import(name="reason") private @Nullable Output reason; + /** + * @return Unique, one-word, CamelCase reason for the condition's last transition. + * + */ public Optional> reason() { return Optional.ofNullable(this.reason); } @@ -99,29 +123,65 @@ public Builder(NamespaceConditionArgs defaults) { $ = new NamespaceConditionArgs(Objects.requireNonNull(defaults)); } + /** + * @param lastTransitionTime Last time the condition transitioned from one status to another. + * + * @return builder + * + */ public Builder lastTransitionTime(@Nullable Output lastTransitionTime) { $.lastTransitionTime = lastTransitionTime; return this; } + /** + * @param lastTransitionTime Last time the condition transitioned from one status to another. + * + * @return builder + * + */ public Builder lastTransitionTime(String lastTransitionTime) { return lastTransitionTime(Output.of(lastTransitionTime)); } + /** + * @param message Human-readable message indicating details about last transition. + * + * @return builder + * + */ public Builder message(@Nullable Output message) { $.message = message; return this; } + /** + * @param message Human-readable message indicating details about last transition. + * + * @return builder + * + */ public Builder message(String message) { return message(Output.of(message)); } + /** + * @param reason Unique, one-word, CamelCase reason for the condition's last transition. + * + * @return builder + * + */ public Builder reason(@Nullable Output reason) { $.reason = reason; return this; } + /** + * @param reason Unique, one-word, CamelCase reason for the condition's last transition. + * + * @return builder + * + */ public Builder reason(String reason) { return reason(Output.of(reason)); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/NodeStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/NodeStatusArgs.java index fe05b12149..f65d2f0a23 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/NodeStatusArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/NodeStatusArgs.java @@ -31,14 +31,14 @@ public final class NodeStatusArgs extends com.pulumi.resources.ResourceArgs { public static final NodeStatusArgs Empty = new NodeStatusArgs(); /** - * List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * */ @Import(name="addresses") private @Nullable Output> addresses; /** - * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * */ public Optional>> addresses() { @@ -76,14 +76,14 @@ public Optional>> capacity() { } /** - * Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * */ @Import(name="conditions") private @Nullable Output> conditions; /** - * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * */ public Optional>> conditions() { @@ -151,14 +151,14 @@ public Optional>> images() { } /** - * Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info * */ @Import(name="nodeInfo") private @Nullable Output nodeInfo; /** - * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info * */ public Optional> nodeInfo() { @@ -262,7 +262,7 @@ public Builder(NodeStatusArgs defaults) { } /** - * @param addresses List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * @param addresses List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * * @return builder * @@ -273,7 +273,7 @@ public Builder addresses(@Nullable Output> addresses) { } /** - * @param addresses List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * @param addresses List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * * @return builder * @@ -283,7 +283,7 @@ public Builder addresses(List addresses) { } /** - * @param addresses List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * @param addresses List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * * @return builder * @@ -335,7 +335,7 @@ public Builder capacity(Map capacity) { } /** - * @param conditions Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * @param conditions Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * * @return builder * @@ -346,7 +346,7 @@ public Builder conditions(@Nullable Output> conditions) } /** - * @param conditions Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * @param conditions Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * * @return builder * @@ -356,7 +356,7 @@ public Builder conditions(List conditions) { } /** - * @param conditions Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * @param conditions Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * * @return builder * @@ -460,7 +460,7 @@ public Builder images(ContainerImageArgs... images) { } /** - * @param nodeInfo Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * @param nodeInfo Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info * * @return builder * @@ -471,7 +471,7 @@ public Builder nodeInfo(@Nullable Output nodeInfo) { } /** - * @param nodeInfo Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * @param nodeInfo Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeClaimConditionArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeClaimConditionArgs.java index 2db08ea448..987d874651 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeClaimConditionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeClaimConditionArgs.java @@ -80,16 +80,32 @@ public Optional> reason() { return Optional.ofNullable(this.reason); } + /** + * Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + */ @Import(name="status", required=true) private Output status; + /** + * @return Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + */ public Output status() { return this.status; } + /** + * Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + */ @Import(name="type", required=true) private Output type; + /** + * @return Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + */ public Output type() { return this.type; } @@ -207,20 +223,44 @@ public Builder reason(String reason) { return reason(Output.of(reason)); } + /** + * @param status Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + * @return builder + * + */ public Builder status(Output status) { $.status = status; return this; } + /** + * @param status Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + * @return builder + * + */ public Builder status(String status) { return status(Output.of(status)); } + /** + * @param type Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + * @return builder + * + */ public Builder type(Output type) { $.type = type; return this; } + /** + * @param type Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + * @return builder + * + */ public Builder type(String type) { return type(Output.of(type)); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeClaimConditionPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeClaimConditionPatchArgs.java index 13d06409ff..0073638539 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeClaimConditionPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeClaimConditionPatchArgs.java @@ -79,16 +79,32 @@ public Optional> reason() { return Optional.ofNullable(this.reason); } + /** + * Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + */ @Import(name="status") private @Nullable Output status; + /** + * @return Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + */ public Optional> status() { return Optional.ofNullable(this.status); } + /** + * Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + */ @Import(name="type") private @Nullable Output type; + /** + * @return Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + */ public Optional> type() { return Optional.ofNullable(this.type); } @@ -206,20 +222,44 @@ public Builder reason(String reason) { return reason(Output.of(reason)); } + /** + * @param status Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + * @return builder + * + */ public Builder status(@Nullable Output status) { $.status = status; return this; } + /** + * @param status Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + * @return builder + * + */ public Builder status(String status) { return status(Output.of(status)); } + /** + * @param type Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + * @return builder + * + */ public Builder type(@Nullable Output type) { $.type = type; return this; } + /** + * @param type Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + * @return builder + * + */ public Builder type(String type) { return type(Output.of(type)); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeSpecArgs.java index d0364f405e..1d84a7de6a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PersistentVolumeSpecArgs.java @@ -61,14 +61,14 @@ public Optional>> accessModes() { } /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ @Import(name="awsElasticBlockStore") private @Nullable Output awsElasticBlockStore; /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ public Optional> awsElasticBlockStore() { @@ -76,14 +76,14 @@ public Optional> awsElasticBlockSto } /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ @Import(name="azureDisk") private @Nullable Output azureDisk; /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ public Optional> azureDisk() { @@ -91,14 +91,14 @@ public Optional> azureDisk() { } /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ @Import(name="azureFile") private @Nullable Output azureFile; /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ public Optional> azureFile() { @@ -121,14 +121,14 @@ public Optional>> capacity() { } /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ @Import(name="cephfs") private @Nullable Output cephfs; /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ public Optional> cephfs() { @@ -136,14 +136,14 @@ public Optional> cephfs() { } /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ @Import(name="cinder") private @Nullable Output cinder; /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ public Optional> cinder() { @@ -166,14 +166,14 @@ public Optional> claimRef() { } /** - * csi represents storage that is handled by an external CSI driver (Beta feature). + * csi represents storage that is handled by an external CSI driver. * */ @Import(name="csi") private @Nullable Output csi; /** - * @return csi represents storage that is handled by an external CSI driver (Beta feature). + * @return csi represents storage that is handled by an external CSI driver. * */ public Optional> csi() { @@ -196,14 +196,14 @@ public Optional> fc() { } /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ @Import(name="flexVolume") private @Nullable Output flexVolume; /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ public Optional> flexVolume() { @@ -211,14 +211,14 @@ public Optional> flexVolume() { } /** - * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ @Import(name="flocker") private @Nullable Output flocker; /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ public Optional> flocker() { @@ -226,14 +226,14 @@ public Optional> flocker() { } /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ @Import(name="gcePersistentDisk") private @Nullable Output gcePersistentDisk; /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ public Optional> gcePersistentDisk() { @@ -241,14 +241,14 @@ public Optional> gcePersistentDisk() { } /** - * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ @Import(name="glusterfs") private @Nullable Output glusterfs; /** - * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ public Optional> glusterfs() { @@ -361,14 +361,14 @@ public Optional> persistentVolumeReclaimPolicy() { } /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ @Import(name="photonPersistentDisk") private @Nullable Output photonPersistentDisk; /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ public Optional> photonPersistentDisk() { @@ -376,14 +376,14 @@ public Optional> photonPersistentDi } /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ @Import(name="portworxVolume") private @Nullable Output portworxVolume; /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ public Optional> portworxVolume() { @@ -391,14 +391,14 @@ public Optional> portworxVolume() { } /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ @Import(name="quobyte") private @Nullable Output quobyte; /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ public Optional> quobyte() { @@ -406,14 +406,14 @@ public Optional> quobyte() { } /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ @Import(name="rbd") private @Nullable Output rbd; /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ public Optional> rbd() { @@ -421,14 +421,14 @@ public Optional> rbd() { } /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ @Import(name="scaleIO") private @Nullable Output scaleIO; /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ public Optional> scaleIO() { @@ -451,14 +451,14 @@ public Optional> storageClassName() { } /** - * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * */ @Import(name="storageos") private @Nullable Output storageos; /** - * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * */ public Optional> storageos() { @@ -496,14 +496,14 @@ public Optional> volumeMode() { } /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ @Import(name="vsphereVolume") private @Nullable Output vsphereVolume; /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ public Optional> vsphereVolume() { @@ -596,7 +596,7 @@ public Builder accessModes(String... accessModes) { } /** - * @param awsElasticBlockStore awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @param awsElasticBlockStore awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * * @return builder * @@ -607,7 +607,7 @@ public Builder awsElasticBlockStore(@Nullable Output azureDisk) } /** - * @param azureDisk azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @param azureDisk azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * * @return builder * @@ -638,7 +638,7 @@ public Builder azureDisk(AzureDiskVolumeSourceArgs azureDisk) { } /** - * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * * @return builder * @@ -649,7 +649,7 @@ public Builder azureFile(@Nullable Output a } /** - * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * * @return builder * @@ -680,7 +680,7 @@ public Builder capacity(Map capacity) { } /** - * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * * @return builder * @@ -691,7 +691,7 @@ public Builder cephfs(@Nullable Output cephfs) } /** - * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * * @return builder * @@ -701,7 +701,7 @@ public Builder cephfs(CephFSPersistentVolumeSourceArgs cephfs) { } /** - * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * * @return builder * @@ -712,7 +712,7 @@ public Builder cinder(@Nullable Output cinder) } /** - * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * * @return builder * @@ -743,7 +743,7 @@ public Builder claimRef(ObjectReferenceArgs claimRef) { } /** - * @param csi csi represents storage that is handled by an external CSI driver (Beta feature). + * @param csi csi represents storage that is handled by an external CSI driver. * * @return builder * @@ -754,7 +754,7 @@ public Builder csi(@Nullable Output csi) { } /** - * @param csi csi represents storage that is handled by an external CSI driver (Beta feature). + * @param csi csi represents storage that is handled by an external CSI driver. * * @return builder * @@ -785,7 +785,7 @@ public Builder fc(FCVolumeSourceArgs fc) { } /** - * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * * @return builder * @@ -796,7 +796,7 @@ public Builder flexVolume(@Nullable Output flexV } /** - * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * * @return builder * @@ -806,7 +806,7 @@ public Builder flexVolume(FlexPersistentVolumeSourceArgs flexVolume) { } /** - * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * * @return builder * @@ -817,7 +817,7 @@ public Builder flocker(@Nullable Output flocker) { } /** - * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * * @return builder * @@ -827,7 +827,7 @@ public Builder flocker(FlockerVolumeSourceArgs flocker) { } /** - * @param gcePersistentDisk gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @param gcePersistentDisk gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * * @return builder * @@ -838,7 +838,7 @@ public Builder gcePersistentDisk(@Nullable Output g } /** - * @param glusterfs glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @param glusterfs glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * * @return builder * @@ -1026,7 +1026,7 @@ public Builder persistentVolumeReclaimPolicy(String persistentVolumeReclaimPolic } /** - * @param photonPersistentDisk photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @param photonPersistentDisk photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * * @return builder * @@ -1037,7 +1037,7 @@ public Builder photonPersistentDisk(@Nullable Output portwor } /** - * @param portworxVolume portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @param portworxVolume portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * * @return builder * @@ -1068,7 +1068,7 @@ public Builder portworxVolume(PortworxVolumeSourceArgs portworxVolume) { } /** - * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * * @return builder * @@ -1079,7 +1079,7 @@ public Builder quobyte(@Nullable Output quobyte) { } /** - * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * * @return builder * @@ -1089,7 +1089,7 @@ public Builder quobyte(QuobyteVolumeSourceArgs quobyte) { } /** - * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * * @return builder * @@ -1100,7 +1100,7 @@ public Builder rbd(@Nullable Output rbd) { } /** - * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * * @return builder * @@ -1110,7 +1110,7 @@ public Builder rbd(RBDPersistentVolumeSourceArgs rbd) { } /** - * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * * @return builder * @@ -1121,7 +1121,7 @@ public Builder scaleIO(@Nullable Output scale } /** - * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * * @return builder * @@ -1152,7 +1152,7 @@ public Builder storageClassName(String storageClassName) { } /** - * @param storageos storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @param storageos storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * * @return builder * @@ -1163,7 +1163,7 @@ public Builder storageos(@Nullable Output s } /** - * @param storageos storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @param storageos storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * * @return builder * @@ -1215,7 +1215,7 @@ public Builder volumeMode(String volumeMode) { } /** - * @param vsphereVolume vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @param vsphereVolume vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * * @return builder * @@ -1226,7 +1226,7 @@ public Builder vsphereVolume(@Nullable Output>> accessModes() { } /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ @Import(name="awsElasticBlockStore") private @Nullable Output awsElasticBlockStore; /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ public Optional> awsElasticBlockStore() { @@ -76,14 +76,14 @@ public Optional> awsElasticBlo } /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ @Import(name="azureDisk") private @Nullable Output azureDisk; /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ public Optional> azureDisk() { @@ -91,14 +91,14 @@ public Optional> azureDisk() { } /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ @Import(name="azureFile") private @Nullable Output azureFile; /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ public Optional> azureFile() { @@ -121,14 +121,14 @@ public Optional>> capacity() { } /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ @Import(name="cephfs") private @Nullable Output cephfs; /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ public Optional> cephfs() { @@ -136,14 +136,14 @@ public Optional> cephfs() { } /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ @Import(name="cinder") private @Nullable Output cinder; /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ public Optional> cinder() { @@ -166,14 +166,14 @@ public Optional> claimRef() { } /** - * csi represents storage that is handled by an external CSI driver (Beta feature). + * csi represents storage that is handled by an external CSI driver. * */ @Import(name="csi") private @Nullable Output csi; /** - * @return csi represents storage that is handled by an external CSI driver (Beta feature). + * @return csi represents storage that is handled by an external CSI driver. * */ public Optional> csi() { @@ -196,14 +196,14 @@ public Optional> fc() { } /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ @Import(name="flexVolume") private @Nullable Output flexVolume; /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ public Optional> flexVolume() { @@ -211,14 +211,14 @@ public Optional> flexVolume() { } /** - * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ @Import(name="flocker") private @Nullable Output flocker; /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ public Optional> flocker() { @@ -226,14 +226,14 @@ public Optional> flocker() { } /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ @Import(name="gcePersistentDisk") private @Nullable Output gcePersistentDisk; /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ public Optional> gcePersistentDisk() { @@ -241,14 +241,14 @@ public Optional> gcePersistentDis } /** - * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ @Import(name="glusterfs") private @Nullable Output glusterfs; /** - * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ public Optional> glusterfs() { @@ -361,14 +361,14 @@ public Optional> persistentVolumeReclaimPolicy() { } /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ @Import(name="photonPersistentDisk") private @Nullable Output photonPersistentDisk; /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ public Optional> photonPersistentDisk() { @@ -376,14 +376,14 @@ public Optional> photonPersist } /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ @Import(name="portworxVolume") private @Nullable Output portworxVolume; /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ public Optional> portworxVolume() { @@ -391,14 +391,14 @@ public Optional> portworxVolume() { } /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ @Import(name="quobyte") private @Nullable Output quobyte; /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ public Optional> quobyte() { @@ -406,14 +406,14 @@ public Optional> quobyte() { } /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ @Import(name="rbd") private @Nullable Output rbd; /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ public Optional> rbd() { @@ -421,14 +421,14 @@ public Optional> rbd() { } /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ @Import(name="scaleIO") private @Nullable Output scaleIO; /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ public Optional> scaleIO() { @@ -451,14 +451,14 @@ public Optional> storageClassName() { } /** - * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * */ @Import(name="storageos") private @Nullable Output storageos; /** - * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * */ public Optional> storageos() { @@ -496,14 +496,14 @@ public Optional> volumeMode() { } /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ @Import(name="vsphereVolume") private @Nullable Output vsphereVolume; /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ public Optional> vsphereVolume() { @@ -596,7 +596,7 @@ public Builder accessModes(String... accessModes) { } /** - * @param awsElasticBlockStore awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @param awsElasticBlockStore awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * * @return builder * @@ -607,7 +607,7 @@ public Builder awsElasticBlockStore(@Nullable Output azureD } /** - * @param azureDisk azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @param azureDisk azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * * @return builder * @@ -638,7 +638,7 @@ public Builder azureDisk(AzureDiskVolumeSourcePatchArgs azureDisk) { } /** - * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * * @return builder * @@ -649,7 +649,7 @@ public Builder azureFile(@Nullable Output capacity) { } /** - * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * * @return builder * @@ -691,7 +691,7 @@ public Builder cephfs(@Nullable Output ce } /** - * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * * @return builder * @@ -701,7 +701,7 @@ public Builder cephfs(CephFSPersistentVolumeSourcePatchArgs cephfs) { } /** - * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * * @return builder * @@ -712,7 +712,7 @@ public Builder cinder(@Nullable Output ci } /** - * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * * @return builder * @@ -743,7 +743,7 @@ public Builder claimRef(ObjectReferencePatchArgs claimRef) { } /** - * @param csi csi represents storage that is handled by an external CSI driver (Beta feature). + * @param csi csi represents storage that is handled by an external CSI driver. * * @return builder * @@ -754,7 +754,7 @@ public Builder csi(@Nullable Output csi) { } /** - * @param csi csi represents storage that is handled by an external CSI driver (Beta feature). + * @param csi csi represents storage that is handled by an external CSI driver. * * @return builder * @@ -785,7 +785,7 @@ public Builder fc(FCVolumeSourcePatchArgs fc) { } /** - * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * * @return builder * @@ -796,7 +796,7 @@ public Builder flexVolume(@Nullable Output } /** - * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * * @return builder * @@ -806,7 +806,7 @@ public Builder flexVolume(FlexPersistentVolumeSourcePatchArgs flexVolume) { } /** - * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * * @return builder * @@ -817,7 +817,7 @@ public Builder flocker(@Nullable Output flocker) { } /** - * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * * @return builder * @@ -827,7 +827,7 @@ public Builder flocker(FlockerVolumeSourcePatchArgs flocker) { } /** - * @param gcePersistentDisk gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @param gcePersistentDisk gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * * @return builder * @@ -838,7 +838,7 @@ public Builder gcePersistentDisk(@Nullable Output po } /** - * @param portworxVolume portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @param portworxVolume portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * * @return builder * @@ -1068,7 +1068,7 @@ public Builder portworxVolume(PortworxVolumeSourcePatchArgs portworxVolume) { } /** - * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * * @return builder * @@ -1079,7 +1079,7 @@ public Builder quobyte(@Nullable Output quobyte) { } /** - * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * * @return builder * @@ -1089,7 +1089,7 @@ public Builder quobyte(QuobyteVolumeSourcePatchArgs quobyte) { } /** - * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * * @return builder * @@ -1100,7 +1100,7 @@ public Builder rbd(@Nullable Output rbd) { } /** - * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * * @return builder * @@ -1110,7 +1110,7 @@ public Builder rbd(RBDPersistentVolumeSourcePatchArgs rbd) { } /** - * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * * @return builder * @@ -1121,7 +1121,7 @@ public Builder scaleIO(@Nullable Output } /** - * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * * @return builder * @@ -1152,7 +1152,7 @@ public Builder storageClassName(String storageClassName) { } /** - * @param storageos storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @param storageos storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * * @return builder * @@ -1163,7 +1163,7 @@ public Builder storageos(@Nullable Output name; /** - * @return Required. + * @return Name is this DNS resolver option's name. Required. * */ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * Value is this DNS resolver option's value. + * + */ @Import(name="value") private @Nullable Output value; + /** + * @return Value is this DNS resolver option's value. + * + */ public Optional> value() { return Optional.ofNullable(this.value); } @@ -67,7 +75,7 @@ public Builder(PodDNSConfigOptionArgs defaults) { } /** - * @param name Required. + * @param name Name is this DNS resolver option's name. Required. * * @return builder * @@ -78,7 +86,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name Required. + * @param name Name is this DNS resolver option's name. Required. * * @return builder * @@ -87,11 +95,23 @@ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param value Value is this DNS resolver option's value. + * + * @return builder + * + */ public Builder value(@Nullable Output value) { $.value = value; return this; } + /** + * @param value Value is this DNS resolver option's value. + * + * @return builder + * + */ public Builder value(String value) { return value(Output.of(value)); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodDNSConfigOptionPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodDNSConfigOptionPatchArgs.java index d153f04c58..97f9dcbf3f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodDNSConfigOptionPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodDNSConfigOptionPatchArgs.java @@ -20,23 +20,31 @@ public final class PodDNSConfigOptionPatchArgs extends com.pulumi.resources.Reso public static final PodDNSConfigOptionPatchArgs Empty = new PodDNSConfigOptionPatchArgs(); /** - * Required. + * Name is this DNS resolver option's name. Required. * */ @Import(name="name") private @Nullable Output name; /** - * @return Required. + * @return Name is this DNS resolver option's name. Required. * */ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * Value is this DNS resolver option's value. + * + */ @Import(name="value") private @Nullable Output value; + /** + * @return Value is this DNS resolver option's value. + * + */ public Optional> value() { return Optional.ofNullable(this.value); } @@ -67,7 +75,7 @@ public Builder(PodDNSConfigOptionPatchArgs defaults) { } /** - * @param name Required. + * @param name Name is this DNS resolver option's name. Required. * * @return builder * @@ -78,7 +86,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name Required. + * @param name Name is this DNS resolver option's name. Required. * * @return builder * @@ -87,11 +95,23 @@ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param value Value is this DNS resolver option's value. + * + * @return builder + * + */ public Builder value(@Nullable Output value) { $.value = value; return this; } + /** + * @param value Value is this DNS resolver option's value. + * + * @return builder + * + */ public Builder value(String value) { return value(Output.of(value)); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSecurityContextArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSecurityContextArgs.java index 18e16e1cad..dd6b55ae5f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSecurityContextArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSecurityContextArgs.java @@ -125,6 +125,41 @@ public Optional> runAsUser() { return Optional.ofNullable(this.runAsUser); } + /** + * seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + */ + @Import(name="seLinuxChangePolicy") + private @Nullable Output seLinuxChangePolicy; + + /** + * @return seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + */ + public Optional> seLinuxChangePolicy() { + return Optional.ofNullable(this.seLinuxChangePolicy); + } + /** * The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. * @@ -224,6 +259,7 @@ private PodSecurityContextArgs(PodSecurityContextArgs $) { this.runAsGroup = $.runAsGroup; this.runAsNonRoot = $.runAsNonRoot; this.runAsUser = $.runAsUser; + this.seLinuxChangePolicy = $.seLinuxChangePolicy; this.seLinuxOptions = $.seLinuxOptions; this.seccompProfile = $.seccompProfile; this.supplementalGroups = $.supplementalGroups; @@ -384,6 +420,47 @@ public Builder runAsUser(Integer runAsUser) { return runAsUser(Output.of(runAsUser)); } + /** + * @param seLinuxChangePolicy seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + * @return builder + * + */ + public Builder seLinuxChangePolicy(@Nullable Output seLinuxChangePolicy) { + $.seLinuxChangePolicy = seLinuxChangePolicy; + return this; + } + + /** + * @param seLinuxChangePolicy seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + * @return builder + * + */ + public Builder seLinuxChangePolicy(String seLinuxChangePolicy) { + return seLinuxChangePolicy(Output.of(seLinuxChangePolicy)); + } + /** * @param seLinuxOptions The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSecurityContextPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSecurityContextPatchArgs.java index 722e42210d..786845c28f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSecurityContextPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSecurityContextPatchArgs.java @@ -125,6 +125,41 @@ public Optional> runAsUser() { return Optional.ofNullable(this.runAsUser); } + /** + * seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + */ + @Import(name="seLinuxChangePolicy") + private @Nullable Output seLinuxChangePolicy; + + /** + * @return seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + */ + public Optional> seLinuxChangePolicy() { + return Optional.ofNullable(this.seLinuxChangePolicy); + } + /** * The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. * @@ -224,6 +259,7 @@ private PodSecurityContextPatchArgs(PodSecurityContextPatchArgs $) { this.runAsGroup = $.runAsGroup; this.runAsNonRoot = $.runAsNonRoot; this.runAsUser = $.runAsUser; + this.seLinuxChangePolicy = $.seLinuxChangePolicy; this.seLinuxOptions = $.seLinuxOptions; this.seccompProfile = $.seccompProfile; this.supplementalGroups = $.supplementalGroups; @@ -384,6 +420,47 @@ public Builder runAsUser(Integer runAsUser) { return runAsUser(Output.of(runAsUser)); } + /** + * @param seLinuxChangePolicy seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + * @return builder + * + */ + public Builder seLinuxChangePolicy(@Nullable Output seLinuxChangePolicy) { + $.seLinuxChangePolicy = seLinuxChangePolicy; + return this; + } + + /** + * @param seLinuxChangePolicy seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + * @return builder + * + */ + public Builder seLinuxChangePolicy(String seLinuxChangePolicy) { + return seLinuxChangePolicy(Output.of(seLinuxChangePolicy)); + } + /** * @param seLinuxOptions The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSpecArgs.java index 0d252124db..2abcc78a14 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSpecArgs.java @@ -17,6 +17,7 @@ import com.pulumi.kubernetes.core.v1.inputs.PodResourceClaimArgs; import com.pulumi.kubernetes.core.v1.inputs.PodSchedulingGateArgs; import com.pulumi.kubernetes.core.v1.inputs.PodSecurityContextArgs; +import com.pulumi.kubernetes.core.v1.inputs.ResourceRequirementsArgs; import com.pulumi.kubernetes.core.v1.inputs.TolerationArgs; import com.pulumi.kubernetes.core.v1.inputs.TopologySpreadConstraintArgs; import com.pulumi.kubernetes.core.v1.inputs.VolumeArgs; @@ -429,6 +430,29 @@ public Optional>> resourceClaims() { return Optional.ofNullable(this.resourceClaims); } + /** + * Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + */ + @Import(name="resources") + private @Nullable Output resources; + + /** + * @return Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + */ + public Optional> resources() { + return Optional.ofNullable(this.resources); + } + /** * Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy * @@ -539,14 +563,14 @@ public Optional> serviceAccountName() { } /** - * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * */ @Import(name="setHostnameAsFQDN") private @Nullable Output setHostnameAsFQDN; /** - * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * */ public Optional> setHostnameAsFQDN() { @@ -671,6 +695,7 @@ private PodSpecArgs(PodSpecArgs $) { this.priorityClassName = $.priorityClassName; this.readinessGates = $.readinessGates; this.resourceClaims = $.resourceClaims; + this.resources = $.resources; this.restartPolicy = $.restartPolicy; this.runtimeClassName = $.runtimeClassName; this.schedulerName = $.schedulerName; @@ -1320,6 +1345,35 @@ public Builder resourceClaims(PodResourceClaimArgs... resourceClaims) { return resourceClaims(List.of(resourceClaims)); } + /** + * @param resources Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + * @return builder + * + */ + public Builder resources(@Nullable Output resources) { + $.resources = resources; + return this; + } + + /** + * @param resources Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + * @return builder + * + */ + public Builder resources(ResourceRequirementsArgs resources) { + return resources(Output.of(resources)); + } + /** * @param restartPolicy Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy * @@ -1484,7 +1538,7 @@ public Builder serviceAccountName(String serviceAccountName) { } /** - * @param setHostnameAsFQDN If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @param setHostnameAsFQDN If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * * @return builder * @@ -1495,7 +1549,7 @@ public Builder setHostnameAsFQDN(@Nullable Output setHostnameAsFQDN) { } /** - * @param setHostnameAsFQDN If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @param setHostnameAsFQDN If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSpecPatchArgs.java index cf399675ab..d75c194750 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodSpecPatchArgs.java @@ -16,6 +16,7 @@ import com.pulumi.kubernetes.core.v1.inputs.PodResourceClaimPatchArgs; import com.pulumi.kubernetes.core.v1.inputs.PodSchedulingGatePatchArgs; import com.pulumi.kubernetes.core.v1.inputs.PodSecurityContextPatchArgs; +import com.pulumi.kubernetes.core.v1.inputs.ResourceRequirementsPatchArgs; import com.pulumi.kubernetes.core.v1.inputs.TolerationPatchArgs; import com.pulumi.kubernetes.core.v1.inputs.TopologySpreadConstraintPatchArgs; import com.pulumi.kubernetes.core.v1.inputs.VolumePatchArgs; @@ -428,6 +429,29 @@ public Optional>> resourceClaims() { return Optional.ofNullable(this.resourceClaims); } + /** + * Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + */ + @Import(name="resources") + private @Nullable Output resources; + + /** + * @return Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + */ + public Optional> resources() { + return Optional.ofNullable(this.resources); + } + /** * Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy * @@ -538,14 +562,14 @@ public Optional> serviceAccountName() { } /** - * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * */ @Import(name="setHostnameAsFQDN") private @Nullable Output setHostnameAsFQDN; /** - * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * */ public Optional> setHostnameAsFQDN() { @@ -670,6 +694,7 @@ private PodSpecPatchArgs(PodSpecPatchArgs $) { this.priorityClassName = $.priorityClassName; this.readinessGates = $.readinessGates; this.resourceClaims = $.resourceClaims; + this.resources = $.resources; this.restartPolicy = $.restartPolicy; this.runtimeClassName = $.runtimeClassName; this.schedulerName = $.schedulerName; @@ -1319,6 +1344,35 @@ public Builder resourceClaims(PodResourceClaimPatchArgs... resourceClaims) { return resourceClaims(List.of(resourceClaims)); } + /** + * @param resources Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + * @return builder + * + */ + public Builder resources(@Nullable Output resources) { + $.resources = resources; + return this; + } + + /** + * @param resources Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + * @return builder + * + */ + public Builder resources(ResourceRequirementsPatchArgs resources) { + return resources(Output.of(resources)); + } + /** * @param restartPolicy Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy * @@ -1483,7 +1537,7 @@ public Builder serviceAccountName(String serviceAccountName) { } /** - * @param setHostnameAsFQDN If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @param setHostnameAsFQDN If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * * @return builder * @@ -1494,7 +1548,7 @@ public Builder setHostnameAsFQDN(@Nullable Output setHostnameAsFQDN) { } /** - * @param setHostnameAsFQDN If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @param setHostnameAsFQDN If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodStatusArgs.java index 2c9be65165..6e0261a24f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodStatusArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PodStatusArgs.java @@ -41,14 +41,14 @@ public Optional>> conditions() { } /** - * The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ @Import(name="containerStatuses") private @Nullable Output> containerStatuses; /** - * @return The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ public Optional>> containerStatuses() { @@ -56,14 +56,14 @@ public Optional>> containerStatuses() { } /** - * Status for any ephemeral containers that have run in this pod. + * Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ @Import(name="ephemeralContainerStatuses") private @Nullable Output> ephemeralContainerStatuses; /** - * @return Status for any ephemeral containers that have run in this pod. + * @return Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ public Optional>> ephemeralContainerStatuses() { @@ -101,14 +101,14 @@ public Optional>> hostIPs() { } /** - * The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * */ @Import(name="initContainerStatuses") private @Nullable Output> initContainerStatuses; /** - * @return The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * */ public Optional>> initContainerStatuses() { @@ -344,7 +344,7 @@ public Builder conditions(PodConditionArgs... conditions) { } /** - * @param containerStatuses The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @param containerStatuses Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * * @return builder * @@ -355,7 +355,7 @@ public Builder containerStatuses(@Nullable Output> con } /** - * @param containerStatuses The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @param containerStatuses Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * * @return builder * @@ -365,7 +365,7 @@ public Builder containerStatuses(List containerStatuses) { } /** - * @param containerStatuses The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @param containerStatuses Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * * @return builder * @@ -375,7 +375,7 @@ public Builder containerStatuses(ContainerStatusArgs... containerStatuses) { } /** - * @param ephemeralContainerStatuses Status for any ephemeral containers that have run in this pod. + * @param ephemeralContainerStatuses Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * * @return builder * @@ -386,7 +386,7 @@ public Builder ephemeralContainerStatuses(@Nullable Output ephemeralCon } /** - * @param ephemeralContainerStatuses Status for any ephemeral containers that have run in this pod. + * @param ephemeralContainerStatuses Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * * @return builder * @@ -458,7 +458,7 @@ public Builder hostIPs(HostIPArgs... hostIPs) { } /** - * @param initContainerStatuses The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @param initContainerStatuses Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * * @return builder * @@ -469,7 +469,7 @@ public Builder initContainerStatuses(@Nullable Output> } /** - * @param initContainerStatuses The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @param initContainerStatuses Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * * @return builder * @@ -479,7 +479,7 @@ public Builder initContainerStatuses(List initContainerStat } /** - * @param initContainerStatuses The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @param initContainerStatuses Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PortStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PortStatusArgs.java index 1ad8d4dfb0..454693bc60 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PortStatusArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/PortStatusArgs.java @@ -13,6 +13,10 @@ import javax.annotation.Nullable; +/** + * PortStatus represents the error condition of a service port + * + */ public final class PortStatusArgs extends com.pulumi.resources.ResourceArgs { public static final PortStatusArgs Empty = new PortStatusArgs(); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ProbeArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ProbeArgs.java index ac71913360..8700da061d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ProbeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ProbeArgs.java @@ -24,14 +24,14 @@ public final class ProbeArgs extends com.pulumi.resources.ResourceArgs { public static final ProbeArgs Empty = new ProbeArgs(); /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. * */ @Import(name="exec") private @Nullable Output exec; /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ public Optional> exec() { @@ -54,14 +54,14 @@ public Optional> failureThreshold() { } /** - * GRPC specifies an action involving a GRPC port. + * GRPC specifies a GRPC HealthCheckRequest. * */ @Import(name="grpc") private @Nullable Output grpc; /** - * @return GRPC specifies an action involving a GRPC port. + * @return GRPC specifies a GRPC HealthCheckRequest. * */ public Optional> grpc() { @@ -69,14 +69,14 @@ public Optional> grpc() { } /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. * */ @Import(name="httpGet") private @Nullable Output httpGet; /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ public Optional> httpGet() { @@ -129,14 +129,14 @@ public Optional> successThreshold() { } /** - * TCPSocket specifies an action involving a TCP port. + * TCPSocket specifies a connection to a TCP port. * */ @Import(name="tcpSocket") private @Nullable Output tcpSocket; /** - * @return TCPSocket specifies an action involving a TCP port. + * @return TCPSocket specifies a connection to a TCP port. * */ public Optional> tcpSocket() { @@ -207,7 +207,7 @@ public Builder(ProbeArgs defaults) { } /** - * @param exec Exec specifies the action to take. + * @param exec Exec specifies a command to execute in the container. * * @return builder * @@ -218,7 +218,7 @@ public Builder exec(@Nullable Output exec) { } /** - * @param exec Exec specifies the action to take. + * @param exec Exec specifies a command to execute in the container. * * @return builder * @@ -249,7 +249,7 @@ public Builder failureThreshold(Integer failureThreshold) { } /** - * @param grpc GRPC specifies an action involving a GRPC port. + * @param grpc GRPC specifies a GRPC HealthCheckRequest. * * @return builder * @@ -260,7 +260,7 @@ public Builder grpc(@Nullable Output grpc) { } /** - * @param grpc GRPC specifies an action involving a GRPC port. + * @param grpc GRPC specifies a GRPC HealthCheckRequest. * * @return builder * @@ -270,7 +270,7 @@ public Builder grpc(GRPCActionArgs grpc) { } /** - * @param httpGet HTTPGet specifies the http request to perform. + * @param httpGet HTTPGet specifies an HTTP GET request to perform. * * @return builder * @@ -281,7 +281,7 @@ public Builder httpGet(@Nullable Output httpGet) { } /** - * @param httpGet HTTPGet specifies the http request to perform. + * @param httpGet HTTPGet specifies an HTTP GET request to perform. * * @return builder * @@ -354,7 +354,7 @@ public Builder successThreshold(Integer successThreshold) { } /** - * @param tcpSocket TCPSocket specifies an action involving a TCP port. + * @param tcpSocket TCPSocket specifies a connection to a TCP port. * * @return builder * @@ -365,7 +365,7 @@ public Builder tcpSocket(@Nullable Output tcpSocket) { } /** - * @param tcpSocket TCPSocket specifies an action involving a TCP port. + * @param tcpSocket TCPSocket specifies a connection to a TCP port. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ProbePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ProbePatchArgs.java index 2b270b5414..66804fd1d3 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ProbePatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ProbePatchArgs.java @@ -24,14 +24,14 @@ public final class ProbePatchArgs extends com.pulumi.resources.ResourceArgs { public static final ProbePatchArgs Empty = new ProbePatchArgs(); /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. * */ @Import(name="exec") private @Nullable Output exec; /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ public Optional> exec() { @@ -54,14 +54,14 @@ public Optional> failureThreshold() { } /** - * GRPC specifies an action involving a GRPC port. + * GRPC specifies a GRPC HealthCheckRequest. * */ @Import(name="grpc") private @Nullable Output grpc; /** - * @return GRPC specifies an action involving a GRPC port. + * @return GRPC specifies a GRPC HealthCheckRequest. * */ public Optional> grpc() { @@ -69,14 +69,14 @@ public Optional> grpc() { } /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. * */ @Import(name="httpGet") private @Nullable Output httpGet; /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ public Optional> httpGet() { @@ -129,14 +129,14 @@ public Optional> successThreshold() { } /** - * TCPSocket specifies an action involving a TCP port. + * TCPSocket specifies a connection to a TCP port. * */ @Import(name="tcpSocket") private @Nullable Output tcpSocket; /** - * @return TCPSocket specifies an action involving a TCP port. + * @return TCPSocket specifies a connection to a TCP port. * */ public Optional> tcpSocket() { @@ -207,7 +207,7 @@ public Builder(ProbePatchArgs defaults) { } /** - * @param exec Exec specifies the action to take. + * @param exec Exec specifies a command to execute in the container. * * @return builder * @@ -218,7 +218,7 @@ public Builder exec(@Nullable Output exec) { } /** - * @param exec Exec specifies the action to take. + * @param exec Exec specifies a command to execute in the container. * * @return builder * @@ -249,7 +249,7 @@ public Builder failureThreshold(Integer failureThreshold) { } /** - * @param grpc GRPC specifies an action involving a GRPC port. + * @param grpc GRPC specifies a GRPC HealthCheckRequest. * * @return builder * @@ -260,7 +260,7 @@ public Builder grpc(@Nullable Output grpc) { } /** - * @param grpc GRPC specifies an action involving a GRPC port. + * @param grpc GRPC specifies a GRPC HealthCheckRequest. * * @return builder * @@ -270,7 +270,7 @@ public Builder grpc(GRPCActionPatchArgs grpc) { } /** - * @param httpGet HTTPGet specifies the http request to perform. + * @param httpGet HTTPGet specifies an HTTP GET request to perform. * * @return builder * @@ -281,7 +281,7 @@ public Builder httpGet(@Nullable Output httpGet) { } /** - * @param httpGet HTTPGet specifies the http request to perform. + * @param httpGet HTTPGet specifies an HTTP GET request to perform. * * @return builder * @@ -354,7 +354,7 @@ public Builder successThreshold(Integer successThreshold) { } /** - * @param tcpSocket TCPSocket specifies an action involving a TCP port. + * @param tcpSocket TCPSocket specifies a connection to a TCP port. * * @return builder * @@ -365,7 +365,7 @@ public Builder tcpSocket(@Nullable Output tcpSocket) { } /** - * @param tcpSocket TCPSocket specifies an action involving a TCP port. + * @param tcpSocket TCPSocket specifies a connection to a TCP port. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ResourceHealthArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ResourceHealthArgs.java index 6438896fe6..0631f295a6 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ResourceHealthArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ResourceHealthArgs.java @@ -13,7 +13,7 @@ /** - * ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + * ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. * */ public final class ResourceHealthArgs extends com.pulumi.resources.ResourceArgs { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ResourceStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ResourceStatusArgs.java index 3080539951..ece53e012e 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ResourceStatusArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ResourceStatusArgs.java @@ -14,19 +14,23 @@ import javax.annotation.Nullable; +/** + * ResourceStatus represents the status of a single resource allocated to a Pod. + * + */ public final class ResourceStatusArgs extends com.pulumi.resources.ResourceArgs { public static final ResourceStatusArgs Empty = new ResourceStatusArgs(); /** - * Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. * */ @Import(name="name", required=true) private Output name; /** - * @return Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * @return Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. * */ public Output name() { @@ -34,14 +38,14 @@ public Output name() { } /** - * List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * */ @Import(name="resources") private @Nullable Output> resources; /** - * @return List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * @return List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * */ public Optional>> resources() { @@ -74,7 +78,7 @@ public Builder(ResourceStatusArgs defaults) { } /** - * @param name Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * @param name Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. * * @return builder * @@ -85,7 +89,7 @@ public Builder name(Output name) { } /** - * @param name Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * @param name Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. * * @return builder * @@ -95,7 +99,7 @@ public Builder name(String name) { } /** - * @param resources List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * @param resources List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * * @return builder * @@ -106,7 +110,7 @@ public Builder resources(@Nullable Output> resources) { } /** - * @param resources List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * @param resources List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * * @return builder * @@ -116,7 +120,7 @@ public Builder resources(List resources) { } /** - * @param resources List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * @param resources List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceAccountArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceAccountArgs.java index 9225d8c413..bd445ccb3c 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceAccountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceAccountArgs.java @@ -101,14 +101,14 @@ public Optional> metadata() { } /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ @Import(name="secrets") private @Nullable Output> secrets; /** - * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ public Optional>> secrets() { @@ -260,7 +260,7 @@ public Builder metadata(ObjectMetaArgs metadata) { } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * @@ -271,7 +271,7 @@ public Builder secrets(@Nullable Output> secrets) { } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * @@ -281,7 +281,7 @@ public Builder secrets(List secrets) { } /** - * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @param secrets Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceSpecArgs.java index 4ffbb63cbb..ac9ed5a67a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceSpecArgs.java @@ -336,14 +336,14 @@ public Optional>> topologyKeys() { } /** - * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * */ @Import(name="trafficDistribution") private @Nullable Output trafficDistribution; /** - * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * */ public Optional> trafficDistribution() { @@ -903,7 +903,7 @@ public Builder topologyKeys(String... topologyKeys) { } /** - * @param trafficDistribution TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @param trafficDistribution TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * * @return builder * @@ -914,7 +914,7 @@ public Builder trafficDistribution(@Nullable Output trafficDistribution) } /** - * @param trafficDistribution TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @param trafficDistribution TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceSpecPatchArgs.java index 85f9590074..2b67f6d4a4 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceSpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/ServiceSpecPatchArgs.java @@ -336,14 +336,14 @@ public Optional>> topologyKeys() { } /** - * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * */ @Import(name="trafficDistribution") private @Nullable Output trafficDistribution; /** - * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * */ public Optional> trafficDistribution() { @@ -903,7 +903,7 @@ public Builder topologyKeys(String... topologyKeys) { } /** - * @param trafficDistribution TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @param trafficDistribution TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * * @return builder * @@ -914,7 +914,7 @@ public Builder trafficDistribution(@Nullable Output trafficDistribution) } /** - * @param trafficDistribution TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @param trafficDistribution TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/TypedObjectReferenceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/TypedObjectReferenceArgs.java index 9cc3e7077b..2aa6e0154a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/TypedObjectReferenceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/TypedObjectReferenceArgs.java @@ -12,6 +12,10 @@ import javax.annotation.Nullable; +/** + * TypedObjectReference contains enough information to let you locate the typed referenced object + * + */ public final class TypedObjectReferenceArgs extends com.pulumi.resources.ResourceArgs { public static final TypedObjectReferenceArgs Empty = new TypedObjectReferenceArgs(); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/TypedObjectReferencePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/TypedObjectReferencePatchArgs.java index 0cdbc56898..4f2e566f9d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/TypedObjectReferencePatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/TypedObjectReferencePatchArgs.java @@ -11,6 +11,10 @@ import javax.annotation.Nullable; +/** + * TypedObjectReference contains enough information to let you locate the typed referenced object + * + */ public final class TypedObjectReferencePatchArgs extends com.pulumi.resources.ResourceArgs { public static final TypedObjectReferencePatchArgs Empty = new TypedObjectReferencePatchArgs(); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/VolumeArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/VolumeArgs.java index 86f10f1d1f..004e6f5a10 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/VolumeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/inputs/VolumeArgs.java @@ -51,14 +51,14 @@ public final class VolumeArgs extends com.pulumi.resources.ResourceArgs { public static final VolumeArgs Empty = new VolumeArgs(); /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ @Import(name="awsElasticBlockStore") private @Nullable Output awsElasticBlockStore; /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ public Optional> awsElasticBlockStore() { @@ -66,14 +66,14 @@ public Optional> awsElasticBlockSto } /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ @Import(name="azureDisk") private @Nullable Output azureDisk; /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ public Optional> azureDisk() { @@ -81,14 +81,14 @@ public Optional> azureDisk() { } /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ @Import(name="azureFile") private @Nullable Output azureFile; /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ public Optional> azureFile() { @@ -96,14 +96,14 @@ public Optional> azureFile() { } /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ @Import(name="cephfs") private @Nullable Output cephfs; /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ public Optional> cephfs() { @@ -111,14 +111,14 @@ public Optional> cephfs() { } /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ @Import(name="cinder") private @Nullable Output cinder; /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ public Optional> cinder() { @@ -141,14 +141,14 @@ public Optional> configMap() { } /** - * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * */ @Import(name="csi") private @Nullable Output csi; /** - * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * */ public Optional> csi() { @@ -242,14 +242,14 @@ public Optional> fc() { } /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ @Import(name="flexVolume") private @Nullable Output flexVolume; /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ public Optional> flexVolume() { @@ -257,14 +257,14 @@ public Optional> flexVolume() { } /** - * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ @Import(name="flocker") private @Nullable Output flocker; /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ public Optional> flocker() { @@ -272,14 +272,14 @@ public Optional> flocker() { } /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ @Import(name="gcePersistentDisk") private @Nullable Output gcePersistentDisk; /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ public Optional> gcePersistentDisk() { @@ -287,14 +287,14 @@ public Optional> gcePersistentDisk() { } /** - * gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * */ @Import(name="gitRepo") private @Nullable Output gitRepo; /** - * @return gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @return gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * */ public Optional> gitRepo() { @@ -302,14 +302,14 @@ public Optional> gitRepo() { } /** - * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ @Import(name="glusterfs") private @Nullable Output glusterfs; /** - * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ public Optional> glusterfs() { @@ -415,14 +415,14 @@ public Optional> persistentVolumeC } /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ @Import(name="photonPersistentDisk") private @Nullable Output photonPersistentDisk; /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ public Optional> photonPersistentDisk() { @@ -430,14 +430,14 @@ public Optional> photonPersistentDi } /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ @Import(name="portworxVolume") private @Nullable Output portworxVolume; /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ public Optional> portworxVolume() { @@ -460,14 +460,14 @@ public Optional> projected() { } /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ @Import(name="quobyte") private @Nullable Output quobyte; /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ public Optional> quobyte() { @@ -475,14 +475,14 @@ public Optional> quobyte() { } /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ @Import(name="rbd") private @Nullable Output rbd; /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ public Optional> rbd() { @@ -490,14 +490,14 @@ public Optional> rbd() { } /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ @Import(name="scaleIO") private @Nullable Output scaleIO; /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ public Optional> scaleIO() { @@ -520,14 +520,14 @@ public Optional> secret() { } /** - * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * */ @Import(name="storageos") private @Nullable Output storageos; /** - * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * */ public Optional> storageos() { @@ -535,14 +535,14 @@ public Optional> storageos() { } /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ @Import(name="vsphereVolume") private @Nullable Output vsphereVolume; /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ public Optional> vsphereVolume() { @@ -604,7 +604,7 @@ public Builder(VolumeArgs defaults) { } /** - * @param awsElasticBlockStore awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @param awsElasticBlockStore awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * * @return builder * @@ -615,7 +615,7 @@ public Builder awsElasticBlockStore(@Nullable Output azureDisk) } /** - * @param azureDisk azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @param azureDisk azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * * @return builder * @@ -646,7 +646,7 @@ public Builder azureDisk(AzureDiskVolumeSourceArgs azureDisk) { } /** - * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * * @return builder * @@ -657,7 +657,7 @@ public Builder azureFile(@Nullable Output azureFile) } /** - * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * * @return builder * @@ -667,7 +667,7 @@ public Builder azureFile(AzureFileVolumeSourceArgs azureFile) { } /** - * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * * @return builder * @@ -678,7 +678,7 @@ public Builder cephfs(@Nullable Output cephfs) { } /** - * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * * @return builder * @@ -688,7 +688,7 @@ public Builder cephfs(CephFSVolumeSourceArgs cephfs) { } /** - * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * * @return builder * @@ -699,7 +699,7 @@ public Builder cinder(@Nullable Output cinder) { } /** - * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * * @return builder * @@ -730,7 +730,7 @@ public Builder configMap(ConfigMapVolumeSourceArgs configMap) { } /** - * @param csi csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @param csi csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * * @return builder * @@ -741,7 +741,7 @@ public Builder csi(@Nullable Output csi) { } /** - * @param csi csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @param csi csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * * @return builder * @@ -861,7 +861,7 @@ public Builder fc(FCVolumeSourceArgs fc) { } /** - * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * * @return builder * @@ -872,7 +872,7 @@ public Builder flexVolume(@Nullable Output flexVolume) { } /** - * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * * @return builder * @@ -882,7 +882,7 @@ public Builder flexVolume(FlexVolumeSourceArgs flexVolume) { } /** - * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * * @return builder * @@ -893,7 +893,7 @@ public Builder flocker(@Nullable Output flocker) { } /** - * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * * @return builder * @@ -903,7 +903,7 @@ public Builder flocker(FlockerVolumeSourceArgs flocker) { } /** - * @param gcePersistentDisk gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @param gcePersistentDisk gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * * @return builder * @@ -914,7 +914,7 @@ public Builder gcePersistentDisk(@Nullable Output gitRepo) { } /** - * @param gitRepo gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @param gitRepo gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * * @return builder * @@ -945,7 +945,7 @@ public Builder gitRepo(GitRepoVolumeSourceArgs gitRepo) { } /** - * @param glusterfs glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @param glusterfs glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * * @return builder * @@ -956,7 +956,7 @@ public Builder glusterfs(@Nullable Output glusterfs) } /** - * @param glusterfs glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @param glusterfs glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * * @return builder * @@ -1100,7 +1100,7 @@ public Builder persistentVolumeClaim(PersistentVolumeClaimVolumeSourceArgs persi } /** - * @param photonPersistentDisk photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @param photonPersistentDisk photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * * @return builder * @@ -1111,7 +1111,7 @@ public Builder photonPersistentDisk(@Nullable Output portwor } /** - * @param portworxVolume portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @param portworxVolume portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * * @return builder * @@ -1163,7 +1163,7 @@ public Builder projected(ProjectedVolumeSourceArgs projected) { } /** - * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * * @return builder * @@ -1174,7 +1174,7 @@ public Builder quobyte(@Nullable Output quobyte) { } /** - * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * * @return builder * @@ -1184,7 +1184,7 @@ public Builder quobyte(QuobyteVolumeSourceArgs quobyte) { } /** - * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * * @return builder * @@ -1195,7 +1195,7 @@ public Builder rbd(@Nullable Output rbd) { } /** - * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * * @return builder * @@ -1205,7 +1205,7 @@ public Builder rbd(RBDVolumeSourceArgs rbd) { } /** - * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * * @return builder * @@ -1216,7 +1216,7 @@ public Builder scaleIO(@Nullable Output scaleIO) { } /** - * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * * @return builder * @@ -1247,7 +1247,7 @@ public Builder secret(SecretVolumeSourceArgs secret) { } /** - * @param storageos storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @param storageos storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * * @return builder * @@ -1258,7 +1258,7 @@ public Builder storageos(@Nullable Output storageos) } /** - * @param storageos storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @param storageos storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * * @return builder * @@ -1268,7 +1268,7 @@ public Builder storageos(StorageOSVolumeSourceArgs storageos) { } /** - * @param vsphereVolume vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @param vsphereVolume vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * * @return builder * @@ -1279,7 +1279,7 @@ public Builder vsphereVolume(@Nullable Output awsElasticBlockStore; /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ public Optional> awsElasticBlockStore() { @@ -65,14 +65,14 @@ public Optional> awsElasticBlo } /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ @Import(name="azureDisk") private @Nullable Output azureDisk; /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ public Optional> azureDisk() { @@ -80,14 +80,14 @@ public Optional> azureDisk() { } /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ @Import(name="azureFile") private @Nullable Output azureFile; /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ public Optional> azureFile() { @@ -95,14 +95,14 @@ public Optional> azureFile() { } /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ @Import(name="cephfs") private @Nullable Output cephfs; /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ public Optional> cephfs() { @@ -110,14 +110,14 @@ public Optional> cephfs() { } /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ @Import(name="cinder") private @Nullable Output cinder; /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ public Optional> cinder() { @@ -140,14 +140,14 @@ public Optional> configMap() { } /** - * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * */ @Import(name="csi") private @Nullable Output csi; /** - * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * */ public Optional> csi() { @@ -241,14 +241,14 @@ public Optional> fc() { } /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ @Import(name="flexVolume") private @Nullable Output flexVolume; /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ public Optional> flexVolume() { @@ -256,14 +256,14 @@ public Optional> flexVolume() { } /** - * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ @Import(name="flocker") private @Nullable Output flocker; /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ public Optional> flocker() { @@ -271,14 +271,14 @@ public Optional> flocker() { } /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ @Import(name="gcePersistentDisk") private @Nullable Output gcePersistentDisk; /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ public Optional> gcePersistentDisk() { @@ -286,14 +286,14 @@ public Optional> gcePersistentDis } /** - * gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * */ @Import(name="gitRepo") private @Nullable Output gitRepo; /** - * @return gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @return gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * */ public Optional> gitRepo() { @@ -301,14 +301,14 @@ public Optional> gitRepo() { } /** - * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ @Import(name="glusterfs") private @Nullable Output glusterfs; /** - * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ public Optional> glusterfs() { @@ -414,14 +414,14 @@ public Optional> persistentVo } /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ @Import(name="photonPersistentDisk") private @Nullable Output photonPersistentDisk; /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ public Optional> photonPersistentDisk() { @@ -429,14 +429,14 @@ public Optional> photonPersist } /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ @Import(name="portworxVolume") private @Nullable Output portworxVolume; /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ public Optional> portworxVolume() { @@ -459,14 +459,14 @@ public Optional> projected() { } /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ @Import(name="quobyte") private @Nullable Output quobyte; /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ public Optional> quobyte() { @@ -474,14 +474,14 @@ public Optional> quobyte() { } /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ @Import(name="rbd") private @Nullable Output rbd; /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ public Optional> rbd() { @@ -489,14 +489,14 @@ public Optional> rbd() { } /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ @Import(name="scaleIO") private @Nullable Output scaleIO; /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ public Optional> scaleIO() { @@ -519,14 +519,14 @@ public Optional> secret() { } /** - * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * */ @Import(name="storageos") private @Nullable Output storageos; /** - * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * */ public Optional> storageos() { @@ -534,14 +534,14 @@ public Optional> storageos() { } /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ @Import(name="vsphereVolume") private @Nullable Output vsphereVolume; /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ public Optional> vsphereVolume() { @@ -603,7 +603,7 @@ public Builder(VolumePatchArgs defaults) { } /** - * @param awsElasticBlockStore awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @param awsElasticBlockStore awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * * @return builder * @@ -614,7 +614,7 @@ public Builder awsElasticBlockStore(@Nullable Output azureD } /** - * @param azureDisk azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @param azureDisk azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * * @return builder * @@ -645,7 +645,7 @@ public Builder azureDisk(AzureDiskVolumeSourcePatchArgs azureDisk) { } /** - * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * * @return builder * @@ -656,7 +656,7 @@ public Builder azureFile(@Nullable Output azureF } /** - * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @param azureFile azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * * @return builder * @@ -666,7 +666,7 @@ public Builder azureFile(AzureFileVolumeSourcePatchArgs azureFile) { } /** - * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * * @return builder * @@ -677,7 +677,7 @@ public Builder cephfs(@Nullable Output cephfs) { } /** - * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @param cephfs cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * * @return builder * @@ -687,7 +687,7 @@ public Builder cephfs(CephFSVolumeSourcePatchArgs cephfs) { } /** - * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * * @return builder * @@ -698,7 +698,7 @@ public Builder cinder(@Nullable Output cinder) { } /** - * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @param cinder cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * * @return builder * @@ -729,7 +729,7 @@ public Builder configMap(ConfigMapVolumeSourcePatchArgs configMap) { } /** - * @param csi csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @param csi csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * * @return builder * @@ -740,7 +740,7 @@ public Builder csi(@Nullable Output csi) { } /** - * @param csi csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @param csi csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * * @return builder * @@ -860,7 +860,7 @@ public Builder fc(FCVolumeSourcePatchArgs fc) { } /** - * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * * @return builder * @@ -871,7 +871,7 @@ public Builder flexVolume(@Nullable Output flexVolume } /** - * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @param flexVolume flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * * @return builder * @@ -881,7 +881,7 @@ public Builder flexVolume(FlexVolumeSourcePatchArgs flexVolume) { } /** - * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * * @return builder * @@ -892,7 +892,7 @@ public Builder flocker(@Nullable Output flocker) { } /** - * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @param flocker flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * * @return builder * @@ -902,7 +902,7 @@ public Builder flocker(FlockerVolumeSourcePatchArgs flocker) { } /** - * @param gcePersistentDisk gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @param gcePersistentDisk gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * * @return builder * @@ -913,7 +913,7 @@ public Builder gcePersistentDisk(@Nullable Output gitRepo) { } /** - * @param gitRepo gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @param gitRepo gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * * @return builder * @@ -944,7 +944,7 @@ public Builder gitRepo(GitRepoVolumeSourcePatchArgs gitRepo) { } /** - * @param glusterfs glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @param glusterfs glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * * @return builder * @@ -955,7 +955,7 @@ public Builder glusterfs(@Nullable Output gluste } /** - * @param glusterfs glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @param glusterfs glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * * @return builder * @@ -1099,7 +1099,7 @@ public Builder persistentVolumeClaim(PersistentVolumeClaimVolumeSourcePatchArgs } /** - * @param photonPersistentDisk photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @param photonPersistentDisk photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * * @return builder * @@ -1110,7 +1110,7 @@ public Builder photonPersistentDisk(@Nullable Output po } /** - * @param portworxVolume portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @param portworxVolume portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * * @return builder * @@ -1162,7 +1162,7 @@ public Builder projected(ProjectedVolumeSourcePatchArgs projected) { } /** - * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * * @return builder * @@ -1173,7 +1173,7 @@ public Builder quobyte(@Nullable Output quobyte) { } /** - * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @param quobyte quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * * @return builder * @@ -1183,7 +1183,7 @@ public Builder quobyte(QuobyteVolumeSourcePatchArgs quobyte) { } /** - * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * * @return builder * @@ -1194,7 +1194,7 @@ public Builder rbd(@Nullable Output rbd) { } /** - * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @param rbd rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * * @return builder * @@ -1204,7 +1204,7 @@ public Builder rbd(RBDVolumeSourcePatchArgs rbd) { } /** - * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * * @return builder * @@ -1215,7 +1215,7 @@ public Builder scaleIO(@Nullable Output scaleIO) { } /** - * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @param scaleIO scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * * @return builder * @@ -1246,7 +1246,7 @@ public Builder secret(SecretVolumeSourcePatchArgs secret) { } /** - * @param storageos storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @param storageos storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * * @return builder * @@ -1257,7 +1257,7 @@ public Builder storageos(@Nullable Output storag } /** - * @param storageos storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @param storageos storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * * @return builder * @@ -1267,7 +1267,7 @@ public Builder storageos(StorageOSVolumeSourcePatchArgs storageos) { } /** - * @param vsphereVolume vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @param vsphereVolume vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * * @return builder * @@ -1278,7 +1278,7 @@ public Builder vsphereVolume(@Nullable Output exec() { return Optional.ofNullable(this.exec); } /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ public Optional httpGet() { return Optional.ofNullable(this.httpGet); } /** - * @return Sleep represents the duration that the container should sleep before being terminated. + * @return Sleep represents a duration that the container should sleep. * */ public Optional sleep() { return Optional.ofNullable(this.sleep); } /** - * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * */ public Optional tcpSocket() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/LifecycleHandlerPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/LifecycleHandlerPatch.java index 6fe5856fb4..ad7d85d55d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/LifecycleHandlerPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/LifecycleHandlerPatch.java @@ -15,50 +15,50 @@ @CustomType public final class LifecycleHandlerPatch { /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ private @Nullable ExecActionPatch exec; /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ private @Nullable HTTPGetActionPatch httpGet; /** - * @return Sleep represents the duration that the container should sleep before being terminated. + * @return Sleep represents a duration that the container should sleep. * */ private @Nullable SleepActionPatch sleep; /** - * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * */ private @Nullable TCPSocketActionPatch tcpSocket; private LifecycleHandlerPatch() {} /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ public Optional exec() { return Optional.ofNullable(this.exec); } /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ public Optional httpGet() { return Optional.ofNullable(this.httpGet); } /** - * @return Sleep represents the duration that the container should sleep before being terminated. + * @return Sleep represents a duration that the container should sleep. * */ public Optional sleep() { return Optional.ofNullable(this.sleep); } /** - * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * @return Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. * */ public Optional tcpSocket() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NamespaceCondition.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NamespaceCondition.java index 2c8661e7e9..afea5930bb 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NamespaceCondition.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NamespaceCondition.java @@ -12,8 +12,20 @@ @CustomType public final class NamespaceCondition { + /** + * @return Last time the condition transitioned from one status to another. + * + */ private @Nullable String lastTransitionTime; + /** + * @return Human-readable message indicating details about last transition. + * + */ private @Nullable String message; + /** + * @return Unique, one-word, CamelCase reason for the condition's last transition. + * + */ private @Nullable String reason; /** * @return Status of the condition, one of True, False, Unknown. @@ -27,12 +39,24 @@ public final class NamespaceCondition { private String type; private NamespaceCondition() {} + /** + * @return Last time the condition transitioned from one status to another. + * + */ public Optional lastTransitionTime() { return Optional.ofNullable(this.lastTransitionTime); } + /** + * @return Human-readable message indicating details about last transition. + * + */ public Optional message() { return Optional.ofNullable(this.message); } + /** + * @return Unique, one-word, CamelCase reason for the condition's last transition. + * + */ public Optional reason() { return Optional.ofNullable(this.reason); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NamespaceConditionPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NamespaceConditionPatch.java index a4efc9550e..1464fe6c85 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NamespaceConditionPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NamespaceConditionPatch.java @@ -11,8 +11,20 @@ @CustomType public final class NamespaceConditionPatch { + /** + * @return Last time the condition transitioned from one status to another. + * + */ private @Nullable String lastTransitionTime; + /** + * @return Human-readable message indicating details about last transition. + * + */ private @Nullable String message; + /** + * @return Unique, one-word, CamelCase reason for the condition's last transition. + * + */ private @Nullable String reason; /** * @return Status of the condition, one of True, False, Unknown. @@ -26,12 +38,24 @@ public final class NamespaceConditionPatch { private @Nullable String type; private NamespaceConditionPatch() {} + /** + * @return Last time the condition transitioned from one status to another. + * + */ public Optional lastTransitionTime() { return Optional.ofNullable(this.lastTransitionTime); } + /** + * @return Human-readable message indicating details about last transition. + * + */ public Optional message() { return Optional.ofNullable(this.message); } + /** + * @return Unique, one-word, CamelCase reason for the condition's last transition. + * + */ public Optional reason() { return Optional.ofNullable(this.reason); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NodeStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NodeStatus.java index 58a16eb66c..bfbb0728fe 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NodeStatus.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NodeStatus.java @@ -23,7 +23,7 @@ @CustomType public final class NodeStatus { /** - * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * */ private @Nullable List addresses; @@ -38,7 +38,7 @@ public final class NodeStatus { */ private @Nullable Map capacity; /** - * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * */ private @Nullable List conditions; @@ -63,7 +63,7 @@ public final class NodeStatus { */ private @Nullable List images; /** - * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info * */ private @Nullable NodeSystemInfo nodeInfo; @@ -90,7 +90,7 @@ public final class NodeStatus { private NodeStatus() {} /** - * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * */ public List addresses() { @@ -111,7 +111,7 @@ public Map capacity() { return this.capacity == null ? Map.of() : this.capacity; } /** - * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * */ public List conditions() { @@ -146,7 +146,7 @@ public List images() { return this.images == null ? List.of() : this.images; } /** - * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info * */ public Optional nodeInfo() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NodeStatusPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NodeStatusPatch.java index ceb57005cd..72314c104f 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NodeStatusPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/NodeStatusPatch.java @@ -23,7 +23,7 @@ @CustomType public final class NodeStatusPatch { /** - * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * */ private @Nullable List addresses; @@ -38,7 +38,7 @@ public final class NodeStatusPatch { */ private @Nullable Map capacity; /** - * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * */ private @Nullable List conditions; @@ -63,7 +63,7 @@ public final class NodeStatusPatch { */ private @Nullable List images; /** - * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info * */ private @Nullable NodeSystemInfoPatch nodeInfo; @@ -90,7 +90,7 @@ public final class NodeStatusPatch { private NodeStatusPatch() {} /** - * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * @return List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). * */ public List addresses() { @@ -111,7 +111,7 @@ public Map capacity() { return this.capacity == null ? Map.of() : this.capacity; } /** - * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * @return Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition * */ public List conditions() { @@ -146,7 +146,7 @@ public List images() { return this.images == null ? List.of() : this.images; } /** - * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * @return Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info * */ public Optional nodeInfo() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeClaimCondition.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeClaimCondition.java index 71217fd91e..1969384a13 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeClaimCondition.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeClaimCondition.java @@ -32,7 +32,15 @@ public final class PersistentVolumeClaimCondition { * */ private @Nullable String reason; + /** + * @return Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + */ private String status; + /** + * @return Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + */ private String type; private PersistentVolumeClaimCondition() {} @@ -64,9 +72,17 @@ public Optional message() { public Optional reason() { return Optional.ofNullable(this.reason); } + /** + * @return Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + */ public String status() { return this.status; } + /** + * @return Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + */ public String type() { return this.type; } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeClaimConditionPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeClaimConditionPatch.java index 33d52a925f..5e96d8f056 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeClaimConditionPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeClaimConditionPatch.java @@ -31,7 +31,15 @@ public final class PersistentVolumeClaimConditionPatch { * */ private @Nullable String reason; + /** + * @return Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + */ private @Nullable String status; + /** + * @return Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + */ private @Nullable String type; private PersistentVolumeClaimConditionPatch() {} @@ -63,9 +71,17 @@ public Optional message() { public Optional reason() { return Optional.ofNullable(this.reason); } + /** + * @return Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + * + */ public Optional status() { return Optional.ofNullable(this.status); } + /** + * @return Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + * + */ public Optional type() { return Optional.ofNullable(this.type); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeSpec.java index 3ca936c90f..29edcde781 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeSpec.java @@ -43,17 +43,17 @@ public final class PersistentVolumeSpec { */ private @Nullable List accessModes; /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ private @Nullable AWSElasticBlockStoreVolumeSource awsElasticBlockStore; /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ private @Nullable AzureDiskVolumeSource azureDisk; /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ private @Nullable AzureFilePersistentVolumeSource azureFile; @@ -63,12 +63,12 @@ public final class PersistentVolumeSpec { */ private @Nullable Map capacity; /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ private @Nullable CephFSPersistentVolumeSource cephfs; /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ private @Nullable CinderPersistentVolumeSource cinder; @@ -78,7 +78,7 @@ public final class PersistentVolumeSpec { */ private @Nullable ObjectReference claimRef; /** - * @return csi represents storage that is handled by an external CSI driver (Beta feature). + * @return csi represents storage that is handled by an external CSI driver. * */ private @Nullable CSIPersistentVolumeSource csi; @@ -88,22 +88,22 @@ public final class PersistentVolumeSpec { */ private @Nullable FCVolumeSource fc; /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ private @Nullable FlexPersistentVolumeSource flexVolume; /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ private @Nullable FlockerVolumeSource flocker; /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ private @Nullable GCEPersistentDiskVolumeSource gcePersistentDisk; /** - * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ private @Nullable GlusterfsPersistentVolumeSource glusterfs; @@ -143,27 +143,27 @@ public final class PersistentVolumeSpec { */ private @Nullable String persistentVolumeReclaimPolicy; /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ private @Nullable PhotonPersistentDiskVolumeSource photonPersistentDisk; /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ private @Nullable PortworxVolumeSource portworxVolume; /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ private @Nullable QuobyteVolumeSource quobyte; /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ private @Nullable RBDPersistentVolumeSource rbd; /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ private @Nullable ScaleIOPersistentVolumeSource scaleIO; @@ -173,7 +173,7 @@ public final class PersistentVolumeSpec { */ private @Nullable String storageClassName; /** - * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * */ private @Nullable StorageOSPersistentVolumeSource storageos; @@ -188,7 +188,7 @@ public final class PersistentVolumeSpec { */ private @Nullable String volumeMode; /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ private @Nullable VsphereVirtualDiskVolumeSource vsphereVolume; @@ -202,21 +202,21 @@ public List accessModes() { return this.accessModes == null ? List.of() : this.accessModes; } /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ public Optional awsElasticBlockStore() { return Optional.ofNullable(this.awsElasticBlockStore); } /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ public Optional azureDisk() { return Optional.ofNullable(this.azureDisk); } /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ public Optional azureFile() { @@ -230,14 +230,14 @@ public Map capacity() { return this.capacity == null ? Map.of() : this.capacity; } /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ public Optional cephfs() { return Optional.ofNullable(this.cephfs); } /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ public Optional cinder() { @@ -251,7 +251,7 @@ public Optional claimRef() { return Optional.ofNullable(this.claimRef); } /** - * @return csi represents storage that is handled by an external CSI driver (Beta feature). + * @return csi represents storage that is handled by an external CSI driver. * */ public Optional csi() { @@ -265,28 +265,28 @@ public Optional fc() { return Optional.ofNullable(this.fc); } /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ public Optional flexVolume() { return Optional.ofNullable(this.flexVolume); } /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ public Optional flocker() { return Optional.ofNullable(this.flocker); } /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ public Optional gcePersistentDisk() { return Optional.ofNullable(this.gcePersistentDisk); } /** - * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ public Optional glusterfs() { @@ -342,35 +342,35 @@ public Optional persistentVolumeReclaimPolicy() { return Optional.ofNullable(this.persistentVolumeReclaimPolicy); } /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ public Optional photonPersistentDisk() { return Optional.ofNullable(this.photonPersistentDisk); } /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ public Optional portworxVolume() { return Optional.ofNullable(this.portworxVolume); } /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ public Optional quobyte() { return Optional.ofNullable(this.quobyte); } /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ public Optional rbd() { return Optional.ofNullable(this.rbd); } /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ public Optional scaleIO() { @@ -384,7 +384,7 @@ public Optional storageClassName() { return Optional.ofNullable(this.storageClassName); } /** - * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * */ public Optional storageos() { @@ -405,7 +405,7 @@ public Optional volumeMode() { return Optional.ofNullable(this.volumeMode); } /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ public Optional vsphereVolume() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeSpecPatch.java index 1506b90454..b6de801cfc 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PersistentVolumeSpecPatch.java @@ -43,17 +43,17 @@ public final class PersistentVolumeSpecPatch { */ private @Nullable List accessModes; /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ private @Nullable AWSElasticBlockStoreVolumeSourcePatch awsElasticBlockStore; /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ private @Nullable AzureDiskVolumeSourcePatch azureDisk; /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ private @Nullable AzureFilePersistentVolumeSourcePatch azureFile; @@ -63,12 +63,12 @@ public final class PersistentVolumeSpecPatch { */ private @Nullable Map capacity; /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ private @Nullable CephFSPersistentVolumeSourcePatch cephfs; /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ private @Nullable CinderPersistentVolumeSourcePatch cinder; @@ -78,7 +78,7 @@ public final class PersistentVolumeSpecPatch { */ private @Nullable ObjectReferencePatch claimRef; /** - * @return csi represents storage that is handled by an external CSI driver (Beta feature). + * @return csi represents storage that is handled by an external CSI driver. * */ private @Nullable CSIPersistentVolumeSourcePatch csi; @@ -88,22 +88,22 @@ public final class PersistentVolumeSpecPatch { */ private @Nullable FCVolumeSourcePatch fc; /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ private @Nullable FlexPersistentVolumeSourcePatch flexVolume; /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ private @Nullable FlockerVolumeSourcePatch flocker; /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ private @Nullable GCEPersistentDiskVolumeSourcePatch gcePersistentDisk; /** - * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ private @Nullable GlusterfsPersistentVolumeSourcePatch glusterfs; @@ -143,27 +143,27 @@ public final class PersistentVolumeSpecPatch { */ private @Nullable String persistentVolumeReclaimPolicy; /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ private @Nullable PhotonPersistentDiskVolumeSourcePatch photonPersistentDisk; /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ private @Nullable PortworxVolumeSourcePatch portworxVolume; /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ private @Nullable QuobyteVolumeSourcePatch quobyte; /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ private @Nullable RBDPersistentVolumeSourcePatch rbd; /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ private @Nullable ScaleIOPersistentVolumeSourcePatch scaleIO; @@ -173,7 +173,7 @@ public final class PersistentVolumeSpecPatch { */ private @Nullable String storageClassName; /** - * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * */ private @Nullable StorageOSPersistentVolumeSourcePatch storageos; @@ -188,7 +188,7 @@ public final class PersistentVolumeSpecPatch { */ private @Nullable String volumeMode; /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ private @Nullable VsphereVirtualDiskVolumeSourcePatch vsphereVolume; @@ -202,21 +202,21 @@ public List accessModes() { return this.accessModes == null ? List.of() : this.accessModes; } /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ public Optional awsElasticBlockStore() { return Optional.ofNullable(this.awsElasticBlockStore); } /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ public Optional azureDisk() { return Optional.ofNullable(this.azureDisk); } /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ public Optional azureFile() { @@ -230,14 +230,14 @@ public Map capacity() { return this.capacity == null ? Map.of() : this.capacity; } /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ public Optional cephfs() { return Optional.ofNullable(this.cephfs); } /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ public Optional cinder() { @@ -251,7 +251,7 @@ public Optional claimRef() { return Optional.ofNullable(this.claimRef); } /** - * @return csi represents storage that is handled by an external CSI driver (Beta feature). + * @return csi represents storage that is handled by an external CSI driver. * */ public Optional csi() { @@ -265,28 +265,28 @@ public Optional fc() { return Optional.ofNullable(this.fc); } /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ public Optional flexVolume() { return Optional.ofNullable(this.flexVolume); } /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ public Optional flocker() { return Optional.ofNullable(this.flocker); } /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ public Optional gcePersistentDisk() { return Optional.ofNullable(this.gcePersistentDisk); } /** - * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ public Optional glusterfs() { @@ -342,35 +342,35 @@ public Optional persistentVolumeReclaimPolicy() { return Optional.ofNullable(this.persistentVolumeReclaimPolicy); } /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ public Optional photonPersistentDisk() { return Optional.ofNullable(this.photonPersistentDisk); } /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ public Optional portworxVolume() { return Optional.ofNullable(this.portworxVolume); } /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ public Optional quobyte() { return Optional.ofNullable(this.quobyte); } /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ public Optional rbd() { return Optional.ofNullable(this.rbd); } /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ public Optional scaleIO() { @@ -384,7 +384,7 @@ public Optional storageClassName() { return Optional.ofNullable(this.storageClassName); } /** - * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * @return storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md * */ public Optional storageos() { @@ -405,7 +405,7 @@ public Optional volumeMode() { return Optional.ofNullable(this.volumeMode); } /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ public Optional vsphereVolume() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodDNSConfigOption.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodDNSConfigOption.java index 003c705fc3..bdce1cac1a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodDNSConfigOption.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodDNSConfigOption.java @@ -12,20 +12,28 @@ @CustomType public final class PodDNSConfigOption { /** - * @return Required. + * @return Name is this DNS resolver option's name. Required. * */ private @Nullable String name; + /** + * @return Value is this DNS resolver option's value. + * + */ private @Nullable String value; private PodDNSConfigOption() {} /** - * @return Required. + * @return Name is this DNS resolver option's name. Required. * */ public Optional name() { return Optional.ofNullable(this.name); } + /** + * @return Value is this DNS resolver option's value. + * + */ public Optional value() { return Optional.ofNullable(this.value); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodDNSConfigOptionPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodDNSConfigOptionPatch.java index 565ab12218..b9eb8b9d03 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodDNSConfigOptionPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodDNSConfigOptionPatch.java @@ -12,20 +12,28 @@ @CustomType public final class PodDNSConfigOptionPatch { /** - * @return Required. + * @return Name is this DNS resolver option's name. Required. * */ private @Nullable String name; + /** + * @return Value is this DNS resolver option's value. + * + */ private @Nullable String value; private PodDNSConfigOptionPatch() {} /** - * @return Required. + * @return Name is this DNS resolver option's name. Required. * */ public Optional name() { return Optional.ofNullable(this.name); } + /** + * @return Value is this DNS resolver option's value. + * + */ public Optional value() { return Optional.ofNullable(this.value); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSecurityContext.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSecurityContext.java index 14b0f00311..7d5425e8af 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSecurityContext.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSecurityContext.java @@ -53,6 +53,21 @@ public final class PodSecurityContext { * */ private @Nullable Integer runAsUser; + /** + * @return seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + */ + private @Nullable String seLinuxChangePolicy; /** * @return The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. * @@ -131,6 +146,23 @@ public Optional runAsNonRoot() { public Optional runAsUser() { return Optional.ofNullable(this.runAsUser); } + /** + * @return seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + */ + public Optional seLinuxChangePolicy() { + return Optional.ofNullable(this.seLinuxChangePolicy); + } /** * @return The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. * @@ -189,6 +221,7 @@ public static final class Builder { private @Nullable Integer runAsGroup; private @Nullable Boolean runAsNonRoot; private @Nullable Integer runAsUser; + private @Nullable String seLinuxChangePolicy; private @Nullable SELinuxOptions seLinuxOptions; private @Nullable SeccompProfile seccompProfile; private @Nullable List supplementalGroups; @@ -204,6 +237,7 @@ public Builder(PodSecurityContext defaults) { this.runAsGroup = defaults.runAsGroup; this.runAsNonRoot = defaults.runAsNonRoot; this.runAsUser = defaults.runAsUser; + this.seLinuxChangePolicy = defaults.seLinuxChangePolicy; this.seLinuxOptions = defaults.seLinuxOptions; this.seccompProfile = defaults.seccompProfile; this.supplementalGroups = defaults.supplementalGroups; @@ -249,6 +283,12 @@ public Builder runAsUser(@Nullable Integer runAsUser) { return this; } @CustomType.Setter + public Builder seLinuxChangePolicy(@Nullable String seLinuxChangePolicy) { + + this.seLinuxChangePolicy = seLinuxChangePolicy; + return this; + } + @CustomType.Setter public Builder seLinuxOptions(@Nullable SELinuxOptions seLinuxOptions) { this.seLinuxOptions = seLinuxOptions; @@ -298,6 +338,7 @@ public PodSecurityContext build() { _resultValue.runAsGroup = runAsGroup; _resultValue.runAsNonRoot = runAsNonRoot; _resultValue.runAsUser = runAsUser; + _resultValue.seLinuxChangePolicy = seLinuxChangePolicy; _resultValue.seLinuxOptions = seLinuxOptions; _resultValue.seccompProfile = seccompProfile; _resultValue.supplementalGroups = supplementalGroups; diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSecurityContextPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSecurityContextPatch.java index 7431c3bbb2..bad231855e 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSecurityContextPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSecurityContextPatch.java @@ -53,6 +53,21 @@ public final class PodSecurityContextPatch { * */ private @Nullable Integer runAsUser; + /** + * @return seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + */ + private @Nullable String seLinuxChangePolicy; /** * @return The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. * @@ -131,6 +146,23 @@ public Optional runAsNonRoot() { public Optional runAsUser() { return Optional.ofNullable(this.runAsUser); } + /** + * @return seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + * + */ + public Optional seLinuxChangePolicy() { + return Optional.ofNullable(this.seLinuxChangePolicy); + } /** * @return The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. * @@ -189,6 +221,7 @@ public static final class Builder { private @Nullable Integer runAsGroup; private @Nullable Boolean runAsNonRoot; private @Nullable Integer runAsUser; + private @Nullable String seLinuxChangePolicy; private @Nullable SELinuxOptionsPatch seLinuxOptions; private @Nullable SeccompProfilePatch seccompProfile; private @Nullable List supplementalGroups; @@ -204,6 +237,7 @@ public Builder(PodSecurityContextPatch defaults) { this.runAsGroup = defaults.runAsGroup; this.runAsNonRoot = defaults.runAsNonRoot; this.runAsUser = defaults.runAsUser; + this.seLinuxChangePolicy = defaults.seLinuxChangePolicy; this.seLinuxOptions = defaults.seLinuxOptions; this.seccompProfile = defaults.seccompProfile; this.supplementalGroups = defaults.supplementalGroups; @@ -249,6 +283,12 @@ public Builder runAsUser(@Nullable Integer runAsUser) { return this; } @CustomType.Setter + public Builder seLinuxChangePolicy(@Nullable String seLinuxChangePolicy) { + + this.seLinuxChangePolicy = seLinuxChangePolicy; + return this; + } + @CustomType.Setter public Builder seLinuxOptions(@Nullable SELinuxOptionsPatch seLinuxOptions) { this.seLinuxOptions = seLinuxOptions; @@ -298,6 +338,7 @@ public PodSecurityContextPatch build() { _resultValue.runAsGroup = runAsGroup; _resultValue.runAsNonRoot = runAsNonRoot; _resultValue.runAsUser = runAsUser; + _resultValue.seLinuxChangePolicy = seLinuxChangePolicy; _resultValue.seLinuxOptions = seLinuxOptions; _resultValue.seccompProfile = seccompProfile; _resultValue.supplementalGroups = supplementalGroups; diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSpec.java index e22208b6fe..9125369b0b 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSpec.java @@ -16,6 +16,7 @@ import com.pulumi.kubernetes.core.v1.outputs.PodResourceClaim; import com.pulumi.kubernetes.core.v1.outputs.PodSchedulingGate; import com.pulumi.kubernetes.core.v1.outputs.PodSecurityContext; +import com.pulumi.kubernetes.core.v1.outputs.ResourceRequirements; import com.pulumi.kubernetes.core.v1.outputs.Toleration; import com.pulumi.kubernetes.core.v1.outputs.TopologySpreadConstraint; import com.pulumi.kubernetes.core.v1.outputs.Volume; @@ -163,6 +164,15 @@ public final class PodSpec { * */ private @Nullable List resourceClaims; + /** + * @return Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + */ + private @Nullable ResourceRequirements resources; /** * @return Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy * @@ -201,7 +211,7 @@ public final class PodSpec { */ private @Nullable String serviceAccountName; /** - * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * */ private @Nullable Boolean setHostnameAsFQDN; @@ -420,6 +430,17 @@ public List readinessGates() { public List resourceClaims() { return this.resourceClaims == null ? List.of() : this.resourceClaims; } + /** + * @return Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + */ + public Optional resources() { + return Optional.ofNullable(this.resources); + } /** * @return Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy * @@ -472,7 +493,7 @@ public Optional serviceAccountName() { return Optional.ofNullable(this.serviceAccountName); } /** - * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * */ public Optional setHostnameAsFQDN() { @@ -555,6 +576,7 @@ public static final class Builder { private @Nullable String priorityClassName; private @Nullable List readinessGates; private @Nullable List resourceClaims; + private @Nullable ResourceRequirements resources; private @Nullable String restartPolicy; private @Nullable String runtimeClassName; private @Nullable String schedulerName; @@ -597,6 +619,7 @@ public Builder(PodSpec defaults) { this.priorityClassName = defaults.priorityClassName; this.readinessGates = defaults.readinessGates; this.resourceClaims = defaults.resourceClaims; + this.resources = defaults.resources; this.restartPolicy = defaults.restartPolicy; this.runtimeClassName = defaults.runtimeClassName; this.schedulerName = defaults.schedulerName; @@ -787,6 +810,12 @@ public Builder resourceClaims(PodResourceClaim... resourceClaims) { return resourceClaims(List.of(resourceClaims)); } @CustomType.Setter + public Builder resources(@Nullable ResourceRequirements resources) { + + this.resources = resources; + return this; + } + @CustomType.Setter public Builder restartPolicy(@Nullable String restartPolicy) { this.restartPolicy = restartPolicy; @@ -909,6 +938,7 @@ public PodSpec build() { _resultValue.priorityClassName = priorityClassName; _resultValue.readinessGates = readinessGates; _resultValue.resourceClaims = resourceClaims; + _resultValue.resources = resources; _resultValue.restartPolicy = restartPolicy; _resultValue.runtimeClassName = runtimeClassName; _resultValue.schedulerName = schedulerName; diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSpecPatch.java index d62429c65a..2532765f82 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodSpecPatch.java @@ -15,6 +15,7 @@ import com.pulumi.kubernetes.core.v1.outputs.PodResourceClaimPatch; import com.pulumi.kubernetes.core.v1.outputs.PodSchedulingGatePatch; import com.pulumi.kubernetes.core.v1.outputs.PodSecurityContextPatch; +import com.pulumi.kubernetes.core.v1.outputs.ResourceRequirementsPatch; import com.pulumi.kubernetes.core.v1.outputs.TolerationPatch; import com.pulumi.kubernetes.core.v1.outputs.TopologySpreadConstraintPatch; import com.pulumi.kubernetes.core.v1.outputs.VolumePatch; @@ -162,6 +163,15 @@ public final class PodSpecPatch { * */ private @Nullable List resourceClaims; + /** + * @return Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + */ + private @Nullable ResourceRequirementsPatch resources; /** * @return Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy * @@ -200,7 +210,7 @@ public final class PodSpecPatch { */ private @Nullable String serviceAccountName; /** - * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * */ private @Nullable Boolean setHostnameAsFQDN; @@ -419,6 +429,17 @@ public List readinessGates() { public List resourceClaims() { return this.resourceClaims == null ? List.of() : this.resourceClaims; } + /** + * @return Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + * + */ + public Optional resources() { + return Optional.ofNullable(this.resources); + } /** * @return Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy * @@ -471,7 +492,7 @@ public Optional serviceAccountName() { return Optional.ofNullable(this.serviceAccountName); } /** - * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * @return If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. * */ public Optional setHostnameAsFQDN() { @@ -554,6 +575,7 @@ public static final class Builder { private @Nullable String priorityClassName; private @Nullable List readinessGates; private @Nullable List resourceClaims; + private @Nullable ResourceRequirementsPatch resources; private @Nullable String restartPolicy; private @Nullable String runtimeClassName; private @Nullable String schedulerName; @@ -596,6 +618,7 @@ public Builder(PodSpecPatch defaults) { this.priorityClassName = defaults.priorityClassName; this.readinessGates = defaults.readinessGates; this.resourceClaims = defaults.resourceClaims; + this.resources = defaults.resources; this.restartPolicy = defaults.restartPolicy; this.runtimeClassName = defaults.runtimeClassName; this.schedulerName = defaults.schedulerName; @@ -784,6 +807,12 @@ public Builder resourceClaims(PodResourceClaimPatch... resourceClaims) { return resourceClaims(List.of(resourceClaims)); } @CustomType.Setter + public Builder resources(@Nullable ResourceRequirementsPatch resources) { + + this.resources = resources; + return this; + } + @CustomType.Setter public Builder restartPolicy(@Nullable String restartPolicy) { this.restartPolicy = restartPolicy; @@ -906,6 +935,7 @@ public PodSpecPatch build() { _resultValue.priorityClassName = priorityClassName; _resultValue.readinessGates = readinessGates; _resultValue.resourceClaims = resourceClaims; + _resultValue.resources = resources; _resultValue.restartPolicy = restartPolicy; _resultValue.runtimeClassName = runtimeClassName; _resultValue.schedulerName = schedulerName; diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodStatus.java index 8c9c7d8d10..b95ddb94b6 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodStatus.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodStatus.java @@ -23,12 +23,12 @@ public final class PodStatus { */ private @Nullable List conditions; /** - * @return The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ private @Nullable List containerStatuses; /** - * @return Status for any ephemeral containers that have run in this pod. + * @return Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ private @Nullable List ephemeralContainerStatuses; @@ -43,7 +43,7 @@ public final class PodStatus { */ private @Nullable List hostIPs; /** - * @return The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * */ private @Nullable List initContainerStatuses; @@ -111,14 +111,14 @@ public List conditions() { return this.conditions == null ? List.of() : this.conditions; } /** - * @return The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ public List containerStatuses() { return this.containerStatuses == null ? List.of() : this.containerStatuses; } /** - * @return Status for any ephemeral containers that have run in this pod. + * @return Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ public List ephemeralContainerStatuses() { @@ -139,7 +139,7 @@ public List hostIPs() { return this.hostIPs == null ? List.of() : this.hostIPs; } /** - * @return The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * */ public List initContainerStatuses() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodStatusPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodStatusPatch.java index 107b716626..2c7d2f95ae 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodStatusPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/PodStatusPatch.java @@ -23,12 +23,12 @@ public final class PodStatusPatch { */ private @Nullable List conditions; /** - * @return The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ private @Nullable List containerStatuses; /** - * @return Status for any ephemeral containers that have run in this pod. + * @return Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ private @Nullable List ephemeralContainerStatuses; @@ -43,7 +43,7 @@ public final class PodStatusPatch { */ private @Nullable List hostIPs; /** - * @return The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * */ private @Nullable List initContainerStatuses; @@ -111,14 +111,14 @@ public List conditions() { return this.conditions == null ? List.of() : this.conditions; } /** - * @return The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ public List containerStatuses() { return this.containerStatuses == null ? List.of() : this.containerStatuses; } /** - * @return Status for any ephemeral containers that have run in this pod. + * @return Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status * */ public List ephemeralContainerStatuses() { @@ -139,7 +139,7 @@ public List hostIPs() { return this.hostIPs == null ? List.of() : this.hostIPs; } /** - * @return The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * @return Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status * */ public List initContainerStatuses() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/Probe.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/Probe.java index b12715f044..76306ba73a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/Probe.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/Probe.java @@ -16,7 +16,7 @@ @CustomType public final class Probe { /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ private @Nullable ExecAction exec; @@ -26,12 +26,12 @@ public final class Probe { */ private @Nullable Integer failureThreshold; /** - * @return GRPC specifies an action involving a GRPC port. + * @return GRPC specifies a GRPC HealthCheckRequest. * */ private @Nullable GRPCAction grpc; /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ private @Nullable HTTPGetAction httpGet; @@ -51,7 +51,7 @@ public final class Probe { */ private @Nullable Integer successThreshold; /** - * @return TCPSocket specifies an action involving a TCP port. + * @return TCPSocket specifies a connection to a TCP port. * */ private @Nullable TCPSocketAction tcpSocket; @@ -68,7 +68,7 @@ public final class Probe { private Probe() {} /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ public Optional exec() { @@ -82,14 +82,14 @@ public Optional failureThreshold() { return Optional.ofNullable(this.failureThreshold); } /** - * @return GRPC specifies an action involving a GRPC port. + * @return GRPC specifies a GRPC HealthCheckRequest. * */ public Optional grpc() { return Optional.ofNullable(this.grpc); } /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ public Optional httpGet() { @@ -117,7 +117,7 @@ public Optional successThreshold() { return Optional.ofNullable(this.successThreshold); } /** - * @return TCPSocket specifies an action involving a TCP port. + * @return TCPSocket specifies a connection to a TCP port. * */ public Optional tcpSocket() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ProbePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ProbePatch.java index e4d42f8cfd..29da1ec52a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ProbePatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ProbePatch.java @@ -16,7 +16,7 @@ @CustomType public final class ProbePatch { /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ private @Nullable ExecActionPatch exec; @@ -26,12 +26,12 @@ public final class ProbePatch { */ private @Nullable Integer failureThreshold; /** - * @return GRPC specifies an action involving a GRPC port. + * @return GRPC specifies a GRPC HealthCheckRequest. * */ private @Nullable GRPCActionPatch grpc; /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ private @Nullable HTTPGetActionPatch httpGet; @@ -51,7 +51,7 @@ public final class ProbePatch { */ private @Nullable Integer successThreshold; /** - * @return TCPSocket specifies an action involving a TCP port. + * @return TCPSocket specifies a connection to a TCP port. * */ private @Nullable TCPSocketActionPatch tcpSocket; @@ -68,7 +68,7 @@ public final class ProbePatch { private ProbePatch() {} /** - * @return Exec specifies the action to take. + * @return Exec specifies a command to execute in the container. * */ public Optional exec() { @@ -82,14 +82,14 @@ public Optional failureThreshold() { return Optional.ofNullable(this.failureThreshold); } /** - * @return GRPC specifies an action involving a GRPC port. + * @return GRPC specifies a GRPC HealthCheckRequest. * */ public Optional grpc() { return Optional.ofNullable(this.grpc); } /** - * @return HTTPGet specifies the http request to perform. + * @return HTTPGet specifies an HTTP GET request to perform. * */ public Optional httpGet() { @@ -117,7 +117,7 @@ public Optional successThreshold() { return Optional.ofNullable(this.successThreshold); } /** - * @return TCPSocket specifies an action involving a TCP port. + * @return TCPSocket specifies a connection to a TCP port. * */ public Optional tcpSocket() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ResourceStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ResourceStatus.java index b2ae358cc9..1bc73ab45d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ResourceStatus.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ResourceStatus.java @@ -14,26 +14,26 @@ @CustomType public final class ResourceStatus { /** - * @return Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * @return Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. * */ private String name; /** - * @return List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * @return List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * */ private @Nullable List resources; private ResourceStatus() {} /** - * @return Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * @return Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. * */ public String name() { return this.name; } /** - * @return List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * @return List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * */ public List resources() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ResourceStatusPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ResourceStatusPatch.java index b53856ae3e..f6b7efae2c 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ResourceStatusPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ResourceStatusPatch.java @@ -14,26 +14,26 @@ @CustomType public final class ResourceStatusPatch { /** - * @return Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * @return Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. * */ private @Nullable String name; /** - * @return List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * @return List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * */ private @Nullable List resources; private ResourceStatusPatch() {} /** - * @return Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * @return Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:<claim_name>/<request>". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. * */ public Optional name() { return Optional.ofNullable(this.name); } /** - * @return List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * @return List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. * */ public List resources() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceAccount.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceAccount.java index 312b701bc0..09d1de98f0 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceAccount.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceAccount.java @@ -42,7 +42,7 @@ public final class ServiceAccount { */ private @Nullable ObjectMeta metadata; /** - * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ private @Nullable List secrets; @@ -84,7 +84,7 @@ public Optional metadata() { return Optional.ofNullable(this.metadata); } /** - * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * @return Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret * */ public List secrets() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceSpec.java index 7cb60ffc4f..41ac513c02 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceSpec.java @@ -122,7 +122,7 @@ public final class ServiceSpec { */ private @Nullable List topologyKeys; /** - * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * */ private @Nullable String trafficDistribution; @@ -278,7 +278,7 @@ public List topologyKeys() { return this.topologyKeys == null ? List.of() : this.topologyKeys; } /** - * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * */ public Optional trafficDistribution() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceSpecPatch.java index 826410c1e7..21c4980822 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/ServiceSpecPatch.java @@ -122,7 +122,7 @@ public final class ServiceSpecPatch { */ private @Nullable List topologyKeys; /** - * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * */ private @Nullable String trafficDistribution; @@ -278,7 +278,7 @@ public List topologyKeys() { return this.topologyKeys == null ? List.of() : this.topologyKeys; } /** - * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * @return TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. * */ public Optional trafficDistribution() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/Volume.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/Volume.java index 9880ab9747..c67e1fa39d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/Volume.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/Volume.java @@ -43,27 +43,27 @@ @CustomType public final class Volume { /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ private @Nullable AWSElasticBlockStoreVolumeSource awsElasticBlockStore; /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ private @Nullable AzureDiskVolumeSource azureDisk; /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ private @Nullable AzureFileVolumeSource azureFile; /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ private @Nullable CephFSVolumeSource cephfs; /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ private @Nullable CinderVolumeSource cinder; @@ -73,7 +73,7 @@ public final class Volume { */ private @Nullable ConfigMapVolumeSource configMap; /** - * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * */ private @Nullable CSIVolumeSource csi; @@ -111,27 +111,27 @@ public final class Volume { */ private @Nullable FCVolumeSource fc; /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ private @Nullable FlexVolumeSource flexVolume; /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ private @Nullable FlockerVolumeSource flocker; /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ private @Nullable GCEPersistentDiskVolumeSource gcePersistentDisk; /** - * @return gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @return gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * */ private @Nullable GitRepoVolumeSource gitRepo; /** - * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ private @Nullable GlusterfsVolumeSource glusterfs; @@ -170,12 +170,12 @@ public final class Volume { */ private @Nullable PersistentVolumeClaimVolumeSource persistentVolumeClaim; /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ private @Nullable PhotonPersistentDiskVolumeSource photonPersistentDisk; /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ private @Nullable PortworxVolumeSource portworxVolume; @@ -185,17 +185,17 @@ public final class Volume { */ private @Nullable ProjectedVolumeSource projected; /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ private @Nullable QuobyteVolumeSource quobyte; /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ private @Nullable RBDVolumeSource rbd; /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ private @Nullable ScaleIOVolumeSource scaleIO; @@ -205,47 +205,47 @@ public final class Volume { */ private @Nullable SecretVolumeSource secret; /** - * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * */ private @Nullable StorageOSVolumeSource storageos; /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ private @Nullable VsphereVirtualDiskVolumeSource vsphereVolume; private Volume() {} /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ public Optional awsElasticBlockStore() { return Optional.ofNullable(this.awsElasticBlockStore); } /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ public Optional azureDisk() { return Optional.ofNullable(this.azureDisk); } /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ public Optional azureFile() { return Optional.ofNullable(this.azureFile); } /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ public Optional cephfs() { return Optional.ofNullable(this.cephfs); } /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ public Optional cinder() { @@ -259,7 +259,7 @@ public Optional configMap() { return Optional.ofNullable(this.configMap); } /** - * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * */ public Optional csi() { @@ -307,35 +307,35 @@ public Optional fc() { return Optional.ofNullable(this.fc); } /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ public Optional flexVolume() { return Optional.ofNullable(this.flexVolume); } /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ public Optional flocker() { return Optional.ofNullable(this.flocker); } /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ public Optional gcePersistentDisk() { return Optional.ofNullable(this.gcePersistentDisk); } /** - * @return gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @return gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * */ public Optional gitRepo() { return Optional.ofNullable(this.gitRepo); } /** - * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ public Optional glusterfs() { @@ -388,14 +388,14 @@ public Optional persistentVolumeClaim() { return Optional.ofNullable(this.persistentVolumeClaim); } /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ public Optional photonPersistentDisk() { return Optional.ofNullable(this.photonPersistentDisk); } /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ public Optional portworxVolume() { @@ -409,21 +409,21 @@ public Optional projected() { return Optional.ofNullable(this.projected); } /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ public Optional quobyte() { return Optional.ofNullable(this.quobyte); } /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ public Optional rbd() { return Optional.ofNullable(this.rbd); } /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ public Optional scaleIO() { @@ -437,14 +437,14 @@ public Optional secret() { return Optional.ofNullable(this.secret); } /** - * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * */ public Optional storageos() { return Optional.ofNullable(this.storageos); } /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ public Optional vsphereVolume() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/VolumePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/VolumePatch.java index 6451a516a6..4902fe57b4 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/VolumePatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/core/v1/outputs/VolumePatch.java @@ -42,27 +42,27 @@ @CustomType public final class VolumePatch { /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ private @Nullable AWSElasticBlockStoreVolumeSourcePatch awsElasticBlockStore; /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ private @Nullable AzureDiskVolumeSourcePatch azureDisk; /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ private @Nullable AzureFileVolumeSourcePatch azureFile; /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ private @Nullable CephFSVolumeSourcePatch cephfs; /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ private @Nullable CinderVolumeSourcePatch cinder; @@ -72,7 +72,7 @@ public final class VolumePatch { */ private @Nullable ConfigMapVolumeSourcePatch configMap; /** - * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * */ private @Nullable CSIVolumeSourcePatch csi; @@ -110,27 +110,27 @@ public final class VolumePatch { */ private @Nullable FCVolumeSourcePatch fc; /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ private @Nullable FlexVolumeSourcePatch flexVolume; /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ private @Nullable FlockerVolumeSourcePatch flocker; /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ private @Nullable GCEPersistentDiskVolumeSourcePatch gcePersistentDisk; /** - * @return gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @return gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * */ private @Nullable GitRepoVolumeSourcePatch gitRepo; /** - * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ private @Nullable GlusterfsVolumeSourcePatch glusterfs; @@ -169,12 +169,12 @@ public final class VolumePatch { */ private @Nullable PersistentVolumeClaimVolumeSourcePatch persistentVolumeClaim; /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ private @Nullable PhotonPersistentDiskVolumeSourcePatch photonPersistentDisk; /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ private @Nullable PortworxVolumeSourcePatch portworxVolume; @@ -184,17 +184,17 @@ public final class VolumePatch { */ private @Nullable ProjectedVolumeSourcePatch projected; /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ private @Nullable QuobyteVolumeSourcePatch quobyte; /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ private @Nullable RBDVolumeSourcePatch rbd; /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ private @Nullable ScaleIOVolumeSourcePatch scaleIO; @@ -204,47 +204,47 @@ public final class VolumePatch { */ private @Nullable SecretVolumeSourcePatch secret; /** - * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * */ private @Nullable StorageOSVolumeSourcePatch storageos; /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ private @Nullable VsphereVirtualDiskVolumeSourcePatch vsphereVolume; private VolumePatch() {} /** - * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * @return awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore * */ public Optional awsElasticBlockStore() { return Optional.ofNullable(this.awsElasticBlockStore); } /** - * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @return azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. * */ public Optional azureDisk() { return Optional.ofNullable(this.azureDisk); } /** - * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @return azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. * */ public Optional azureFile() { return Optional.ofNullable(this.azureFile); } /** - * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * @return cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. * */ public Optional cephfs() { return Optional.ofNullable(this.cephfs); } /** - * @return cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * @return cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md * */ public Optional cinder() { @@ -258,7 +258,7 @@ public Optional configMap() { return Optional.ofNullable(this.configMap); } /** - * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * @return csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. * */ public Optional csi() { @@ -306,35 +306,35 @@ public Optional fc() { return Optional.ofNullable(this.fc); } /** - * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @return flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. * */ public Optional flexVolume() { return Optional.ofNullable(this.flexVolume); } /** - * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * @return flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. * */ public Optional flocker() { return Optional.ofNullable(this.flocker); } /** - * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * @return gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk * */ public Optional gcePersistentDisk() { return Optional.ofNullable(this.gcePersistentDisk); } /** - * @return gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @return gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. * */ public Optional gitRepo() { return Optional.ofNullable(this.gitRepo); } /** - * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * @return glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md * */ public Optional glusterfs() { @@ -387,14 +387,14 @@ public Optional persistentVolumeClaim() return Optional.ofNullable(this.persistentVolumeClaim); } /** - * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * @return photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. * */ public Optional photonPersistentDisk() { return Optional.ofNullable(this.photonPersistentDisk); } /** - * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * @return portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. * */ public Optional portworxVolume() { @@ -408,21 +408,21 @@ public Optional projected() { return Optional.ofNullable(this.projected); } /** - * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * @return quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. * */ public Optional quobyte() { return Optional.ofNullable(this.quobyte); } /** - * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * @return rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md * */ public Optional rbd() { return Optional.ofNullable(this.rbd); } /** - * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * @return scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. * */ public Optional scaleIO() { @@ -436,14 +436,14 @@ public Optional secret() { return Optional.ofNullable(this.secret); } /** - * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * @return storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. * */ public Optional storageos() { return Optional.ofNullable(this.storageos); } /** - * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * @return vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. * */ public Optional vsphereVolume() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/inputs/LimitedPriorityLevelConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/inputs/LimitedPriorityLevelConfigurationArgs.java index 8f7392ed86..7ad047a769 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/inputs/LimitedPriorityLevelConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/inputs/LimitedPriorityLevelConfigurationArgs.java @@ -82,9 +82,9 @@ public Optional> limitResponse() { /** * `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * */ @Import(name="nominalConcurrencyShares") @@ -93,9 +93,9 @@ public Optional> limitResponse() { /** * @return `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * */ public Optional> nominalConcurrencyShares() { @@ -207,9 +207,9 @@ public Builder limitResponse(LimitResponseArgs limitResponse) { /** * @param nominalConcurrencyShares `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * * @return builder * @@ -222,9 +222,9 @@ public Builder nominalConcurrencyShares(@Nullable Output nominalConcurr /** * @param nominalConcurrencyShares `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/inputs/LimitedPriorityLevelConfigurationPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/inputs/LimitedPriorityLevelConfigurationPatchArgs.java index 87bfd854c7..55de563f36 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/inputs/LimitedPriorityLevelConfigurationPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/inputs/LimitedPriorityLevelConfigurationPatchArgs.java @@ -82,9 +82,9 @@ public Optional> limitResponse() { /** * `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * */ @Import(name="nominalConcurrencyShares") @@ -93,9 +93,9 @@ public Optional> limitResponse() { /** * @return `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * */ public Optional> nominalConcurrencyShares() { @@ -207,9 +207,9 @@ public Builder limitResponse(LimitResponsePatchArgs limitResponse) { /** * @param nominalConcurrencyShares `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * * @return builder * @@ -222,9 +222,9 @@ public Builder nominalConcurrencyShares(@Nullable Output nominalConcurr /** * @param nominalConcurrencyShares `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/outputs/LimitedPriorityLevelConfiguration.java b/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/outputs/LimitedPriorityLevelConfiguration.java index c6bf522567..34eb2e4134 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/outputs/LimitedPriorityLevelConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/outputs/LimitedPriorityLevelConfiguration.java @@ -36,9 +36,9 @@ public final class LimitedPriorityLevelConfiguration { /** * @return `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * */ private @Nullable Integer nominalConcurrencyShares; @@ -74,9 +74,9 @@ public Optional limitResponse() { /** * @return `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * */ public Optional nominalConcurrencyShares() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/outputs/LimitedPriorityLevelConfigurationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/outputs/LimitedPriorityLevelConfigurationPatch.java index 841d065e82..b251cd6483 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/outputs/LimitedPriorityLevelConfigurationPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/flowcontrol/v1beta3/outputs/LimitedPriorityLevelConfigurationPatch.java @@ -36,9 +36,9 @@ public final class LimitedPriorityLevelConfigurationPatch { /** * @return `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * */ private @Nullable Integer nominalConcurrencyShares; @@ -74,9 +74,9 @@ public Optional limitResponse() { /** * @return `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. * */ public Optional nominalConcurrencyShares() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaim.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaim.java index 1d438df73d..3b3c1d5823 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaim.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaim.java @@ -142,7 +142,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaim").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaim").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaim").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaim").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimPatch.java index 94b48b4cd8..56480f7d4e 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimPatch.java @@ -148,7 +148,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimTemplate.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimTemplate.java index d9bcbcc40e..b781b20536 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimTemplate.java @@ -128,7 +128,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.java index 8082897683..a6972e4f5a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.java @@ -135,7 +135,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaim.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaim.java index e1a3db284c..501ca4ec39 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaim.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaim.java @@ -142,7 +142,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaim").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaim").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaim").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaim").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimPatch.java index 86dd2c81aa..fe205f5efb 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimPatch.java @@ -148,7 +148,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimTemplate.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimTemplate.java index c52bcaa30e..fba12a13ea 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimTemplate.java @@ -128,7 +128,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.java index 1b53ec9a8d..0c0b65ac37 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.java @@ -135,7 +135,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceSlice.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceSlice.java index 39fab2ca73..f9f3d17f6d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceSlice.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceSlice.java @@ -155,7 +155,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) .aliases(List.of( - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceSlice").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceSlice").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceSlice").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceSlicePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceSlicePatch.java index cac1e88739..a82c9aa5db 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceSlicePatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha2/ResourceSlicePatch.java @@ -162,7 +162,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) .aliases(List.of( - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/DeviceClass.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/DeviceClass.java index a71a02d78f..fab020a564 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/DeviceClass.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/DeviceClass.java @@ -3,6 +3,7 @@ package com.pulumi.kubernetes.resource.v1alpha3; +import com.pulumi.core.Alias; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -12,6 +13,7 @@ import com.pulumi.kubernetes.resource.v1alpha3.DeviceClassArgs; import com.pulumi.kubernetes.resource.v1alpha3.outputs.DeviceClassSpec; import java.lang.String; +import java.util.List; import javax.annotation.Nullable; /** @@ -130,6 +132,9 @@ private static DeviceClassArgs makeArgs(DeviceClassArgs args, @Nullable com.pulu private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:DeviceClass").build()) + )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/DeviceClassPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/DeviceClassPatch.java index 86fee34216..90f429f213 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/DeviceClassPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/DeviceClassPatch.java @@ -3,6 +3,7 @@ package com.pulumi.kubernetes.resource.v1alpha3; +import com.pulumi.core.Alias; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -12,6 +13,7 @@ import com.pulumi.kubernetes.resource.v1alpha3.DeviceClassPatchArgs; import com.pulumi.kubernetes.resource.v1alpha3.outputs.DeviceClassSpecPatch; import java.lang.String; +import java.util.List; import java.util.Optional; import javax.annotation.Nullable; @@ -137,6 +139,9 @@ private static DeviceClassPatchArgs makeArgs(@Nullable DeviceClassPatchArgs args private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch").build()) + )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaim.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaim.java index f3f811686c..32daef28a8 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaim.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaim.java @@ -142,7 +142,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaim").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaim").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaim").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaim").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimPatch.java index 05af4d50fe..6af431fc1e 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimPatch.java @@ -148,7 +148,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimTemplate.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimTemplate.java index 16839f948d..4c799be8a8 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimTemplate.java @@ -130,7 +130,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.java index 90f6b0dfe0..3da9eeb8ab 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.java @@ -137,7 +137,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch").build()), - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSlice.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSlice.java index f4f08b8229..9cb4efe035 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSlice.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSlice.java @@ -137,7 +137,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) .aliases(List.of( - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceSlice").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceSlice").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceSlice").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSliceList.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSliceList.java new file mode 100644 index 0000000000..232855f543 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSliceList.java @@ -0,0 +1,153 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ListMeta; +import com.pulumi.kubernetes.resource.v1alpha3.ResourceSliceListArgs; +import com.pulumi.kubernetes.resource.v1alpha3.outputs.ResourceSlice; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * ResourceSliceList is a collection of ResourceSlices. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList") +public class ResourceSliceList extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * Items is the list of resource ResourceSlices. + * + */ + @Export(name="items", refs={List.class,ResourceSlice.class}, tree="[0,1]") + private Output> items; + + /** + * @return Items is the list of resource ResourceSlices. + * + */ + public Output> items() { + return this.items; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard list metadata + * + */ + @Export(name="listMeta", refs={ListMeta.class}, tree="[0]") + private Output listMeta; + + /** + * @return Standard list metadata + * + */ + public Output listMeta() { + return this.listMeta; + } + /** + * Standard list metadata + * + */ + @Export(name="metadata", refs={ListMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard list metadata + * + */ + public Output metadata() { + return this.metadata; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceSliceList(String name) { + this(name, ResourceSliceListArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceSliceList(String name, ResourceSliceListArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceSliceList(String name, ResourceSliceListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceSliceList(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList", name, null, makeResourceOptions(options, id)); + } + + private static ResourceSliceListArgs makeArgs(ResourceSliceListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceSliceListArgs.builder() : ResourceSliceListArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1alpha3") + .kind("ResourceSliceList") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceSliceList get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceSliceList(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSliceListArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSliceListArgs.java new file mode 100644 index 0000000000..439c6a3b02 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSliceListArgs.java @@ -0,0 +1,251 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ListMetaArgs; +import com.pulumi.kubernetes.resource.v1alpha3.inputs.ResourceSliceArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceSliceListArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceSliceListArgs Empty = new ResourceSliceListArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * Items is the list of resource ResourceSlices. + * + */ + @Import(name="items", required=true) + private Output> items; + + /** + * @return Items is the list of resource ResourceSlices. + * + */ + public Output> items() { + return this.items; + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard list metadata + * + */ + @Import(name="listMeta") + private @Nullable Output listMeta; + + /** + * @return Standard list metadata + * + */ + public Optional> listMeta() { + return Optional.ofNullable(this.listMeta); + } + + /** + * Standard list metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard list metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + private ResourceSliceListArgs() {} + + private ResourceSliceListArgs(ResourceSliceListArgs $) { + this.apiVersion = $.apiVersion; + this.items = $.items; + this.kind = $.kind; + this.listMeta = $.listMeta; + this.metadata = $.metadata; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceSliceListArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceSliceListArgs $; + + public Builder() { + $ = new ResourceSliceListArgs(); + } + + public Builder(ResourceSliceListArgs defaults) { + $ = new ResourceSliceListArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param items Items is the list of resource ResourceSlices. + * + * @return builder + * + */ + public Builder items(Output> items) { + $.items = items; + return this; + } + + /** + * @param items Items is the list of resource ResourceSlices. + * + * @return builder + * + */ + public Builder items(List items) { + return items(Output.of(items)); + } + + /** + * @param items Items is the list of resource ResourceSlices. + * + * @return builder + * + */ + public Builder items(ResourceSliceArgs... items) { + return items(List.of(items)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param listMeta Standard list metadata + * + * @return builder + * + */ + public Builder listMeta(@Nullable Output listMeta) { + $.listMeta = listMeta; + return this; + } + + /** + * @param listMeta Standard list metadata + * + * @return builder + * + */ + public Builder listMeta(ListMetaArgs listMeta) { + return listMeta(Output.of(listMeta)); + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(ListMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + public ResourceSliceListArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + if ($.items == null) { + throw new MissingRequiredPropertyException("ResourceSliceListArgs", "items"); + } + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSlicePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSlicePatch.java index 7dc5215866..4a486de2f1 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSlicePatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/ResourceSlicePatch.java @@ -144,7 +144,8 @@ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@N var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) .aliases(List.of( - Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch").build()) + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/AllocatedDeviceStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/AllocatedDeviceStatusArgs.java new file mode 100644 index 0000000000..62e1ed7a17 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/AllocatedDeviceStatusArgs.java @@ -0,0 +1,320 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3.inputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ConditionArgs; +import com.pulumi.kubernetes.resource.v1alpha3.inputs.NetworkDeviceDataArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + * + */ +public final class AllocatedDeviceStatusArgs extends com.pulumi.resources.ResourceArgs { + + public static final AllocatedDeviceStatusArgs Empty = new AllocatedDeviceStatusArgs(); + + /** + * 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. + * + */ + @Import(name="conditions") + private @Nullable Output> conditions; + + /** + * @return 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. + * + */ + public Optional>> conditions() { + return Optional.ofNullable(this.conditions); + } + + /** + * Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + @Import(name="data") + private @Nullable Output data; + + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Optional> data() { + return Optional.ofNullable(this.data); + } + + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + @Import(name="device", required=true) + private Output device; + + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public Output device() { + return this.device; + } + + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + @Import(name="driver", required=true) + private Output driver; + + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Output driver() { + return this.driver; + } + + /** + * NetworkData contains network-related information specific to the device. + * + */ + @Import(name="networkData") + private @Nullable Output networkData; + + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + public Optional> networkData() { + return Optional.ofNullable(this.networkData); + } + + /** + * This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + @Import(name="pool", required=true) + private Output pool; + + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public Output pool() { + return this.pool; + } + + private AllocatedDeviceStatusArgs() {} + + private AllocatedDeviceStatusArgs(AllocatedDeviceStatusArgs $) { + this.conditions = $.conditions; + this.data = $.data; + this.device = $.device; + this.driver = $.driver; + this.networkData = $.networkData; + this.pool = $.pool; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AllocatedDeviceStatusArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AllocatedDeviceStatusArgs $; + + public Builder() { + $ = new AllocatedDeviceStatusArgs(); + } + + public Builder(AllocatedDeviceStatusArgs defaults) { + $ = new AllocatedDeviceStatusArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder conditions(@Nullable Output> conditions) { + $.conditions = conditions; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder conditions(List conditions) { + return conditions(Output.of(conditions)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder conditions(ConditionArgs... conditions) { + return conditions(List.of(conditions)); + } + + /** + * @param data Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + * @return builder + * + */ + public Builder data(@Nullable Output data) { + $.data = data; + return this; + } + + /** + * @param data Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + * @return builder + * + */ + public Builder data(JsonElement data) { + return data(Output.of(data)); + } + + /** + * @param device Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder device(Output device) { + $.device = device; + return this; + } + + /** + * @param device Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder device(String device) { + return device(Output.of(device)); + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(Output driver) { + $.driver = driver; + return this; + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(String driver) { + return driver(Output.of(driver)); + } + + /** + * @param networkData NetworkData contains network-related information specific to the device. + * + * @return builder + * + */ + public Builder networkData(@Nullable Output networkData) { + $.networkData = networkData; + return this; + } + + /** + * @param networkData NetworkData contains network-related information specific to the device. + * + * @return builder + * + */ + public Builder networkData(NetworkDeviceDataArgs networkData) { + return networkData(Output.of(networkData)); + } + + /** + * @param pool This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + * @return builder + * + */ + public Builder pool(Output pool) { + $.pool = pool; + return this; + } + + /** + * @param pool This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + * @return builder + * + */ + public Builder pool(String pool) { + return pool(Output.of(pool)); + } + + public AllocatedDeviceStatusArgs build() { + if ($.device == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatusArgs", "device"); + } + if ($.driver == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatusArgs", "driver"); + } + if ($.pool == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatusArgs", "pool"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/CELDeviceSelectorArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/CELDeviceSelectorArgs.java index f2a608ba27..a888b339e4 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/CELDeviceSelectorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/CELDeviceSelectorArgs.java @@ -47,6 +47,8 @@ public final class CELDeviceSelectorArgs extends com.pulumi.resources.ResourceAr * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * */ @Import(name="expression", required=true) private Output expression; @@ -80,6 +82,8 @@ public final class CELDeviceSelectorArgs extends com.pulumi.resources.ResourceAr * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * */ public Output expression() { return this.expression; @@ -138,6 +142,8 @@ public Builder(CELDeviceSelectorArgs defaults) { * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * * @return builder * */ @@ -175,6 +181,8 @@ public Builder expression(Output expression) { * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/CELDeviceSelectorPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/CELDeviceSelectorPatchArgs.java index 0718dfe9f1..2df3ddaf19 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/CELDeviceSelectorPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/CELDeviceSelectorPatchArgs.java @@ -48,6 +48,8 @@ public final class CELDeviceSelectorPatchArgs extends com.pulumi.resources.Resou * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * */ @Import(name="expression") private @Nullable Output expression; @@ -81,6 +83,8 @@ public final class CELDeviceSelectorPatchArgs extends com.pulumi.resources.Resou * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * */ public Optional> expression() { return Optional.ofNullable(this.expression); @@ -139,6 +143,8 @@ public Builder(CELDeviceSelectorPatchArgs defaults) { * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * * @return builder * */ @@ -176,6 +182,8 @@ public Builder expression(@Nullable Output expression) { * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestAllocationResultArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestAllocationResultArgs.java index f229e603e1..58836ba45e 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestAllocationResultArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestAllocationResultArgs.java @@ -6,8 +6,11 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; /** @@ -18,6 +21,25 @@ public final class DeviceRequestAllocationResultArgs extends com.pulumi.resource public static final DeviceRequestAllocationResultArgs Empty = new DeviceRequestAllocationResultArgs(); + /** + * AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + @Import(name="adminAccess") + private @Nullable Output adminAccess; + + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + public Optional> adminAccess() { + return Optional.ofNullable(this.adminAccess); + } + /** * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. * @@ -89,6 +111,7 @@ public Output request() { private DeviceRequestAllocationResultArgs() {} private DeviceRequestAllocationResultArgs(DeviceRequestAllocationResultArgs $) { + this.adminAccess = $.adminAccess; this.device = $.device; this.driver = $.driver; this.pool = $.pool; @@ -113,6 +136,31 @@ public Builder(DeviceRequestAllocationResultArgs defaults) { $ = new DeviceRequestAllocationResultArgs(Objects.requireNonNull(defaults)); } + /** + * @param adminAccess AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + * @return builder + * + */ + public Builder adminAccess(@Nullable Output adminAccess) { + $.adminAccess = adminAccess; + return this; + } + + /** + * @param adminAccess AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + * @return builder + * + */ + public Builder adminAccess(Boolean adminAccess) { + return adminAccess(Output.of(adminAccess)); + } + /** * @param device Device references one device instance via its name in the driver's resource pool. It must be a DNS label. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestArgs.java index 56c47ce5aa..2889c1be3d 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestArgs.java @@ -29,6 +29,8 @@ public final class DeviceRequestArgs extends com.pulumi.resources.ResourceArgs { /** * 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. * + * 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. + * */ @Import(name="adminAccess") private @Nullable Output adminAccess; @@ -36,6 +38,8 @@ public final class DeviceRequestArgs extends com.pulumi.resources.ResourceArgs { /** * @return 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. * + * 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. + * */ public Optional> adminAccess() { return Optional.ofNullable(this.adminAccess); @@ -184,6 +188,8 @@ public Builder(DeviceRequestArgs defaults) { /** * @param adminAccess 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. * + * 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. + * * @return builder * */ @@ -195,6 +201,8 @@ public Builder adminAccess(@Nullable Output adminAccess) { /** * @param adminAccess 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. * + * 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. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestPatchArgs.java index bdcc782057..039e58f1af 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/DeviceRequestPatchArgs.java @@ -28,6 +28,8 @@ public final class DeviceRequestPatchArgs extends com.pulumi.resources.ResourceA /** * 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. * + * 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. + * */ @Import(name="adminAccess") private @Nullable Output adminAccess; @@ -35,6 +37,8 @@ public final class DeviceRequestPatchArgs extends com.pulumi.resources.ResourceA /** * @return 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. * + * 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. + * */ public Optional> adminAccess() { return Optional.ofNullable(this.adminAccess); @@ -183,6 +187,8 @@ public Builder(DeviceRequestPatchArgs defaults) { /** * @param adminAccess 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. * + * 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. + * * @return builder * */ @@ -194,6 +200,8 @@ public Builder adminAccess(@Nullable Output adminAccess) { /** * @param adminAccess 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. * + * 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. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/NetworkDeviceDataArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/NetworkDeviceDataArgs.java new file mode 100644 index 0000000000..c13547f640 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/NetworkDeviceDataArgs.java @@ -0,0 +1,188 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * 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. + * + */ +public final class NetworkDeviceDataArgs extends com.pulumi.resources.ResourceArgs { + + public static final NetworkDeviceDataArgs Empty = new NetworkDeviceDataArgs(); + + /** + * HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + @Import(name="hardwareAddress") + private @Nullable Output hardwareAddress; + + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + public Optional> hardwareAddress() { + return Optional.ofNullable(this.hardwareAddress); + } + + /** + * 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. + * + * Must not be longer than 256 characters. + * + */ + @Import(name="interfaceName") + private @Nullable Output interfaceName; + + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + public Optional> interfaceName() { + return Optional.ofNullable(this.interfaceName); + } + + /** + * 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. + * + */ + @Import(name="ips") + private @Nullable Output> ips; + + /** + * @return 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. + * + */ + public Optional>> ips() { + return Optional.ofNullable(this.ips); + } + + private NetworkDeviceDataArgs() {} + + private NetworkDeviceDataArgs(NetworkDeviceDataArgs $) { + this.hardwareAddress = $.hardwareAddress; + this.interfaceName = $.interfaceName; + this.ips = $.ips; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(NetworkDeviceDataArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private NetworkDeviceDataArgs $; + + public Builder() { + $ = new NetworkDeviceDataArgs(); + } + + public Builder(NetworkDeviceDataArgs defaults) { + $ = new NetworkDeviceDataArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param hardwareAddress HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + * @return builder + * + */ + public Builder hardwareAddress(@Nullable Output hardwareAddress) { + $.hardwareAddress = hardwareAddress; + return this; + } + + /** + * @param hardwareAddress HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + * @return builder + * + */ + public Builder hardwareAddress(String hardwareAddress) { + return hardwareAddress(Output.of(hardwareAddress)); + } + + /** + * @param interfaceName 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. + * + * Must not be longer than 256 characters. + * + * @return builder + * + */ + public Builder interfaceName(@Nullable Output interfaceName) { + $.interfaceName = interfaceName; + return this; + } + + /** + * @param interfaceName 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. + * + * Must not be longer than 256 characters. + * + * @return builder + * + */ + public Builder interfaceName(String interfaceName) { + return interfaceName(Output.of(interfaceName)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder ips(@Nullable Output> ips) { + $.ips = ips; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder ips(List ips) { + return ips(Output.of(ips)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder ips(String... ips) { + return ips(List.of(ips)); + } + + public NetworkDeviceDataArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/OpaqueDeviceConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/OpaqueDeviceConfigurationArgs.java index 2913619cb4..0b8e9106dc 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/OpaqueDeviceConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/OpaqueDeviceConfigurationArgs.java @@ -45,6 +45,8 @@ public Output driver() { /** * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * */ @Import(name="parameters", required=true) private Output parameters; @@ -52,6 +54,8 @@ public Output driver() { /** * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * */ public Output parameters() { return this.parameters; @@ -114,6 +118,8 @@ public Builder driver(String driver) { /** * @param parameters Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * * @return builder * */ @@ -125,6 +131,8 @@ public Builder parameters(Output parameters) { /** * @param parameters Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/OpaqueDeviceConfigurationPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/OpaqueDeviceConfigurationPatchArgs.java index f68d454a3a..6623169b7e 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/OpaqueDeviceConfigurationPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/OpaqueDeviceConfigurationPatchArgs.java @@ -46,6 +46,8 @@ public Optional> driver() { /** * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * */ @Import(name="parameters") private @Nullable Output parameters; @@ -53,6 +55,8 @@ public Optional> driver() { /** * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * */ public Optional> parameters() { return Optional.ofNullable(this.parameters); @@ -115,6 +119,8 @@ public Builder driver(String driver) { /** * @param parameters Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * * @return builder * */ @@ -126,6 +132,8 @@ public Builder parameters(@Nullable Output parameters) { /** * @param parameters Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimStatusArgs.java index e46cf052c4..b8d6ff9b87 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimStatusArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimStatusArgs.java @@ -5,6 +5,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1alpha3.inputs.AllocatedDeviceStatusArgs; import com.pulumi.kubernetes.resource.v1alpha3.inputs.AllocationResultArgs; import com.pulumi.kubernetes.resource.v1alpha3.inputs.ResourceClaimConsumerReferenceArgs; import java.lang.Boolean; @@ -60,6 +61,21 @@ public Optional> deallocationRequested() { return Optional.ofNullable(this.deallocationRequested); } + /** + * Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + @Import(name="devices") + private @Nullable Output> devices; + + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + public Optional>> devices() { + return Optional.ofNullable(this.devices); + } + /** * ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * @@ -92,6 +108,7 @@ private ResourceClaimStatusArgs() {} private ResourceClaimStatusArgs(ResourceClaimStatusArgs $) { this.allocation = $.allocation; this.deallocationRequested = $.deallocationRequested; + this.devices = $.devices; this.reservedFor = $.reservedFor; } @@ -163,6 +180,37 @@ public Builder deallocationRequested(Boolean deallocationRequested) { return deallocationRequested(Output.of(deallocationRequested)); } + /** + * @param devices Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + * @return builder + * + */ + public Builder devices(@Nullable Output> devices) { + $.devices = devices; + return this; + } + + /** + * @param devices Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + * @return builder + * + */ + public Builder devices(List devices) { + return devices(Output.of(devices)); + } + + /** + * @param devices Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + * @return builder + * + */ + public Builder devices(AllocatedDeviceStatusArgs... devices) { + return devices(List.of(devices)); + } + /** * @param reservedFor ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimTemplateSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimTemplateSpecArgs.java index 5132f90660..79a9733567 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimTemplateSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimTemplateSpecArgs.java @@ -22,14 +22,14 @@ public final class ResourceClaimTemplateSpecArgs extends com.pulumi.resources.Re public static final ResourceClaimTemplateSpecArgs Empty = new ResourceClaimTemplateSpecArgs(); /** - * ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * */ @Import(name="metadata") private @Nullable Output metadata; /** - * @return ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * */ public Optional> metadata() { @@ -77,7 +77,7 @@ public Builder(ResourceClaimTemplateSpecArgs defaults) { } /** - * @param metadata ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @param metadata ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * * @return builder * @@ -88,7 +88,7 @@ public Builder metadata(@Nullable Output metadata) { } /** - * @param metadata ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @param metadata ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimTemplateSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimTemplateSpecPatchArgs.java index f06dc84bb4..fa07a8f689 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimTemplateSpecPatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceClaimTemplateSpecPatchArgs.java @@ -21,14 +21,14 @@ public final class ResourceClaimTemplateSpecPatchArgs extends com.pulumi.resourc public static final ResourceClaimTemplateSpecPatchArgs Empty = new ResourceClaimTemplateSpecPatchArgs(); /** - * ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * */ @Import(name="metadata") private @Nullable Output metadata; /** - * @return ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * */ public Optional> metadata() { @@ -76,7 +76,7 @@ public Builder(ResourceClaimTemplateSpecPatchArgs defaults) { } /** - * @param metadata ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @param metadata ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * * @return builder * @@ -87,7 +87,7 @@ public Builder metadata(@Nullable Output metadata) { } /** - * @param metadata ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @param metadata ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceSliceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceSliceArgs.java new file mode 100644 index 0000000000..64286157d9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/inputs/ResourceSliceArgs.java @@ -0,0 +1,225 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1alpha3.inputs.ResourceSliceSpecArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +public final class ResourceSliceArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceSliceArgs Empty = new ResourceSliceArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output spec() { + return this.spec; + } + + private ResourceSliceArgs() {} + + private ResourceSliceArgs(ResourceSliceArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceSliceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceSliceArgs $; + + public Builder() { + $ = new ResourceSliceArgs(); + } + + public Builder(ResourceSliceArgs defaults) { + $ = new ResourceSliceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(ResourceSliceSpecArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceSliceArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("ResourceSliceArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/AllocatedDeviceStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/AllocatedDeviceStatus.java new file mode 100644 index 0000000000..651f71e5a9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/AllocatedDeviceStatus.java @@ -0,0 +1,188 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3.outputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.outputs.Condition; +import com.pulumi.kubernetes.resource.v1alpha3.outputs.NetworkDeviceData; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AllocatedDeviceStatus { + /** + * @return 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. + * + */ + private @Nullable List conditions; + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + private @Nullable JsonElement data; + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + private String device; + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + private String driver; + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + private @Nullable NetworkDeviceData networkData; + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + private String pool; + + private AllocatedDeviceStatus() {} + /** + * @return 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. + * + */ + public List conditions() { + return this.conditions == null ? List.of() : this.conditions; + } + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Optional data() { + return Optional.ofNullable(this.data); + } + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public String device() { + return this.device; + } + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public String driver() { + return this.driver; + } + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + public Optional networkData() { + return Optional.ofNullable(this.networkData); + } + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public String pool() { + return this.pool; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AllocatedDeviceStatus defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List conditions; + private @Nullable JsonElement data; + private String device; + private String driver; + private @Nullable NetworkDeviceData networkData; + private String pool; + public Builder() {} + public Builder(AllocatedDeviceStatus defaults) { + Objects.requireNonNull(defaults); + this.conditions = defaults.conditions; + this.data = defaults.data; + this.device = defaults.device; + this.driver = defaults.driver; + this.networkData = defaults.networkData; + this.pool = defaults.pool; + } + + @CustomType.Setter + public Builder conditions(@Nullable List conditions) { + + this.conditions = conditions; + return this; + } + public Builder conditions(Condition... conditions) { + return conditions(List.of(conditions)); + } + @CustomType.Setter + public Builder data(@Nullable JsonElement data) { + + this.data = data; + return this; + } + @CustomType.Setter + public Builder device(String device) { + if (device == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatus", "device"); + } + this.device = device; + return this; + } + @CustomType.Setter + public Builder driver(String driver) { + if (driver == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatus", "driver"); + } + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder networkData(@Nullable NetworkDeviceData networkData) { + + this.networkData = networkData; + return this; + } + @CustomType.Setter + public Builder pool(String pool) { + if (pool == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatus", "pool"); + } + this.pool = pool; + return this; + } + public AllocatedDeviceStatus build() { + final var _resultValue = new AllocatedDeviceStatus(); + _resultValue.conditions = conditions; + _resultValue.data = data; + _resultValue.device = device; + _resultValue.driver = driver; + _resultValue.networkData = networkData; + _resultValue.pool = pool; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/AllocatedDeviceStatusPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/AllocatedDeviceStatusPatch.java new file mode 100644 index 0000000000..e834b17adc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/AllocatedDeviceStatusPatch.java @@ -0,0 +1,181 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3.outputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.meta.v1.outputs.ConditionPatch; +import com.pulumi.kubernetes.resource.v1alpha3.outputs.NetworkDeviceDataPatch; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AllocatedDeviceStatusPatch { + /** + * @return 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. + * + */ + private @Nullable List conditions; + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + private @Nullable JsonElement data; + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + private @Nullable String device; + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + private @Nullable String driver; + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + private @Nullable NetworkDeviceDataPatch networkData; + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + private @Nullable String pool; + + private AllocatedDeviceStatusPatch() {} + /** + * @return 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. + * + */ + public List conditions() { + return this.conditions == null ? List.of() : this.conditions; + } + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Optional data() { + return Optional.ofNullable(this.data); + } + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public Optional device() { + return Optional.ofNullable(this.device); + } + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Optional driver() { + return Optional.ofNullable(this.driver); + } + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + public Optional networkData() { + return Optional.ofNullable(this.networkData); + } + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public Optional pool() { + return Optional.ofNullable(this.pool); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AllocatedDeviceStatusPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List conditions; + private @Nullable JsonElement data; + private @Nullable String device; + private @Nullable String driver; + private @Nullable NetworkDeviceDataPatch networkData; + private @Nullable String pool; + public Builder() {} + public Builder(AllocatedDeviceStatusPatch defaults) { + Objects.requireNonNull(defaults); + this.conditions = defaults.conditions; + this.data = defaults.data; + this.device = defaults.device; + this.driver = defaults.driver; + this.networkData = defaults.networkData; + this.pool = defaults.pool; + } + + @CustomType.Setter + public Builder conditions(@Nullable List conditions) { + + this.conditions = conditions; + return this; + } + public Builder conditions(ConditionPatch... conditions) { + return conditions(List.of(conditions)); + } + @CustomType.Setter + public Builder data(@Nullable JsonElement data) { + + this.data = data; + return this; + } + @CustomType.Setter + public Builder device(@Nullable String device) { + + this.device = device; + return this; + } + @CustomType.Setter + public Builder driver(@Nullable String driver) { + + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder networkData(@Nullable NetworkDeviceDataPatch networkData) { + + this.networkData = networkData; + return this; + } + @CustomType.Setter + public Builder pool(@Nullable String pool) { + + this.pool = pool; + return this; + } + public AllocatedDeviceStatusPatch build() { + final var _resultValue = new AllocatedDeviceStatusPatch(); + _resultValue.conditions = conditions; + _resultValue.data = data; + _resultValue.device = device; + _resultValue.driver = driver; + _resultValue.networkData = networkData; + _resultValue.pool = pool; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/CELDeviceSelector.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/CELDeviceSelector.java index 41ad9ed1f7..2ec56d1825 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/CELDeviceSelector.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/CELDeviceSelector.java @@ -39,6 +39,8 @@ public final class CELDeviceSelector { * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * */ private String expression; @@ -72,6 +74,8 @@ private CELDeviceSelector() {} * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * */ public String expression() { return this.expression; diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/CELDeviceSelectorPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/CELDeviceSelectorPatch.java index 5a88efd4cb..982a848b6a 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/CELDeviceSelectorPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/CELDeviceSelectorPatch.java @@ -40,6 +40,8 @@ public final class CELDeviceSelectorPatch { * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * */ private @Nullable String expression; @@ -73,6 +75,8 @@ private CELDeviceSelectorPatch() {} * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * */ public Optional expression() { return Optional.ofNullable(this.expression); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequest.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequest.java index f7dae045c5..46fe340409 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequest.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequest.java @@ -19,6 +19,8 @@ public final class DeviceRequest { /** * @return 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. * + * 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. + * */ private @Nullable Boolean adminAccess; /** @@ -69,6 +71,8 @@ private DeviceRequest() {} /** * @return 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. * + * 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. + * */ public Optional adminAccess() { return Optional.ofNullable(this.adminAccess); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestAllocationResult.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestAllocationResult.java index d48dd8c169..5d0fb04159 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestAllocationResult.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestAllocationResult.java @@ -5,11 +5,21 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; @CustomType public final class DeviceRequestAllocationResult { + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + private @Nullable Boolean adminAccess; /** * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. * @@ -36,6 +46,15 @@ public final class DeviceRequestAllocationResult { private String request; private DeviceRequestAllocationResult() {} + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + public Optional adminAccess() { + return Optional.ofNullable(this.adminAccess); + } /** * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. * @@ -78,6 +97,7 @@ public static Builder builder(DeviceRequestAllocationResult defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable Boolean adminAccess; private String device; private String driver; private String pool; @@ -85,12 +105,19 @@ public static final class Builder { public Builder() {} public Builder(DeviceRequestAllocationResult defaults) { Objects.requireNonNull(defaults); + this.adminAccess = defaults.adminAccess; this.device = defaults.device; this.driver = defaults.driver; this.pool = defaults.pool; this.request = defaults.request; } + @CustomType.Setter + public Builder adminAccess(@Nullable Boolean adminAccess) { + + this.adminAccess = adminAccess; + return this; + } @CustomType.Setter public Builder device(String device) { if (device == null) { @@ -125,6 +152,7 @@ public Builder request(String request) { } public DeviceRequestAllocationResult build() { final var _resultValue = new DeviceRequestAllocationResult(); + _resultValue.adminAccess = adminAccess; _resultValue.device = device; _resultValue.driver = driver; _resultValue.pool = pool; diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestAllocationResultPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestAllocationResultPatch.java index 1d9e713b8c..ff95eaf68b 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestAllocationResultPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestAllocationResultPatch.java @@ -4,6 +4,7 @@ package com.pulumi.kubernetes.resource.v1alpha3.outputs; import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; import java.lang.String; import java.util.Objects; import java.util.Optional; @@ -11,6 +12,13 @@ @CustomType public final class DeviceRequestAllocationResultPatch { + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + private @Nullable Boolean adminAccess; /** * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. * @@ -37,6 +45,15 @@ public final class DeviceRequestAllocationResultPatch { private @Nullable String request; private DeviceRequestAllocationResultPatch() {} + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + public Optional adminAccess() { + return Optional.ofNullable(this.adminAccess); + } /** * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. * @@ -79,6 +96,7 @@ public static Builder builder(DeviceRequestAllocationResultPatch defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable Boolean adminAccess; private @Nullable String device; private @Nullable String driver; private @Nullable String pool; @@ -86,12 +104,19 @@ public static final class Builder { public Builder() {} public Builder(DeviceRequestAllocationResultPatch defaults) { Objects.requireNonNull(defaults); + this.adminAccess = defaults.adminAccess; this.device = defaults.device; this.driver = defaults.driver; this.pool = defaults.pool; this.request = defaults.request; } + @CustomType.Setter + public Builder adminAccess(@Nullable Boolean adminAccess) { + + this.adminAccess = adminAccess; + return this; + } @CustomType.Setter public Builder device(@Nullable String device) { @@ -118,6 +143,7 @@ public Builder request(@Nullable String request) { } public DeviceRequestAllocationResultPatch build() { final var _resultValue = new DeviceRequestAllocationResultPatch(); + _resultValue.adminAccess = adminAccess; _resultValue.device = device; _resultValue.driver = driver; _resultValue.pool = pool; diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestPatch.java index 1901ee9ba9..1d5d80debf 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/DeviceRequestPatch.java @@ -18,6 +18,8 @@ public final class DeviceRequestPatch { /** * @return 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. * + * 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. + * */ private @Nullable Boolean adminAccess; /** @@ -68,6 +70,8 @@ private DeviceRequestPatch() {} /** * @return 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. * + * 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. + * */ public Optional adminAccess() { return Optional.ofNullable(this.adminAccess); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/NetworkDeviceData.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/NetworkDeviceData.java new file mode 100644 index 0000000000..1d698c48e0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/NetworkDeviceData.java @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class NetworkDeviceData { + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + private @Nullable String hardwareAddress; + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + private @Nullable String interfaceName; + /** + * @return 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. + * + */ + private @Nullable List ips; + + private NetworkDeviceData() {} + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + public Optional hardwareAddress() { + return Optional.ofNullable(this.hardwareAddress); + } + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + public Optional interfaceName() { + return Optional.ofNullable(this.interfaceName); + } + /** + * @return 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. + * + */ + public List ips() { + return this.ips == null ? List.of() : this.ips; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(NetworkDeviceData defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String hardwareAddress; + private @Nullable String interfaceName; + private @Nullable List ips; + public Builder() {} + public Builder(NetworkDeviceData defaults) { + Objects.requireNonNull(defaults); + this.hardwareAddress = defaults.hardwareAddress; + this.interfaceName = defaults.interfaceName; + this.ips = defaults.ips; + } + + @CustomType.Setter + public Builder hardwareAddress(@Nullable String hardwareAddress) { + + this.hardwareAddress = hardwareAddress; + return this; + } + @CustomType.Setter + public Builder interfaceName(@Nullable String interfaceName) { + + this.interfaceName = interfaceName; + return this; + } + @CustomType.Setter + public Builder ips(@Nullable List ips) { + + this.ips = ips; + return this; + } + public Builder ips(String... ips) { + return ips(List.of(ips)); + } + public NetworkDeviceData build() { + final var _resultValue = new NetworkDeviceData(); + _resultValue.hardwareAddress = hardwareAddress; + _resultValue.interfaceName = interfaceName; + _resultValue.ips = ips; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/NetworkDeviceDataPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/NetworkDeviceDataPatch.java new file mode 100644 index 0000000000..7ddc03c79c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/NetworkDeviceDataPatch.java @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class NetworkDeviceDataPatch { + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + private @Nullable String hardwareAddress; + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + private @Nullable String interfaceName; + /** + * @return 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. + * + */ + private @Nullable List ips; + + private NetworkDeviceDataPatch() {} + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + public Optional hardwareAddress() { + return Optional.ofNullable(this.hardwareAddress); + } + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + public Optional interfaceName() { + return Optional.ofNullable(this.interfaceName); + } + /** + * @return 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. + * + */ + public List ips() { + return this.ips == null ? List.of() : this.ips; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(NetworkDeviceDataPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String hardwareAddress; + private @Nullable String interfaceName; + private @Nullable List ips; + public Builder() {} + public Builder(NetworkDeviceDataPatch defaults) { + Objects.requireNonNull(defaults); + this.hardwareAddress = defaults.hardwareAddress; + this.interfaceName = defaults.interfaceName; + this.ips = defaults.ips; + } + + @CustomType.Setter + public Builder hardwareAddress(@Nullable String hardwareAddress) { + + this.hardwareAddress = hardwareAddress; + return this; + } + @CustomType.Setter + public Builder interfaceName(@Nullable String interfaceName) { + + this.interfaceName = interfaceName; + return this; + } + @CustomType.Setter + public Builder ips(@Nullable List ips) { + + this.ips = ips; + return this; + } + public Builder ips(String... ips) { + return ips(List.of(ips)); + } + public NetworkDeviceDataPatch build() { + final var _resultValue = new NetworkDeviceDataPatch(); + _resultValue.hardwareAddress = hardwareAddress; + _resultValue.interfaceName = interfaceName; + _resultValue.ips = ips; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/OpaqueDeviceConfiguration.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/OpaqueDeviceConfiguration.java index 75e72d41f1..02be33f76b 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/OpaqueDeviceConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/OpaqueDeviceConfiguration.java @@ -23,6 +23,8 @@ public final class OpaqueDeviceConfiguration { /** * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * */ private JsonElement parameters; @@ -41,6 +43,8 @@ public String driver() { /** * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * */ public JsonElement parameters() { return this.parameters; diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/OpaqueDeviceConfigurationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/OpaqueDeviceConfigurationPatch.java index 4185c5cd02..a9e554b7ef 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/OpaqueDeviceConfigurationPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/OpaqueDeviceConfigurationPatch.java @@ -24,6 +24,8 @@ public final class OpaqueDeviceConfigurationPatch { /** * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * */ private @Nullable JsonElement parameters; @@ -42,6 +44,8 @@ public Optional driver() { /** * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. * + * The length of the raw data must be smaller or equal to 10 Ki. + * */ public Optional parameters() { return Optional.ofNullable(this.parameters); diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimStatus.java index 776b4ea26b..7b6eea0cb7 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimStatus.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimStatus.java @@ -4,6 +4,7 @@ package com.pulumi.kubernetes.resource.v1alpha3.outputs; import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1alpha3.outputs.AllocatedDeviceStatus; import com.pulumi.kubernetes.resource.v1alpha3.outputs.AllocationResult; import com.pulumi.kubernetes.resource.v1alpha3.outputs.ResourceClaimConsumerReference; import java.lang.Boolean; @@ -28,6 +29,11 @@ public final class ResourceClaimStatus { * */ private @Nullable Boolean deallocationRequested; + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + private @Nullable List devices; /** * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * @@ -59,6 +65,13 @@ public Optional allocation() { public Optional deallocationRequested() { return Optional.ofNullable(this.deallocationRequested); } + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + public List devices() { + return this.devices == null ? List.of() : this.devices; + } /** * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * @@ -84,12 +97,14 @@ public static Builder builder(ResourceClaimStatus defaults) { public static final class Builder { private @Nullable AllocationResult allocation; private @Nullable Boolean deallocationRequested; + private @Nullable List devices; private @Nullable List reservedFor; public Builder() {} public Builder(ResourceClaimStatus defaults) { Objects.requireNonNull(defaults); this.allocation = defaults.allocation; this.deallocationRequested = defaults.deallocationRequested; + this.devices = defaults.devices; this.reservedFor = defaults.reservedFor; } @@ -106,6 +121,15 @@ public Builder deallocationRequested(@Nullable Boolean deallocationRequested) { return this; } @CustomType.Setter + public Builder devices(@Nullable List devices) { + + this.devices = devices; + return this; + } + public Builder devices(AllocatedDeviceStatus... devices) { + return devices(List.of(devices)); + } + @CustomType.Setter public Builder reservedFor(@Nullable List reservedFor) { this.reservedFor = reservedFor; @@ -118,6 +142,7 @@ public ResourceClaimStatus build() { final var _resultValue = new ResourceClaimStatus(); _resultValue.allocation = allocation; _resultValue.deallocationRequested = deallocationRequested; + _resultValue.devices = devices; _resultValue.reservedFor = reservedFor; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimStatusPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimStatusPatch.java index bae858fee9..0851b43321 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimStatusPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimStatusPatch.java @@ -4,6 +4,7 @@ package com.pulumi.kubernetes.resource.v1alpha3.outputs; import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1alpha3.outputs.AllocatedDeviceStatusPatch; import com.pulumi.kubernetes.resource.v1alpha3.outputs.AllocationResultPatch; import com.pulumi.kubernetes.resource.v1alpha3.outputs.ResourceClaimConsumerReferencePatch; import java.lang.Boolean; @@ -28,6 +29,11 @@ public final class ResourceClaimStatusPatch { * */ private @Nullable Boolean deallocationRequested; + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + private @Nullable List devices; /** * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * @@ -59,6 +65,13 @@ public Optional allocation() { public Optional deallocationRequested() { return Optional.ofNullable(this.deallocationRequested); } + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + public List devices() { + return this.devices == null ? List.of() : this.devices; + } /** * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * @@ -84,12 +97,14 @@ public static Builder builder(ResourceClaimStatusPatch defaults) { public static final class Builder { private @Nullable AllocationResultPatch allocation; private @Nullable Boolean deallocationRequested; + private @Nullable List devices; private @Nullable List reservedFor; public Builder() {} public Builder(ResourceClaimStatusPatch defaults) { Objects.requireNonNull(defaults); this.allocation = defaults.allocation; this.deallocationRequested = defaults.deallocationRequested; + this.devices = defaults.devices; this.reservedFor = defaults.reservedFor; } @@ -106,6 +121,15 @@ public Builder deallocationRequested(@Nullable Boolean deallocationRequested) { return this; } @CustomType.Setter + public Builder devices(@Nullable List devices) { + + this.devices = devices; + return this; + } + public Builder devices(AllocatedDeviceStatusPatch... devices) { + return devices(List.of(devices)); + } + @CustomType.Setter public Builder reservedFor(@Nullable List reservedFor) { this.reservedFor = reservedFor; @@ -118,6 +142,7 @@ public ResourceClaimStatusPatch build() { final var _resultValue = new ResourceClaimStatusPatch(); _resultValue.allocation = allocation; _resultValue.deallocationRequested = deallocationRequested; + _resultValue.devices = devices; _resultValue.reservedFor = reservedFor; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimTemplateSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimTemplateSpec.java index 837f5f6dff..087ce5f5c5 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimTemplateSpec.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimTemplateSpec.java @@ -14,7 +14,7 @@ @CustomType public final class ResourceClaimTemplateSpec { /** - * @return ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * */ private @Nullable ObjectMeta metadata; @@ -26,7 +26,7 @@ public final class ResourceClaimTemplateSpec { private ResourceClaimTemplateSpec() {} /** - * @return ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * */ public Optional metadata() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimTemplateSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimTemplateSpecPatch.java index 6e1f3b2b88..d8c74c0077 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimTemplateSpecPatch.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceClaimTemplateSpecPatch.java @@ -13,7 +13,7 @@ @CustomType public final class ResourceClaimTemplateSpecPatch { /** - * @return ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * */ private @Nullable ObjectMetaPatch metadata; @@ -25,7 +25,7 @@ public final class ResourceClaimTemplateSpecPatch { private ResourceClaimTemplateSpecPatch() {} /** - * @return ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. * */ public Optional metadata() { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceSlice.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceSlice.java new file mode 100644 index 0000000000..7105a119ea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1alpha3/outputs/ResourceSlice.java @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1alpha3.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1alpha3.outputs.ResourceSliceSpec; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceSlice { + /** + * @return 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 + * + */ + private @Nullable String apiVersion; + /** + * @return 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 + * + */ + private @Nullable String kind; + /** + * @return Standard object metadata + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + private ResourceSliceSpec spec; + + private ResourceSlice() {} + /** + * @return 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 + * + */ + public Optional apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + /** + * @return 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 + * + */ + public Optional kind() { + return Optional.ofNullable(this.kind); + } + /** + * @return Standard object metadata + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public ResourceSliceSpec spec() { + return this.spec; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceSlice defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiVersion; + private @Nullable String kind; + private @Nullable ObjectMeta metadata; + private ResourceSliceSpec spec; + public Builder() {} + public Builder(ResourceSlice defaults) { + Objects.requireNonNull(defaults); + this.apiVersion = defaults.apiVersion; + this.kind = defaults.kind; + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder apiVersion(@Nullable String apiVersion) { + + this.apiVersion = apiVersion; + return this; + } + @CustomType.Setter + public Builder kind(@Nullable String kind) { + + this.kind = kind; + return this; + } + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(ResourceSliceSpec spec) { + if (spec == null) { + throw new MissingRequiredPropertyException("ResourceSlice", "spec"); + } + this.spec = spec; + return this; + } + public ResourceSlice build() { + final var _resultValue = new ResourceSlice(); + _resultValue.apiVersion = apiVersion; + _resultValue.kind = kind; + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClass.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClass.java new file mode 100644 index 0000000000..b2977b5b4f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClass.java @@ -0,0 +1,153 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.DeviceClassArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClassSpec; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * 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. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:DeviceClass") +public class DeviceClass extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard object metadata + * + */ + @Export(name="metadata", refs={ObjectMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata + * + */ + public Output metadata() { + return this.metadata; + } + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Export(name="spec", refs={DeviceClassSpec.class}, tree="[0]") + private Output spec; + + /** + * @return Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output spec() { + return this.spec; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DeviceClass(String name) { + this(name, DeviceClassArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DeviceClass(String name, DeviceClassArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public DeviceClass(String name, DeviceClassArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:DeviceClass", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private DeviceClass(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:DeviceClass", name, null, makeResourceOptions(options, id)); + } + + private static DeviceClassArgs makeArgs(DeviceClassArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? DeviceClassArgs.builder() : DeviceClassArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("DeviceClass") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:DeviceClass").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static DeviceClass get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DeviceClass(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassArgs.java new file mode 100644 index 0000000000..c4e8325d1d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassArgs.java @@ -0,0 +1,219 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClassSpecArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DeviceClassArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClassArgs Empty = new DeviceClassArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output spec() { + return this.spec; + } + + private DeviceClassArgs() {} + + private DeviceClassArgs(DeviceClassArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClassArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClassArgs $; + + public Builder() { + $ = new DeviceClassArgs(); + } + + public Builder(DeviceClassArgs defaults) { + $ = new DeviceClassArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(DeviceClassSpecArgs spec) { + return spec(Output.of(spec)); + } + + public DeviceClassArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("DeviceClassArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassList.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassList.java new file mode 100644 index 0000000000..7e3b02898e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassList.java @@ -0,0 +1,139 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ListMeta; +import com.pulumi.kubernetes.resource.v1beta1.DeviceClassListArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClass; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * DeviceClassList is a collection of classes. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:DeviceClassList") +public class DeviceClassList extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * Items is the list of resource classes. + * + */ + @Export(name="items", refs={List.class,DeviceClass.class}, tree="[0,1]") + private Output> items; + + /** + * @return Items is the list of resource classes. + * + */ + public Output> items() { + return this.items; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard list metadata + * + */ + @Export(name="metadata", refs={ListMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard list metadata + * + */ + public Output metadata() { + return this.metadata; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DeviceClassList(String name) { + this(name, DeviceClassListArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DeviceClassList(String name, DeviceClassListArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public DeviceClassList(String name, DeviceClassListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:DeviceClassList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private DeviceClassList(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:DeviceClassList", name, null, makeResourceOptions(options, id)); + } + + private static DeviceClassListArgs makeArgs(DeviceClassListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? DeviceClassListArgs.builder() : DeviceClassListArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("DeviceClassList") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static DeviceClassList get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DeviceClassList(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassListArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassListArgs.java new file mode 100644 index 0000000000..018e9d32cf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassListArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ListMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClassArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DeviceClassListArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClassListArgs Empty = new DeviceClassListArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * Items is the list of resource classes. + * + */ + @Import(name="items", required=true) + private Output> items; + + /** + * @return Items is the list of resource classes. + * + */ + public Output> items() { + return this.items; + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard list metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard list metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + private DeviceClassListArgs() {} + + private DeviceClassListArgs(DeviceClassListArgs $) { + this.apiVersion = $.apiVersion; + this.items = $.items; + this.kind = $.kind; + this.metadata = $.metadata; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClassListArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClassListArgs $; + + public Builder() { + $ = new DeviceClassListArgs(); + } + + public Builder(DeviceClassListArgs defaults) { + $ = new DeviceClassListArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param items Items is the list of resource classes. + * + * @return builder + * + */ + public Builder items(Output> items) { + $.items = items; + return this; + } + + /** + * @param items Items is the list of resource classes. + * + * @return builder + * + */ + public Builder items(List items) { + return items(Output.of(items)); + } + + /** + * @param items Items is the list of resource classes. + * + * @return builder + * + */ + public Builder items(DeviceClassArgs... items) { + return items(List.of(items)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(ListMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + public DeviceClassListArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + if ($.items == null) { + throw new MissingRequiredPropertyException("DeviceClassListArgs", "items"); + } + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassPatch.java new file mode 100644 index 0000000000..15a44f0d6b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassPatch.java @@ -0,0 +1,160 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; +import com.pulumi.kubernetes.resource.v1beta1.DeviceClassPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClassSpecPatch; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * 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. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch") +public class DeviceClassPatch extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output> apiVersion() { + return Codegen.optional(this.apiVersion); + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output> kind() { + return Codegen.optional(this.kind); + } + /** + * Standard object metadata + * + */ + @Export(name="metadata", refs={ObjectMetaPatch.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata + * + */ + public Output> metadata() { + return Codegen.optional(this.metadata); + } + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Export(name="spec", refs={DeviceClassSpecPatch.class}, tree="[0]") + private Output spec; + + /** + * @return Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output> spec() { + return Codegen.optional(this.spec); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DeviceClassPatch(String name) { + this(name, DeviceClassPatchArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DeviceClassPatch(String name, @Nullable DeviceClassPatchArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public DeviceClassPatch(String name, @Nullable DeviceClassPatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private DeviceClassPatch(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch", name, null, makeResourceOptions(options, id)); + } + + private static DeviceClassPatchArgs makeArgs(@Nullable DeviceClassPatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? DeviceClassPatchArgs.builder() : DeviceClassPatchArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("DeviceClass") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:DeviceClassPatch").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static DeviceClassPatch get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DeviceClassPatch(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassPatchArgs.java new file mode 100644 index 0000000000..781393ff8a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/DeviceClassPatchArgs.java @@ -0,0 +1,215 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClassSpecPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DeviceClassPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClassPatchArgs Empty = new DeviceClassPatchArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private DeviceClassPatchArgs() {} + + private DeviceClassPatchArgs(DeviceClassPatchArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClassPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClassPatchArgs $; + + public Builder() { + $ = new DeviceClassPatchArgs(); + } + + public Builder(DeviceClassPatchArgs defaults) { + $ = new DeviceClassPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaPatchArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(DeviceClassSpecPatchArgs spec) { + return spec(Output.of(spec)); + } + + public DeviceClassPatchArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaim.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaim.java new file mode 100644 index 0000000000..16ecfd4299 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaim.java @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.ResourceClaimArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimSpec; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimStatus; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceClaim") +public class ResourceClaim extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard object metadata + * + */ + @Export(name="metadata", refs={ObjectMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata + * + */ + public Output metadata() { + return this.metadata; + } + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + @Export(name="spec", refs={ResourceClaimSpec.class}, tree="[0]") + private Output spec; + + /** + * @return Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + public Output spec() { + return this.spec; + } + /** + * Status describes whether the claim is ready to use and what has been allocated. + * + */ + @Export(name="status", refs={ResourceClaimStatus.class}, tree="[0]") + private Output status; + + /** + * @return Status describes whether the claim is ready to use and what has been allocated. + * + */ + public Output> status() { + return Codegen.optional(this.status); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceClaim(String name) { + this(name, ResourceClaimArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceClaim(String name, ResourceClaimArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceClaim(String name, ResourceClaimArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceClaim(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaim", name, null, makeResourceOptions(options, id)); + } + + private static ResourceClaimArgs makeArgs(ResourceClaimArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceClaimArgs.builder() : ResourceClaimArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceClaim") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaim").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaim").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaim").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceClaim get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceClaim(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimArgs.java new file mode 100644 index 0000000000..7e997a337f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimArgs.java @@ -0,0 +1,203 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimSpecArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceClaimArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimArgs Empty = new ResourceClaimArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + public Output spec() { + return this.spec; + } + + private ResourceClaimArgs() {} + + private ResourceClaimArgs(ResourceClaimArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimArgs $; + + public Builder() { + $ = new ResourceClaimArgs(); + } + + public Builder(ResourceClaimArgs defaults) { + $ = new ResourceClaimArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Spec describes what is being requested and how to configure it. The spec is immutable. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Spec describes what is being requested and how to configure it. The spec is immutable. + * + * @return builder + * + */ + public Builder spec(ResourceClaimSpecArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceClaimArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("ResourceClaimArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimList.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimList.java new file mode 100644 index 0000000000..94b37a27a6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimList.java @@ -0,0 +1,139 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ListMeta; +import com.pulumi.kubernetes.resource.v1beta1.ResourceClaimListArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaim; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * ResourceClaimList is a collection of claims. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceClaimList") +public class ResourceClaimList extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * Items is the list of resource claims. + * + */ + @Export(name="items", refs={List.class,ResourceClaim.class}, tree="[0,1]") + private Output> items; + + /** + * @return Items is the list of resource claims. + * + */ + public Output> items() { + return this.items; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard list metadata + * + */ + @Export(name="metadata", refs={ListMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard list metadata + * + */ + public Output metadata() { + return this.metadata; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceClaimList(String name) { + this(name, ResourceClaimListArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceClaimList(String name, ResourceClaimListArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceClaimList(String name, ResourceClaimListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceClaimList(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimList", name, null, makeResourceOptions(options, id)); + } + + private static ResourceClaimListArgs makeArgs(ResourceClaimListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceClaimListArgs.builder() : ResourceClaimListArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceClaimList") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceClaimList get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceClaimList(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimListArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimListArgs.java new file mode 100644 index 0000000000..f3c223ecbe --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimListArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ListMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceClaimListArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimListArgs Empty = new ResourceClaimListArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * Items is the list of resource claims. + * + */ + @Import(name="items", required=true) + private Output> items; + + /** + * @return Items is the list of resource claims. + * + */ + public Output> items() { + return this.items; + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard list metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard list metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + private ResourceClaimListArgs() {} + + private ResourceClaimListArgs(ResourceClaimListArgs $) { + this.apiVersion = $.apiVersion; + this.items = $.items; + this.kind = $.kind; + this.metadata = $.metadata; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimListArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimListArgs $; + + public Builder() { + $ = new ResourceClaimListArgs(); + } + + public Builder(ResourceClaimListArgs defaults) { + $ = new ResourceClaimListArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param items Items is the list of resource claims. + * + * @return builder + * + */ + public Builder items(Output> items) { + $.items = items; + return this; + } + + /** + * @param items Items is the list of resource claims. + * + * @return builder + * + */ + public Builder items(List items) { + return items(Output.of(items)); + } + + /** + * @param items Items is the list of resource claims. + * + * @return builder + * + */ + public Builder items(ResourceClaimArgs... items) { + return items(List.of(items)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(ListMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + public ResourceClaimListArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + if ($.items == null) { + throw new MissingRequiredPropertyException("ResourceClaimListArgs", "items"); + } + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimPatch.java new file mode 100644 index 0000000000..109d4cb885 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimPatch.java @@ -0,0 +1,169 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; +import com.pulumi.kubernetes.resource.v1beta1.ResourceClaimPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimSpecPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimStatusPatch; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch") +public class ResourceClaimPatch extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output> apiVersion() { + return Codegen.optional(this.apiVersion); + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output> kind() { + return Codegen.optional(this.kind); + } + /** + * Standard object metadata + * + */ + @Export(name="metadata", refs={ObjectMetaPatch.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata + * + */ + public Output> metadata() { + return Codegen.optional(this.metadata); + } + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + @Export(name="spec", refs={ResourceClaimSpecPatch.class}, tree="[0]") + private Output spec; + + /** + * @return Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + public Output> spec() { + return Codegen.optional(this.spec); + } + /** + * Status describes whether the claim is ready to use and what has been allocated. + * + */ + @Export(name="status", refs={ResourceClaimStatusPatch.class}, tree="[0]") + private Output status; + + /** + * @return Status describes whether the claim is ready to use and what has been allocated. + * + */ + public Output> status() { + return Codegen.optional(this.status); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceClaimPatch(String name) { + this(name, ResourceClaimPatchArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceClaimPatch(String name, @Nullable ResourceClaimPatchArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceClaimPatch(String name, @Nullable ResourceClaimPatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceClaimPatch(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch", name, null, makeResourceOptions(options, id)); + } + + private static ResourceClaimPatchArgs makeArgs(@Nullable ResourceClaimPatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceClaimPatchArgs.builder() : ResourceClaimPatchArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceClaim") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceClaimPatch get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceClaimPatch(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimPatchArgs.java new file mode 100644 index 0000000000..97033f679e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimPatchArgs.java @@ -0,0 +1,199 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimSpecPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceClaimPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimPatchArgs Empty = new ResourceClaimPatchArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private ResourceClaimPatchArgs() {} + + private ResourceClaimPatchArgs(ResourceClaimPatchArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimPatchArgs $; + + public Builder() { + $ = new ResourceClaimPatchArgs(); + } + + public Builder(ResourceClaimPatchArgs defaults) { + $ = new ResourceClaimPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaPatchArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Spec describes what is being requested and how to configure it. The spec is immutable. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Spec describes what is being requested and how to configure it. The spec is immutable. + * + * @return builder + * + */ + public Builder spec(ResourceClaimSpecPatchArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceClaimPatchArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplate.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplate.java new file mode 100644 index 0000000000..2e8d5605a4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplate.java @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.ResourceClaimTemplateArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimTemplateSpec; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * ResourceClaimTemplate is used to produce ResourceClaim objects. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate") +public class ResourceClaimTemplate extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard object metadata + * + */ + @Export(name="metadata", refs={ObjectMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata + * + */ + public Output metadata() { + return this.metadata; + } + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + @Export(name="spec", refs={ResourceClaimTemplateSpec.class}, tree="[0]") + private Output spec; + + /** + * @return Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + public Output spec() { + return this.spec; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceClaimTemplate(String name) { + this(name, ResourceClaimTemplateArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceClaimTemplate(String name, ResourceClaimTemplateArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceClaimTemplate(String name, ResourceClaimTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceClaimTemplate(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate", name, null, makeResourceOptions(options, id)); + } + + private static ResourceClaimTemplateArgs makeArgs(ResourceClaimTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceClaimTemplateArgs.builder() : ResourceClaimTemplateArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceClaimTemplate") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceClaimTemplate get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceClaimTemplate(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateArgs.java new file mode 100644 index 0000000000..88bdae2e3f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateArgs.java @@ -0,0 +1,211 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimTemplateSpecArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceClaimTemplateArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimTemplateArgs Empty = new ResourceClaimTemplateArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + public Output spec() { + return this.spec; + } + + private ResourceClaimTemplateArgs() {} + + private ResourceClaimTemplateArgs(ResourceClaimTemplateArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimTemplateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimTemplateArgs $; + + public Builder() { + $ = new ResourceClaimTemplateArgs(); + } + + public Builder(ResourceClaimTemplateArgs defaults) { + $ = new ResourceClaimTemplateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + * @return builder + * + */ + public Builder spec(ResourceClaimTemplateSpecArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceClaimTemplateArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("ResourceClaimTemplateArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateList.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateList.java new file mode 100644 index 0000000000..0c6c89396d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateList.java @@ -0,0 +1,139 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ListMeta; +import com.pulumi.kubernetes.resource.v1beta1.ResourceClaimTemplateListArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimTemplate; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * ResourceClaimTemplateList is a collection of claim templates. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList") +public class ResourceClaimTemplateList extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * Items is the list of resource claim templates. + * + */ + @Export(name="items", refs={List.class,ResourceClaimTemplate.class}, tree="[0,1]") + private Output> items; + + /** + * @return Items is the list of resource claim templates. + * + */ + public Output> items() { + return this.items; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard list metadata + * + */ + @Export(name="metadata", refs={ListMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard list metadata + * + */ + public Output metadata() { + return this.metadata; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceClaimTemplateList(String name) { + this(name, ResourceClaimTemplateListArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceClaimTemplateList(String name, ResourceClaimTemplateListArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceClaimTemplateList(String name, ResourceClaimTemplateListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceClaimTemplateList(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList", name, null, makeResourceOptions(options, id)); + } + + private static ResourceClaimTemplateListArgs makeArgs(ResourceClaimTemplateListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceClaimTemplateListArgs.builder() : ResourceClaimTemplateListArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceClaimTemplateList") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceClaimTemplateList get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceClaimTemplateList(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateListArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateListArgs.java new file mode 100644 index 0000000000..017c18a296 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplateListArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ListMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimTemplateArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceClaimTemplateListArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimTemplateListArgs Empty = new ResourceClaimTemplateListArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * Items is the list of resource claim templates. + * + */ + @Import(name="items", required=true) + private Output> items; + + /** + * @return Items is the list of resource claim templates. + * + */ + public Output> items() { + return this.items; + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard list metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard list metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + private ResourceClaimTemplateListArgs() {} + + private ResourceClaimTemplateListArgs(ResourceClaimTemplateListArgs $) { + this.apiVersion = $.apiVersion; + this.items = $.items; + this.kind = $.kind; + this.metadata = $.metadata; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimTemplateListArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimTemplateListArgs $; + + public Builder() { + $ = new ResourceClaimTemplateListArgs(); + } + + public Builder(ResourceClaimTemplateListArgs defaults) { + $ = new ResourceClaimTemplateListArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param items Items is the list of resource claim templates. + * + * @return builder + * + */ + public Builder items(Output> items) { + $.items = items; + return this; + } + + /** + * @param items Items is the list of resource claim templates. + * + * @return builder + * + */ + public Builder items(List items) { + return items(Output.of(items)); + } + + /** + * @param items Items is the list of resource claim templates. + * + * @return builder + * + */ + public Builder items(ResourceClaimTemplateArgs... items) { + return items(List.of(items)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(ListMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + public ResourceClaimTemplateListArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + if ($.items == null) { + throw new MissingRequiredPropertyException("ResourceClaimTemplateListArgs", "items"); + } + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.java new file mode 100644 index 0000000000..7ca0beb8ed --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.java @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; +import com.pulumi.kubernetes.resource.v1beta1.ResourceClaimTemplatePatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimTemplateSpecPatch; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * ResourceClaimTemplate is used to produce ResourceClaim objects. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch") +public class ResourceClaimTemplatePatch extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output> apiVersion() { + return Codegen.optional(this.apiVersion); + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output> kind() { + return Codegen.optional(this.kind); + } + /** + * Standard object metadata + * + */ + @Export(name="metadata", refs={ObjectMetaPatch.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata + * + */ + public Output> metadata() { + return Codegen.optional(this.metadata); + } + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + @Export(name="spec", refs={ResourceClaimTemplateSpecPatch.class}, tree="[0]") + private Output spec; + + /** + * @return Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + public Output> spec() { + return Codegen.optional(this.spec); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceClaimTemplatePatch(String name) { + this(name, ResourceClaimTemplatePatchArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceClaimTemplatePatch(String name, @Nullable ResourceClaimTemplatePatchArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceClaimTemplatePatch(String name, @Nullable ResourceClaimTemplatePatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceClaimTemplatePatch(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch", name, null, makeResourceOptions(options, id)); + } + + private static ResourceClaimTemplatePatchArgs makeArgs(@Nullable ResourceClaimTemplatePatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceClaimTemplatePatchArgs.builder() : ResourceClaimTemplatePatchArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceClaimTemplate") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceClaimTemplatePatch get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceClaimTemplatePatch(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplatePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplatePatchArgs.java new file mode 100644 index 0000000000..3681f08868 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceClaimTemplatePatchArgs.java @@ -0,0 +1,207 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimTemplateSpecPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceClaimTemplatePatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimTemplatePatchArgs Empty = new ResourceClaimTemplatePatchArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private ResourceClaimTemplatePatchArgs() {} + + private ResourceClaimTemplatePatchArgs(ResourceClaimTemplatePatchArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimTemplatePatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimTemplatePatchArgs $; + + public Builder() { + $ = new ResourceClaimTemplatePatchArgs(); + } + + public Builder(ResourceClaimTemplatePatchArgs defaults) { + $ = new ResourceClaimTemplatePatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaPatchArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + * @return builder + * + */ + public Builder spec(ResourceClaimTemplateSpecPatchArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceClaimTemplatePatchArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlice.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlice.java new file mode 100644 index 0000000000..dc4b959c9d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlice.java @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.ResourceSliceArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceSliceSpec; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceSlice") +public class ResourceSlice extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard object metadata + * + */ + @Export(name="metadata", refs={ObjectMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata + * + */ + public Output metadata() { + return this.metadata; + } + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Export(name="spec", refs={ResourceSliceSpec.class}, tree="[0]") + private Output spec; + + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output spec() { + return this.spec; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceSlice(String name) { + this(name, ResourceSliceArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceSlice(String name, ResourceSliceArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceSlice(String name, ResourceSliceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceSlice(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceSlice", name, null, makeResourceOptions(options, id)); + } + + private static ResourceSliceArgs makeArgs(ResourceSliceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceSliceArgs.builder() : ResourceSliceArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceSlice") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceSlice").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceSlice").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceSlice get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceSlice(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceArgs.java new file mode 100644 index 0000000000..b0d8d3a4a3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceArgs.java @@ -0,0 +1,211 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceSliceSpecArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceSliceArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceSliceArgs Empty = new ResourceSliceArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output spec() { + return this.spec; + } + + private ResourceSliceArgs() {} + + private ResourceSliceArgs(ResourceSliceArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceSliceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceSliceArgs $; + + public Builder() { + $ = new ResourceSliceArgs(); + } + + public Builder(ResourceSliceArgs defaults) { + $ = new ResourceSliceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(ResourceSliceSpecArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceSliceArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("ResourceSliceArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceList.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceList.java new file mode 100644 index 0000000000..d8b825bbf1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceList.java @@ -0,0 +1,139 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ListMeta; +import com.pulumi.kubernetes.resource.v1beta1.ResourceSliceListArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceSlice; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * ResourceSliceList is a collection of ResourceSlices. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceSliceList") +public class ResourceSliceList extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output apiVersion() { + return this.apiVersion; + } + /** + * Items is the list of resource ResourceSlices. + * + */ + @Export(name="items", refs={List.class,ResourceSlice.class}, tree="[0,1]") + private Output> items; + + /** + * @return Items is the list of resource ResourceSlices. + * + */ + public Output> items() { + return this.items; + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output kind() { + return this.kind; + } + /** + * Standard list metadata + * + */ + @Export(name="metadata", refs={ListMeta.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard list metadata + * + */ + public Output metadata() { + return this.metadata; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceSliceList(String name) { + this(name, ResourceSliceListArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceSliceList(String name, ResourceSliceListArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceSliceList(String name, ResourceSliceListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceSliceList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceSliceList(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceSliceList", name, null, makeResourceOptions(options, id)); + } + + private static ResourceSliceListArgs makeArgs(ResourceSliceListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceSliceListArgs.builder() : ResourceSliceListArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceSliceList") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceSliceList get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceSliceList(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceListArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceListArgs.java new file mode 100644 index 0000000000..9d698c586e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSliceListArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ListMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceSliceArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceSliceListArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceSliceListArgs Empty = new ResourceSliceListArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * Items is the list of resource ResourceSlices. + * + */ + @Import(name="items", required=true) + private Output> items; + + /** + * @return Items is the list of resource ResourceSlices. + * + */ + public Output> items() { + return this.items; + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard list metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard list metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + private ResourceSliceListArgs() {} + + private ResourceSliceListArgs(ResourceSliceListArgs $) { + this.apiVersion = $.apiVersion; + this.items = $.items; + this.kind = $.kind; + this.metadata = $.metadata; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceSliceListArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceSliceListArgs $; + + public Builder() { + $ = new ResourceSliceListArgs(); + } + + public Builder(ResourceSliceListArgs defaults) { + $ = new ResourceSliceListArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param items Items is the list of resource ResourceSlices. + * + * @return builder + * + */ + public Builder items(Output> items) { + $.items = items; + return this; + } + + /** + * @param items Items is the list of resource ResourceSlices. + * + * @return builder + * + */ + public Builder items(List items) { + return items(Output.of(items)); + } + + /** + * @param items Items is the list of resource ResourceSlices. + * + * @return builder + * + */ + public Builder items(ResourceSliceArgs... items) { + return items(List.of(items)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard list metadata + * + * @return builder + * + */ + public Builder metadata(ListMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + public ResourceSliceListArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + if ($.items == null) { + throw new MissingRequiredPropertyException("ResourceSliceListArgs", "items"); + } + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlicePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlicePatch.java new file mode 100644 index 0000000000..49ba74fd98 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlicePatch.java @@ -0,0 +1,165 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Alias; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.Utilities; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; +import com.pulumi.kubernetes.resource.v1beta1.ResourceSlicePatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceSliceSpecPatch; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +@ResourceType(type="kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch") +public class ResourceSlicePatch extends com.pulumi.resources.CustomResource { + /** + * 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 + * + */ + @Export(name="apiVersion", refs={String.class}, tree="[0]") + private Output apiVersion; + + /** + * @return 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 + * + */ + public Output> apiVersion() { + return Codegen.optional(this.apiVersion); + } + /** + * 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 + * + */ + @Export(name="kind", refs={String.class}, tree="[0]") + private Output kind; + + /** + * @return 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 + * + */ + public Output> kind() { + return Codegen.optional(this.kind); + } + /** + * Standard object metadata + * + */ + @Export(name="metadata", refs={ObjectMetaPatch.class}, tree="[0]") + private Output metadata; + + /** + * @return Standard object metadata + * + */ + public Output> metadata() { + return Codegen.optional(this.metadata); + } + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Export(name="spec", refs={ResourceSliceSpecPatch.class}, tree="[0]") + private Output spec; + + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output> spec() { + return Codegen.optional(this.spec); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceSlicePatch(String name) { + this(name, ResourceSlicePatchArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceSlicePatch(String name, @Nullable ResourceSlicePatchArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResourceSlicePatch(String name, @Nullable ResourceSlicePatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResourceSlicePatch(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch", name, null, makeResourceOptions(options, id)); + } + + private static ResourceSlicePatchArgs makeArgs(@Nullable ResourceSlicePatchArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + var builder = args == null ? ResourceSlicePatchArgs.builder() : ResourceSlicePatchArgs.builder(args); + return builder + .apiVersion("resource.k8s.io/v1beta1") + .kind("ResourceSlice") + .build(); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .aliases(List.of( + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch").build()), + Output.of(Alias.builder().type("kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch").build()) + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceSlicePatch get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceSlicePatch(name, id, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlicePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlicePatchArgs.java new file mode 100644 index 0000000000..acdeddfc19 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/ResourceSlicePatchArgs.java @@ -0,0 +1,207 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceSliceSpecPatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceSlicePatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceSlicePatchArgs Empty = new ResourceSlicePatchArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private ResourceSlicePatchArgs() {} + + private ResourceSlicePatchArgs(ResourceSlicePatchArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceSlicePatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceSlicePatchArgs $; + + public Builder() { + $ = new ResourceSlicePatchArgs(); + } + + public Builder(ResourceSlicePatchArgs defaults) { + $ = new ResourceSlicePatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaPatchArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(ResourceSliceSpecPatchArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceSlicePatchArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/AllocatedDeviceStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/AllocatedDeviceStatusArgs.java new file mode 100644 index 0000000000..a8db49221e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/AllocatedDeviceStatusArgs.java @@ -0,0 +1,320 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ConditionArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.NetworkDeviceDataArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + * + */ +public final class AllocatedDeviceStatusArgs extends com.pulumi.resources.ResourceArgs { + + public static final AllocatedDeviceStatusArgs Empty = new AllocatedDeviceStatusArgs(); + + /** + * 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. + * + */ + @Import(name="conditions") + private @Nullable Output> conditions; + + /** + * @return 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. + * + */ + public Optional>> conditions() { + return Optional.ofNullable(this.conditions); + } + + /** + * Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + @Import(name="data") + private @Nullable Output data; + + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Optional> data() { + return Optional.ofNullable(this.data); + } + + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + @Import(name="device", required=true) + private Output device; + + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public Output device() { + return this.device; + } + + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + @Import(name="driver", required=true) + private Output driver; + + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Output driver() { + return this.driver; + } + + /** + * NetworkData contains network-related information specific to the device. + * + */ + @Import(name="networkData") + private @Nullable Output networkData; + + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + public Optional> networkData() { + return Optional.ofNullable(this.networkData); + } + + /** + * This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + @Import(name="pool", required=true) + private Output pool; + + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public Output pool() { + return this.pool; + } + + private AllocatedDeviceStatusArgs() {} + + private AllocatedDeviceStatusArgs(AllocatedDeviceStatusArgs $) { + this.conditions = $.conditions; + this.data = $.data; + this.device = $.device; + this.driver = $.driver; + this.networkData = $.networkData; + this.pool = $.pool; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AllocatedDeviceStatusArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AllocatedDeviceStatusArgs $; + + public Builder() { + $ = new AllocatedDeviceStatusArgs(); + } + + public Builder(AllocatedDeviceStatusArgs defaults) { + $ = new AllocatedDeviceStatusArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder conditions(@Nullable Output> conditions) { + $.conditions = conditions; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder conditions(List conditions) { + return conditions(Output.of(conditions)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder conditions(ConditionArgs... conditions) { + return conditions(List.of(conditions)); + } + + /** + * @param data Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + * @return builder + * + */ + public Builder data(@Nullable Output data) { + $.data = data; + return this; + } + + /** + * @param data Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + * @return builder + * + */ + public Builder data(JsonElement data) { + return data(Output.of(data)); + } + + /** + * @param device Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder device(Output device) { + $.device = device; + return this; + } + + /** + * @param device Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder device(String device) { + return device(Output.of(device)); + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(Output driver) { + $.driver = driver; + return this; + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(String driver) { + return driver(Output.of(driver)); + } + + /** + * @param networkData NetworkData contains network-related information specific to the device. + * + * @return builder + * + */ + public Builder networkData(@Nullable Output networkData) { + $.networkData = networkData; + return this; + } + + /** + * @param networkData NetworkData contains network-related information specific to the device. + * + * @return builder + * + */ + public Builder networkData(NetworkDeviceDataArgs networkData) { + return networkData(Output.of(networkData)); + } + + /** + * @param pool This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + * @return builder + * + */ + public Builder pool(Output pool) { + $.pool = pool; + return this; + } + + /** + * @param pool This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + * @return builder + * + */ + public Builder pool(String pool) { + return pool(Output.of(pool)); + } + + public AllocatedDeviceStatusArgs build() { + if ($.device == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatusArgs", "device"); + } + if ($.driver == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatusArgs", "driver"); + } + if ($.pool == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatusArgs", "pool"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/AllocationResultArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/AllocationResultArgs.java new file mode 100644 index 0000000000..04064c73e9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/AllocationResultArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.core.v1.inputs.NodeSelectorArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceAllocationResultArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * AllocationResult contains attributes of an allocated resource. + * + */ +public final class AllocationResultArgs extends com.pulumi.resources.ResourceArgs { + + public static final AllocationResultArgs Empty = new AllocationResultArgs(); + + /** + * Devices is the result of allocating devices. + * + */ + @Import(name="devices") + private @Nullable Output devices; + + /** + * @return Devices is the result of allocating devices. + * + */ + public Optional> devices() { + return Optional.ofNullable(this.devices); + } + + /** + * NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + * + */ + @Import(name="nodeSelector") + private @Nullable Output nodeSelector; + + /** + * @return NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + * + */ + public Optional> nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + private AllocationResultArgs() {} + + private AllocationResultArgs(AllocationResultArgs $) { + this.devices = $.devices; + this.nodeSelector = $.nodeSelector; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AllocationResultArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AllocationResultArgs $; + + public Builder() { + $ = new AllocationResultArgs(); + } + + public Builder(AllocationResultArgs defaults) { + $ = new AllocationResultArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param devices Devices is the result of allocating devices. + * + * @return builder + * + */ + public Builder devices(@Nullable Output devices) { + $.devices = devices; + return this; + } + + /** + * @param devices Devices is the result of allocating devices. + * + * @return builder + * + */ + public Builder devices(DeviceAllocationResultArgs devices) { + return devices(Output.of(devices)); + } + + /** + * @param nodeSelector NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + * + * @return builder + * + */ + public Builder nodeSelector(@Nullable Output nodeSelector) { + $.nodeSelector = nodeSelector; + return this; + } + + /** + * @param nodeSelector NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + * + * @return builder + * + */ + public Builder nodeSelector(NodeSelectorArgs nodeSelector) { + return nodeSelector(Output.of(nodeSelector)); + } + + public AllocationResultArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/BasicDeviceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/BasicDeviceArgs.java new file mode 100644 index 0000000000..ce35bba404 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/BasicDeviceArgs.java @@ -0,0 +1,143 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceAttributeArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceCapacityArgs; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * BasicDevice defines one device instance. + * + */ +public final class BasicDeviceArgs extends com.pulumi.resources.ResourceArgs { + + public static final BasicDeviceArgs Empty = new BasicDeviceArgs(); + + /** + * Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + @Import(name="attributes") + private @Nullable Output> attributes; + + /** + * @return Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + public Optional>> attributes() { + return Optional.ofNullable(this.attributes); + } + + /** + * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + @Import(name="capacity") + private @Nullable Output> capacity; + + /** + * @return Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + public Optional>> capacity() { + return Optional.ofNullable(this.capacity); + } + + private BasicDeviceArgs() {} + + private BasicDeviceArgs(BasicDeviceArgs $) { + this.attributes = $.attributes; + this.capacity = $.capacity; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BasicDeviceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BasicDeviceArgs $; + + public Builder() { + $ = new BasicDeviceArgs(); + } + + public Builder(BasicDeviceArgs defaults) { + $ = new BasicDeviceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param attributes Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + * @return builder + * + */ + public Builder attributes(@Nullable Output> attributes) { + $.attributes = attributes; + return this; + } + + /** + * @param attributes Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + * @return builder + * + */ + public Builder attributes(Map attributes) { + return attributes(Output.of(attributes)); + } + + /** + * @param capacity Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + * @return builder + * + */ + public Builder capacity(@Nullable Output> capacity) { + $.capacity = capacity; + return this; + } + + /** + * @param capacity Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + * @return builder + * + */ + public Builder capacity(Map capacity) { + return capacity(Output.of(capacity)); + } + + public BasicDeviceArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/BasicDevicePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/BasicDevicePatchArgs.java new file mode 100644 index 0000000000..d4b4d96fa9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/BasicDevicePatchArgs.java @@ -0,0 +1,143 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceAttributeArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceCapacityArgs; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * BasicDevice defines one device instance. + * + */ +public final class BasicDevicePatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final BasicDevicePatchArgs Empty = new BasicDevicePatchArgs(); + + /** + * Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + @Import(name="attributes") + private @Nullable Output> attributes; + + /** + * @return Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + public Optional>> attributes() { + return Optional.ofNullable(this.attributes); + } + + /** + * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + @Import(name="capacity") + private @Nullable Output> capacity; + + /** + * @return Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + public Optional>> capacity() { + return Optional.ofNullable(this.capacity); + } + + private BasicDevicePatchArgs() {} + + private BasicDevicePatchArgs(BasicDevicePatchArgs $) { + this.attributes = $.attributes; + this.capacity = $.capacity; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BasicDevicePatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BasicDevicePatchArgs $; + + public Builder() { + $ = new BasicDevicePatchArgs(); + } + + public Builder(BasicDevicePatchArgs defaults) { + $ = new BasicDevicePatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param attributes Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + * @return builder + * + */ + public Builder attributes(@Nullable Output> attributes) { + $.attributes = attributes; + return this; + } + + /** + * @param attributes Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + * @return builder + * + */ + public Builder attributes(Map attributes) { + return attributes(Output.of(attributes)); + } + + /** + * @param capacity Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + * @return builder + * + */ + public Builder capacity(@Nullable Output> capacity) { + $.capacity = capacity; + return this; + } + + /** + * @param capacity Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + * @return builder + * + */ + public Builder capacity(Map capacity) { + return capacity(Output.of(capacity)); + } + + public BasicDevicePatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/CELDeviceSelectorArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/CELDeviceSelectorArgs.java new file mode 100644 index 0000000000..ef308db3d4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/CELDeviceSelectorArgs.java @@ -0,0 +1,201 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +/** + * CELDeviceSelector contains a CEL expression for selecting a device. + * + */ +public final class CELDeviceSelectorArgs extends com.pulumi.resources.ResourceArgs { + + public static final CELDeviceSelectorArgs Empty = new CELDeviceSelectorArgs(); + + /** + * 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + */ + @Import(name="expression", required=true) + private Output expression; + + /** + * @return 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + */ + public Output expression() { + return this.expression; + } + + private CELDeviceSelectorArgs() {} + + private CELDeviceSelectorArgs(CELDeviceSelectorArgs $) { + this.expression = $.expression; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CELDeviceSelectorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CELDeviceSelectorArgs $; + + public Builder() { + $ = new CELDeviceSelectorArgs(); + } + + public Builder(CELDeviceSelectorArgs defaults) { + $ = new CELDeviceSelectorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + * @return builder + * + */ + public Builder expression(Output expression) { + $.expression = expression; + return this; + } + + /** + * @param 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + * @return builder + * + */ + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + public CELDeviceSelectorArgs build() { + if ($.expression == null) { + throw new MissingRequiredPropertyException("CELDeviceSelectorArgs", "expression"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/CELDeviceSelectorPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/CELDeviceSelectorPatchArgs.java new file mode 100644 index 0000000000..d2d2110281 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/CELDeviceSelectorPatchArgs.java @@ -0,0 +1,199 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * CELDeviceSelector contains a CEL expression for selecting a device. + * + */ +public final class CELDeviceSelectorPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final CELDeviceSelectorPatchArgs Empty = new CELDeviceSelectorPatchArgs(); + + /** + * 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + */ + @Import(name="expression") + private @Nullable Output expression; + + /** + * @return 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + */ + public Optional> expression() { + return Optional.ofNullable(this.expression); + } + + private CELDeviceSelectorPatchArgs() {} + + private CELDeviceSelectorPatchArgs(CELDeviceSelectorPatchArgs $) { + this.expression = $.expression; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CELDeviceSelectorPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CELDeviceSelectorPatchArgs $; + + public Builder() { + $ = new CELDeviceSelectorPatchArgs(); + } + + public Builder(CELDeviceSelectorPatchArgs defaults) { + $ = new CELDeviceSelectorPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + * @return builder + * + */ + public Builder expression(@Nullable Output expression) { + $.expression = expression; + return this; + } + + /** + * @param 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + * @return builder + * + */ + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + public CELDeviceSelectorPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAllocationConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAllocationConfigurationArgs.java new file mode 100644 index 0000000000..a5841d94ad --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAllocationConfigurationArgs.java @@ -0,0 +1,177 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.resource.v1beta1.inputs.OpaqueDeviceConfigurationArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceAllocationConfiguration gets embedded in an AllocationResult. + * + */ +public final class DeviceAllocationConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceAllocationConfigurationArgs Empty = new DeviceAllocationConfigurationArgs(); + + /** + * Opaque provides driver-specific configuration parameters. + * + */ + @Import(name="opaque") + private @Nullable Output opaque; + + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional> opaque() { + return Optional.ofNullable(this.opaque); + } + + /** + * Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + */ + @Import(name="requests") + private @Nullable Output> requests; + + /** + * @return Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + */ + public Optional>> requests() { + return Optional.ofNullable(this.requests); + } + + /** + * 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. + * + */ + @Import(name="source", required=true) + private Output source; + + /** + * @return 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. + * + */ + public Output source() { + return this.source; + } + + private DeviceAllocationConfigurationArgs() {} + + private DeviceAllocationConfigurationArgs(DeviceAllocationConfigurationArgs $) { + this.opaque = $.opaque; + this.requests = $.requests; + this.source = $.source; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceAllocationConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceAllocationConfigurationArgs $; + + public Builder() { + $ = new DeviceAllocationConfigurationArgs(); + } + + public Builder(DeviceAllocationConfigurationArgs defaults) { + $ = new DeviceAllocationConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(@Nullable Output opaque) { + $.opaque = opaque; + return this; + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(OpaqueDeviceConfigurationArgs opaque) { + return opaque(Output.of(opaque)); + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + * @return builder + * + */ + public Builder requests(@Nullable Output> requests) { + $.requests = requests; + return this; + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + * @return builder + * + */ + public Builder requests(List requests) { + return requests(Output.of(requests)); + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + * @return builder + * + */ + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder source(Output source) { + $.source = source; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder source(String source) { + return source(Output.of(source)); + } + + public DeviceAllocationConfigurationArgs build() { + if ($.source == null) { + throw new MissingRequiredPropertyException("DeviceAllocationConfigurationArgs", "source"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAllocationResultArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAllocationResultArgs.java new file mode 100644 index 0000000000..a17040eee5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAllocationResultArgs.java @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceAllocationConfigurationArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceRequestAllocationResultArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceAllocationResult is the result of allocating devices. + * + */ +public final class DeviceAllocationResultArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceAllocationResultArgs Empty = new DeviceAllocationResultArgs(); + + /** + * This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + */ + @Import(name="config") + private @Nullable Output> config; + + /** + * @return This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + */ + public Optional>> config() { + return Optional.ofNullable(this.config); + } + + /** + * Results lists all allocated devices. + * + */ + @Import(name="results") + private @Nullable Output> results; + + /** + * @return Results lists all allocated devices. + * + */ + public Optional>> results() { + return Optional.ofNullable(this.results); + } + + private DeviceAllocationResultArgs() {} + + private DeviceAllocationResultArgs(DeviceAllocationResultArgs $) { + this.config = $.config; + this.results = $.results; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceAllocationResultArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceAllocationResultArgs $; + + public Builder() { + $ = new DeviceAllocationResultArgs(); + } + + public Builder(DeviceAllocationResultArgs defaults) { + $ = new DeviceAllocationResultArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param config This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + * @return builder + * + */ + public Builder config(@Nullable Output> config) { + $.config = config; + return this; + } + + /** + * @param config This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + * @return builder + * + */ + public Builder config(List config) { + return config(Output.of(config)); + } + + /** + * @param config This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + * @return builder + * + */ + public Builder config(DeviceAllocationConfigurationArgs... config) { + return config(List.of(config)); + } + + /** + * @param results Results lists all allocated devices. + * + * @return builder + * + */ + public Builder results(@Nullable Output> results) { + $.results = results; + return this; + } + + /** + * @param results Results lists all allocated devices. + * + * @return builder + * + */ + public Builder results(List results) { + return results(Output.of(results)); + } + + /** + * @param results Results lists all allocated devices. + * + * @return builder + * + */ + public Builder results(DeviceRequestAllocationResultArgs... results) { + return results(List.of(results)); + } + + public DeviceAllocationResultArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceArgs.java new file mode 100644 index 0000000000..2517c3b3a8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceArgs.java @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.resource.v1beta1.inputs.BasicDeviceArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + * + */ +public final class DeviceArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceArgs Empty = new DeviceArgs(); + + /** + * Basic defines one device instance. + * + */ + @Import(name="basic") + private @Nullable Output basic; + + /** + * @return Basic defines one device instance. + * + */ + public Optional> basic() { + return Optional.ofNullable(this.basic); + } + + /** + * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + */ + public Output name() { + return this.name; + } + + private DeviceArgs() {} + + private DeviceArgs(DeviceArgs $) { + this.basic = $.basic; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceArgs $; + + public Builder() { + $ = new DeviceArgs(); + } + + public Builder(DeviceArgs defaults) { + $ = new DeviceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param basic Basic defines one device instance. + * + * @return builder + * + */ + public Builder basic(@Nullable Output basic) { + $.basic = basic; + return this; + } + + /** + * @param basic Basic defines one device instance. + * + * @return builder + * + */ + public Builder basic(BasicDeviceArgs basic) { + return basic(Output.of(basic)); + } + + /** + * @param name Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public DeviceArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("DeviceArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAttributeArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAttributeArgs.java new file mode 100644 index 0000000000..c6e7902336 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceAttributeArgs.java @@ -0,0 +1,200 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceAttribute must have exactly one field set. + * + */ +public final class DeviceAttributeArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceAttributeArgs Empty = new DeviceAttributeArgs(); + + /** + * BoolValue is a true/false value. + * + */ + @Import(name="bool") + private @Nullable Output bool; + + /** + * @return BoolValue is a true/false value. + * + */ + public Optional> bool() { + return Optional.ofNullable(this.bool); + } + + /** + * IntValue is a number. + * + */ + @Import(name="int") + private @Nullable Output int_; + + /** + * @return IntValue is a number. + * + */ + public Optional> int_() { + return Optional.ofNullable(this.int_); + } + + /** + * StringValue is a string. Must not be longer than 64 characters. + * + */ + @Import(name="string") + private @Nullable Output string; + + /** + * @return StringValue is a string. Must not be longer than 64 characters. + * + */ + public Optional> string() { + return Optional.ofNullable(this.string); + } + + /** + * VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + * + */ + @Import(name="version") + private @Nullable Output version; + + /** + * @return VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + * + */ + public Optional> version() { + return Optional.ofNullable(this.version); + } + + private DeviceAttributeArgs() {} + + private DeviceAttributeArgs(DeviceAttributeArgs $) { + this.bool = $.bool; + this.int_ = $.int_; + this.string = $.string; + this.version = $.version; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceAttributeArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceAttributeArgs $; + + public Builder() { + $ = new DeviceAttributeArgs(); + } + + public Builder(DeviceAttributeArgs defaults) { + $ = new DeviceAttributeArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bool BoolValue is a true/false value. + * + * @return builder + * + */ + public Builder bool(@Nullable Output bool) { + $.bool = bool; + return this; + } + + /** + * @param bool BoolValue is a true/false value. + * + * @return builder + * + */ + public Builder bool(Boolean bool) { + return bool(Output.of(bool)); + } + + /** + * @param int_ IntValue is a number. + * + * @return builder + * + */ + public Builder int_(@Nullable Output int_) { + $.int_ = int_; + return this; + } + + /** + * @param int_ IntValue is a number. + * + * @return builder + * + */ + public Builder int_(Integer int_) { + return int_(Output.of(int_)); + } + + /** + * @param string StringValue is a string. Must not be longer than 64 characters. + * + * @return builder + * + */ + public Builder string(@Nullable Output string) { + $.string = string; + return this; + } + + /** + * @param string StringValue is a string. Must not be longer than 64 characters. + * + * @return builder + * + */ + public Builder string(String string) { + return string(Output.of(string)); + } + + /** + * @param version VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + * + * @return builder + * + */ + public Builder version(@Nullable Output version) { + $.version = version; + return this; + } + + /** + * @param version VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + * + * @return builder + * + */ + public Builder version(String version) { + return version(Output.of(version)); + } + + public DeviceAttributeArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceCapacityArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceCapacityArgs.java new file mode 100644 index 0000000000..2b097d9a0f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceCapacityArgs.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +/** + * DeviceCapacity describes a quantity associated with a device. + * + */ +public final class DeviceCapacityArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceCapacityArgs Empty = new DeviceCapacityArgs(); + + /** + * Value defines how much of a certain device capacity is available. + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return Value defines how much of a certain device capacity is available. + * + */ + public Output value() { + return this.value; + } + + private DeviceCapacityArgs() {} + + private DeviceCapacityArgs(DeviceCapacityArgs $) { + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceCapacityArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceCapacityArgs $; + + public Builder() { + $ = new DeviceCapacityArgs(); + } + + public Builder(DeviceCapacityArgs defaults) { + $ = new DeviceCapacityArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param value Value defines how much of a certain device capacity is available. + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value Value defines how much of a certain device capacity is available. + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public DeviceCapacityArgs build() { + if ($.value == null) { + throw new MissingRequiredPropertyException("DeviceCapacityArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimArgs.java new file mode 100644 index 0000000000..c9ad64192c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimArgs.java @@ -0,0 +1,194 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClaimConfigurationArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceConstraintArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceRequestArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceClaim defines how to request devices with a ResourceClaim. + * + */ +public final class DeviceClaimArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClaimArgs Empty = new DeviceClaimArgs(); + + /** + * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + */ + @Import(name="config") + private @Nullable Output> config; + + /** + * @return This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + */ + public Optional>> config() { + return Optional.ofNullable(this.config); + } + + /** + * These constraints must be satisfied by the set of devices that get allocated for the claim. + * + */ + @Import(name="constraints") + private @Nullable Output> constraints; + + /** + * @return These constraints must be satisfied by the set of devices that get allocated for the claim. + * + */ + public Optional>> constraints() { + return Optional.ofNullable(this.constraints); + } + + /** + * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + */ + @Import(name="requests") + private @Nullable Output> requests; + + /** + * @return Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + */ + public Optional>> requests() { + return Optional.ofNullable(this.requests); + } + + private DeviceClaimArgs() {} + + private DeviceClaimArgs(DeviceClaimArgs $) { + this.config = $.config; + this.constraints = $.constraints; + this.requests = $.requests; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClaimArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClaimArgs $; + + public Builder() { + $ = new DeviceClaimArgs(); + } + + public Builder(DeviceClaimArgs defaults) { + $ = new DeviceClaimArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param config This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + * @return builder + * + */ + public Builder config(@Nullable Output> config) { + $.config = config; + return this; + } + + /** + * @param config This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + * @return builder + * + */ + public Builder config(List config) { + return config(Output.of(config)); + } + + /** + * @param config This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + * @return builder + * + */ + public Builder config(DeviceClaimConfigurationArgs... config) { + return config(List.of(config)); + } + + /** + * @param constraints These constraints must be satisfied by the set of devices that get allocated for the claim. + * + * @return builder + * + */ + public Builder constraints(@Nullable Output> constraints) { + $.constraints = constraints; + return this; + } + + /** + * @param constraints These constraints must be satisfied by the set of devices that get allocated for the claim. + * + * @return builder + * + */ + public Builder constraints(List constraints) { + return constraints(Output.of(constraints)); + } + + /** + * @param constraints These constraints must be satisfied by the set of devices that get allocated for the claim. + * + * @return builder + * + */ + public Builder constraints(DeviceConstraintArgs... constraints) { + return constraints(List.of(constraints)); + } + + /** + * @param requests Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + * @return builder + * + */ + public Builder requests(@Nullable Output> requests) { + $.requests = requests; + return this; + } + + /** + * @param requests Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + * @return builder + * + */ + public Builder requests(List requests) { + return requests(Output.of(requests)); + } + + /** + * @param requests Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + * @return builder + * + */ + public Builder requests(DeviceRequestArgs... requests) { + return requests(List.of(requests)); + } + + public DeviceClaimArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimConfigurationArgs.java new file mode 100644 index 0000000000..349392bdba --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimConfigurationArgs.java @@ -0,0 +1,136 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.OpaqueDeviceConfigurationArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + * + */ +public final class DeviceClaimConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClaimConfigurationArgs Empty = new DeviceClaimConfigurationArgs(); + + /** + * Opaque provides driver-specific configuration parameters. + * + */ + @Import(name="opaque") + private @Nullable Output opaque; + + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional> opaque() { + return Optional.ofNullable(this.opaque); + } + + /** + * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + */ + @Import(name="requests") + private @Nullable Output> requests; + + /** + * @return Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + */ + public Optional>> requests() { + return Optional.ofNullable(this.requests); + } + + private DeviceClaimConfigurationArgs() {} + + private DeviceClaimConfigurationArgs(DeviceClaimConfigurationArgs $) { + this.opaque = $.opaque; + this.requests = $.requests; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClaimConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClaimConfigurationArgs $; + + public Builder() { + $ = new DeviceClaimConfigurationArgs(); + } + + public Builder(DeviceClaimConfigurationArgs defaults) { + $ = new DeviceClaimConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(@Nullable Output opaque) { + $.opaque = opaque; + return this; + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(OpaqueDeviceConfigurationArgs opaque) { + return opaque(Output.of(opaque)); + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + * @return builder + * + */ + public Builder requests(@Nullable Output> requests) { + $.requests = requests; + return this; + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + * @return builder + * + */ + public Builder requests(List requests) { + return requests(Output.of(requests)); + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + * @return builder + * + */ + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + + public DeviceClaimConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimConfigurationPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimConfigurationPatchArgs.java new file mode 100644 index 0000000000..737ac6fee0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimConfigurationPatchArgs.java @@ -0,0 +1,136 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.OpaqueDeviceConfigurationPatchArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + * + */ +public final class DeviceClaimConfigurationPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClaimConfigurationPatchArgs Empty = new DeviceClaimConfigurationPatchArgs(); + + /** + * Opaque provides driver-specific configuration parameters. + * + */ + @Import(name="opaque") + private @Nullable Output opaque; + + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional> opaque() { + return Optional.ofNullable(this.opaque); + } + + /** + * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + */ + @Import(name="requests") + private @Nullable Output> requests; + + /** + * @return Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + */ + public Optional>> requests() { + return Optional.ofNullable(this.requests); + } + + private DeviceClaimConfigurationPatchArgs() {} + + private DeviceClaimConfigurationPatchArgs(DeviceClaimConfigurationPatchArgs $) { + this.opaque = $.opaque; + this.requests = $.requests; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClaimConfigurationPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClaimConfigurationPatchArgs $; + + public Builder() { + $ = new DeviceClaimConfigurationPatchArgs(); + } + + public Builder(DeviceClaimConfigurationPatchArgs defaults) { + $ = new DeviceClaimConfigurationPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(@Nullable Output opaque) { + $.opaque = opaque; + return this; + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(OpaqueDeviceConfigurationPatchArgs opaque) { + return opaque(Output.of(opaque)); + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + * @return builder + * + */ + public Builder requests(@Nullable Output> requests) { + $.requests = requests; + return this; + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + * @return builder + * + */ + public Builder requests(List requests) { + return requests(Output.of(requests)); + } + + /** + * @param requests Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + * @return builder + * + */ + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + + public DeviceClaimConfigurationPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimPatchArgs.java new file mode 100644 index 0000000000..ad080c75d3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClaimPatchArgs.java @@ -0,0 +1,194 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClaimConfigurationPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceConstraintPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceRequestPatchArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceClaim defines how to request devices with a ResourceClaim. + * + */ +public final class DeviceClaimPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClaimPatchArgs Empty = new DeviceClaimPatchArgs(); + + /** + * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + */ + @Import(name="config") + private @Nullable Output> config; + + /** + * @return This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + */ + public Optional>> config() { + return Optional.ofNullable(this.config); + } + + /** + * These constraints must be satisfied by the set of devices that get allocated for the claim. + * + */ + @Import(name="constraints") + private @Nullable Output> constraints; + + /** + * @return These constraints must be satisfied by the set of devices that get allocated for the claim. + * + */ + public Optional>> constraints() { + return Optional.ofNullable(this.constraints); + } + + /** + * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + */ + @Import(name="requests") + private @Nullable Output> requests; + + /** + * @return Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + */ + public Optional>> requests() { + return Optional.ofNullable(this.requests); + } + + private DeviceClaimPatchArgs() {} + + private DeviceClaimPatchArgs(DeviceClaimPatchArgs $) { + this.config = $.config; + this.constraints = $.constraints; + this.requests = $.requests; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClaimPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClaimPatchArgs $; + + public Builder() { + $ = new DeviceClaimPatchArgs(); + } + + public Builder(DeviceClaimPatchArgs defaults) { + $ = new DeviceClaimPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param config This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + * @return builder + * + */ + public Builder config(@Nullable Output> config) { + $.config = config; + return this; + } + + /** + * @param config This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + * @return builder + * + */ + public Builder config(List config) { + return config(Output.of(config)); + } + + /** + * @param config This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + * @return builder + * + */ + public Builder config(DeviceClaimConfigurationPatchArgs... config) { + return config(List.of(config)); + } + + /** + * @param constraints These constraints must be satisfied by the set of devices that get allocated for the claim. + * + * @return builder + * + */ + public Builder constraints(@Nullable Output> constraints) { + $.constraints = constraints; + return this; + } + + /** + * @param constraints These constraints must be satisfied by the set of devices that get allocated for the claim. + * + * @return builder + * + */ + public Builder constraints(List constraints) { + return constraints(Output.of(constraints)); + } + + /** + * @param constraints These constraints must be satisfied by the set of devices that get allocated for the claim. + * + * @return builder + * + */ + public Builder constraints(DeviceConstraintPatchArgs... constraints) { + return constraints(List.of(constraints)); + } + + /** + * @param requests Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + * @return builder + * + */ + public Builder requests(@Nullable Output> requests) { + $.requests = requests; + return this; + } + + /** + * @param requests Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + * @return builder + * + */ + public Builder requests(List requests) { + return requests(Output.of(requests)); + } + + /** + * @param requests Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + * @return builder + * + */ + public Builder requests(DeviceRequestPatchArgs... requests) { + return requests(List.of(requests)); + } + + public DeviceClaimPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassArgs.java new file mode 100644 index 0000000000..666fea414a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassArgs.java @@ -0,0 +1,225 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClassSpecArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * 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. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +public final class DeviceClassArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClassArgs Empty = new DeviceClassArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output spec() { + return this.spec; + } + + private DeviceClassArgs() {} + + private DeviceClassArgs(DeviceClassArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClassArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClassArgs $; + + public Builder() { + $ = new DeviceClassArgs(); + } + + public Builder(DeviceClassArgs defaults) { + $ = new DeviceClassArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(DeviceClassSpecArgs spec) { + return spec(Output.of(spec)); + } + + public DeviceClassArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("DeviceClassArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassConfigurationArgs.java new file mode 100644 index 0000000000..d4ac496b66 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassConfigurationArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.OpaqueDeviceConfigurationArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceClassConfiguration is used in DeviceClass. + * + */ +public final class DeviceClassConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClassConfigurationArgs Empty = new DeviceClassConfigurationArgs(); + + /** + * Opaque provides driver-specific configuration parameters. + * + */ + @Import(name="opaque") + private @Nullable Output opaque; + + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional> opaque() { + return Optional.ofNullable(this.opaque); + } + + private DeviceClassConfigurationArgs() {} + + private DeviceClassConfigurationArgs(DeviceClassConfigurationArgs $) { + this.opaque = $.opaque; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClassConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClassConfigurationArgs $; + + public Builder() { + $ = new DeviceClassConfigurationArgs(); + } + + public Builder(DeviceClassConfigurationArgs defaults) { + $ = new DeviceClassConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(@Nullable Output opaque) { + $.opaque = opaque; + return this; + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(OpaqueDeviceConfigurationArgs opaque) { + return opaque(Output.of(opaque)); + } + + public DeviceClassConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassConfigurationPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassConfigurationPatchArgs.java new file mode 100644 index 0000000000..1179761b71 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassConfigurationPatchArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.OpaqueDeviceConfigurationPatchArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceClassConfiguration is used in DeviceClass. + * + */ +public final class DeviceClassConfigurationPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClassConfigurationPatchArgs Empty = new DeviceClassConfigurationPatchArgs(); + + /** + * Opaque provides driver-specific configuration parameters. + * + */ + @Import(name="opaque") + private @Nullable Output opaque; + + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional> opaque() { + return Optional.ofNullable(this.opaque); + } + + private DeviceClassConfigurationPatchArgs() {} + + private DeviceClassConfigurationPatchArgs(DeviceClassConfigurationPatchArgs $) { + this.opaque = $.opaque; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClassConfigurationPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClassConfigurationPatchArgs $; + + public Builder() { + $ = new DeviceClassConfigurationPatchArgs(); + } + + public Builder(DeviceClassConfigurationPatchArgs defaults) { + $ = new DeviceClassConfigurationPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(@Nullable Output opaque) { + $.opaque = opaque; + return this; + } + + /** + * @param opaque Opaque provides driver-specific configuration parameters. + * + * @return builder + * + */ + public Builder opaque(OpaqueDeviceConfigurationPatchArgs opaque) { + return opaque(Output.of(opaque)); + } + + public DeviceClassConfigurationPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassSpecArgs.java new file mode 100644 index 0000000000..05a7368181 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassSpecArgs.java @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClassConfigurationArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceSelectorArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + * + */ +public final class DeviceClassSpecArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClassSpecArgs Empty = new DeviceClassSpecArgs(); + + /** + * Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + */ + @Import(name="config") + private @Nullable Output> config; + + /** + * @return Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + */ + public Optional>> config() { + return Optional.ofNullable(this.config); + } + + /** + * Each selector must be satisfied by a device which is claimed via this class. + * + */ + @Import(name="selectors") + private @Nullable Output> selectors; + + /** + * @return Each selector must be satisfied by a device which is claimed via this class. + * + */ + public Optional>> selectors() { + return Optional.ofNullable(this.selectors); + } + + private DeviceClassSpecArgs() {} + + private DeviceClassSpecArgs(DeviceClassSpecArgs $) { + this.config = $.config; + this.selectors = $.selectors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClassSpecArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClassSpecArgs $; + + public Builder() { + $ = new DeviceClassSpecArgs(); + } + + public Builder(DeviceClassSpecArgs defaults) { + $ = new DeviceClassSpecArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param config Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + * @return builder + * + */ + public Builder config(@Nullable Output> config) { + $.config = config; + return this; + } + + /** + * @param config Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + * @return builder + * + */ + public Builder config(List config) { + return config(Output.of(config)); + } + + /** + * @param config Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + * @return builder + * + */ + public Builder config(DeviceClassConfigurationArgs... config) { + return config(List.of(config)); + } + + /** + * @param selectors Each selector must be satisfied by a device which is claimed via this class. + * + * @return builder + * + */ + public Builder selectors(@Nullable Output> selectors) { + $.selectors = selectors; + return this; + } + + /** + * @param selectors Each selector must be satisfied by a device which is claimed via this class. + * + * @return builder + * + */ + public Builder selectors(List selectors) { + return selectors(Output.of(selectors)); + } + + /** + * @param selectors Each selector must be satisfied by a device which is claimed via this class. + * + * @return builder + * + */ + public Builder selectors(DeviceSelectorArgs... selectors) { + return selectors(List.of(selectors)); + } + + public DeviceClassSpecArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassSpecPatchArgs.java new file mode 100644 index 0000000000..4cf3b1afde --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceClassSpecPatchArgs.java @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClassConfigurationPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceSelectorPatchArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + * + */ +public final class DeviceClassSpecPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceClassSpecPatchArgs Empty = new DeviceClassSpecPatchArgs(); + + /** + * Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + */ + @Import(name="config") + private @Nullable Output> config; + + /** + * @return Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + */ + public Optional>> config() { + return Optional.ofNullable(this.config); + } + + /** + * Each selector must be satisfied by a device which is claimed via this class. + * + */ + @Import(name="selectors") + private @Nullable Output> selectors; + + /** + * @return Each selector must be satisfied by a device which is claimed via this class. + * + */ + public Optional>> selectors() { + return Optional.ofNullable(this.selectors); + } + + private DeviceClassSpecPatchArgs() {} + + private DeviceClassSpecPatchArgs(DeviceClassSpecPatchArgs $) { + this.config = $.config; + this.selectors = $.selectors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceClassSpecPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceClassSpecPatchArgs $; + + public Builder() { + $ = new DeviceClassSpecPatchArgs(); + } + + public Builder(DeviceClassSpecPatchArgs defaults) { + $ = new DeviceClassSpecPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param config Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + * @return builder + * + */ + public Builder config(@Nullable Output> config) { + $.config = config; + return this; + } + + /** + * @param config Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + * @return builder + * + */ + public Builder config(List config) { + return config(Output.of(config)); + } + + /** + * @param config Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + * @return builder + * + */ + public Builder config(DeviceClassConfigurationPatchArgs... config) { + return config(List.of(config)); + } + + /** + * @param selectors Each selector must be satisfied by a device which is claimed via this class. + * + * @return builder + * + */ + public Builder selectors(@Nullable Output> selectors) { + $.selectors = selectors; + return this; + } + + /** + * @param selectors Each selector must be satisfied by a device which is claimed via this class. + * + * @return builder + * + */ + public Builder selectors(List selectors) { + return selectors(Output.of(selectors)); + } + + /** + * @param selectors Each selector must be satisfied by a device which is claimed via this class. + * + * @return builder + * + */ + public Builder selectors(DeviceSelectorPatchArgs... selectors) { + return selectors(List.of(selectors)); + } + + public DeviceClassSpecPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceConstraintArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceConstraintArgs.java new file mode 100644 index 0000000000..3bbb05cd34 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceConstraintArgs.java @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceConstraint must have exactly one field set besides Requests. + * + */ +public final class DeviceConstraintArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceConstraintArgs Empty = new DeviceConstraintArgs(); + + /** + * MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + */ + @Import(name="matchAttribute") + private @Nullable Output matchAttribute; + + /** + * @return MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + */ + public Optional> matchAttribute() { + return Optional.ofNullable(this.matchAttribute); + } + + /** + * 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. + * + */ + @Import(name="requests") + private @Nullable Output> requests; + + /** + * @return 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. + * + */ + public Optional>> requests() { + return Optional.ofNullable(this.requests); + } + + private DeviceConstraintArgs() {} + + private DeviceConstraintArgs(DeviceConstraintArgs $) { + this.matchAttribute = $.matchAttribute; + this.requests = $.requests; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceConstraintArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceConstraintArgs $; + + public Builder() { + $ = new DeviceConstraintArgs(); + } + + public Builder(DeviceConstraintArgs defaults) { + $ = new DeviceConstraintArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param matchAttribute MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + * @return builder + * + */ + public Builder matchAttribute(@Nullable Output matchAttribute) { + $.matchAttribute = matchAttribute; + return this; + } + + /** + * @param matchAttribute MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + * @return builder + * + */ + public Builder matchAttribute(String matchAttribute) { + return matchAttribute(Output.of(matchAttribute)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder requests(@Nullable Output> requests) { + $.requests = requests; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder requests(List requests) { + return requests(Output.of(requests)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + + public DeviceConstraintArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceConstraintPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceConstraintPatchArgs.java new file mode 100644 index 0000000000..17ffd55033 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceConstraintPatchArgs.java @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceConstraint must have exactly one field set besides Requests. + * + */ +public final class DeviceConstraintPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceConstraintPatchArgs Empty = new DeviceConstraintPatchArgs(); + + /** + * MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + */ + @Import(name="matchAttribute") + private @Nullable Output matchAttribute; + + /** + * @return MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + */ + public Optional> matchAttribute() { + return Optional.ofNullable(this.matchAttribute); + } + + /** + * 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. + * + */ + @Import(name="requests") + private @Nullable Output> requests; + + /** + * @return 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. + * + */ + public Optional>> requests() { + return Optional.ofNullable(this.requests); + } + + private DeviceConstraintPatchArgs() {} + + private DeviceConstraintPatchArgs(DeviceConstraintPatchArgs $) { + this.matchAttribute = $.matchAttribute; + this.requests = $.requests; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceConstraintPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceConstraintPatchArgs $; + + public Builder() { + $ = new DeviceConstraintPatchArgs(); + } + + public Builder(DeviceConstraintPatchArgs defaults) { + $ = new DeviceConstraintPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param matchAttribute MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + * @return builder + * + */ + public Builder matchAttribute(@Nullable Output matchAttribute) { + $.matchAttribute = matchAttribute; + return this; + } + + /** + * @param matchAttribute MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + * @return builder + * + */ + public Builder matchAttribute(String matchAttribute) { + return matchAttribute(Output.of(matchAttribute)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder requests(@Nullable Output> requests) { + $.requests = requests; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder requests(List requests) { + return requests(Output.of(requests)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + + public DeviceConstraintPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DevicePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DevicePatchArgs.java new file mode 100644 index 0000000000..d74b110803 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DevicePatchArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.BasicDevicePatchArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + * + */ +public final class DevicePatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DevicePatchArgs Empty = new DevicePatchArgs(); + + /** + * Basic defines one device instance. + * + */ + @Import(name="basic") + private @Nullable Output basic; + + /** + * @return Basic defines one device instance. + * + */ + public Optional> basic() { + return Optional.ofNullable(this.basic); + } + + /** + * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private DevicePatchArgs() {} + + private DevicePatchArgs(DevicePatchArgs $) { + this.basic = $.basic; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DevicePatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DevicePatchArgs $; + + public Builder() { + $ = new DevicePatchArgs(); + } + + public Builder(DevicePatchArgs defaults) { + $ = new DevicePatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param basic Basic defines one device instance. + * + * @return builder + * + */ + public Builder basic(@Nullable Output basic) { + $.basic = basic; + return this; + } + + /** + * @param basic Basic defines one device instance. + * + * @return builder + * + */ + public Builder basic(BasicDevicePatchArgs basic) { + return basic(Output.of(basic)); + } + + /** + * @param name Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public DevicePatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestAllocationResultArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestAllocationResultArgs.java new file mode 100644 index 0000000000..744bbd9119 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestAllocationResultArgs.java @@ -0,0 +1,273 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceRequestAllocationResult contains the allocation result for one request. + * + */ +public final class DeviceRequestAllocationResultArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceRequestAllocationResultArgs Empty = new DeviceRequestAllocationResultArgs(); + + /** + * AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + @Import(name="adminAccess") + private @Nullable Output adminAccess; + + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + public Optional> adminAccess() { + return Optional.ofNullable(this.adminAccess); + } + + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + @Import(name="device", required=true) + private Output device; + + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public Output device() { + return this.device; + } + + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + @Import(name="driver", required=true) + private Output driver; + + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Output driver() { + return this.driver; + } + + /** + * This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + @Import(name="pool", required=true) + private Output pool; + + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public Output pool() { + return this.pool; + } + + /** + * 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. + * + */ + @Import(name="request", required=true) + private Output request; + + /** + * @return 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. + * + */ + public Output request() { + return this.request; + } + + private DeviceRequestAllocationResultArgs() {} + + private DeviceRequestAllocationResultArgs(DeviceRequestAllocationResultArgs $) { + this.adminAccess = $.adminAccess; + this.device = $.device; + this.driver = $.driver; + this.pool = $.pool; + this.request = $.request; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceRequestAllocationResultArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceRequestAllocationResultArgs $; + + public Builder() { + $ = new DeviceRequestAllocationResultArgs(); + } + + public Builder(DeviceRequestAllocationResultArgs defaults) { + $ = new DeviceRequestAllocationResultArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param adminAccess AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + * @return builder + * + */ + public Builder adminAccess(@Nullable Output adminAccess) { + $.adminAccess = adminAccess; + return this; + } + + /** + * @param adminAccess AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + * @return builder + * + */ + public Builder adminAccess(Boolean adminAccess) { + return adminAccess(Output.of(adminAccess)); + } + + /** + * @param device Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder device(Output device) { + $.device = device; + return this; + } + + /** + * @param device Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + * @return builder + * + */ + public Builder device(String device) { + return device(Output.of(device)); + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(Output driver) { + $.driver = driver; + return this; + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(String driver) { + return driver(Output.of(driver)); + } + + /** + * @param pool This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + * @return builder + * + */ + public Builder pool(Output pool) { + $.pool = pool; + return this; + } + + /** + * @param pool This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + * @return builder + * + */ + public Builder pool(String pool) { + return pool(Output.of(pool)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder request(Output request) { + $.request = request; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder request(String request) { + return request(Output.of(request)); + } + + public DeviceRequestAllocationResultArgs build() { + if ($.device == null) { + throw new MissingRequiredPropertyException("DeviceRequestAllocationResultArgs", "device"); + } + if ($.driver == null) { + throw new MissingRequiredPropertyException("DeviceRequestAllocationResultArgs", "driver"); + } + if ($.pool == null) { + throw new MissingRequiredPropertyException("DeviceRequestAllocationResultArgs", "pool"); + } + if ($.request == null) { + throw new MissingRequiredPropertyException("DeviceRequestAllocationResultArgs", "request"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestArgs.java new file mode 100644 index 0000000000..1e67777782 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestArgs.java @@ -0,0 +1,375 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceSelectorArgs; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * 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. + * + * 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. + * + */ +public final class DeviceRequestArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceRequestArgs Empty = new DeviceRequestArgs(); + + /** + * 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. + * + * 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. + * + */ + @Import(name="adminAccess") + private @Nullable Output adminAccess; + + /** + * @return 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. + * + * 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. + * + */ + public Optional> adminAccess() { + return Optional.ofNullable(this.adminAccess); + } + + /** + * AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + */ + @Import(name="allocationMode") + private @Nullable Output allocationMode; + + /** + * @return AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + */ + public Optional> allocationMode() { + return Optional.ofNullable(this.allocationMode); + } + + /** + * 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. + * + */ + @Import(name="count") + private @Nullable Output count; + + /** + * @return 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. + * + */ + public Optional> count() { + return Optional.ofNullable(this.count); + } + + /** + * DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + */ + @Import(name="deviceClassName", required=true) + private Output deviceClassName; + + /** + * @return DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + */ + public Output deviceClassName() { + return this.deviceClassName; + } + + /** + * Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + */ + public Output name() { + return this.name; + } + + /** + * 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. + * + */ + @Import(name="selectors") + private @Nullable Output> selectors; + + /** + * @return 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. + * + */ + public Optional>> selectors() { + return Optional.ofNullable(this.selectors); + } + + private DeviceRequestArgs() {} + + private DeviceRequestArgs(DeviceRequestArgs $) { + this.adminAccess = $.adminAccess; + this.allocationMode = $.allocationMode; + this.count = $.count; + this.deviceClassName = $.deviceClassName; + this.name = $.name; + this.selectors = $.selectors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceRequestArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceRequestArgs $; + + public Builder() { + $ = new DeviceRequestArgs(); + } + + public Builder(DeviceRequestArgs defaults) { + $ = new DeviceRequestArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param adminAccess 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. + * + * 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. + * + * @return builder + * + */ + public Builder adminAccess(@Nullable Output adminAccess) { + $.adminAccess = adminAccess; + return this; + } + + /** + * @param adminAccess 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. + * + * 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. + * + * @return builder + * + */ + public Builder adminAccess(Boolean adminAccess) { + return adminAccess(Output.of(adminAccess)); + } + + /** + * @param allocationMode AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + * @return builder + * + */ + public Builder allocationMode(@Nullable Output allocationMode) { + $.allocationMode = allocationMode; + return this; + } + + /** + * @param allocationMode AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + * @return builder + * + */ + public Builder allocationMode(String allocationMode) { + return allocationMode(Output.of(allocationMode)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder count(@Nullable Output count) { + $.count = count; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder count(Integer count) { + return count(Output.of(count)); + } + + /** + * @param deviceClassName DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + * @return builder + * + */ + public Builder deviceClassName(Output deviceClassName) { + $.deviceClassName = deviceClassName; + return this; + } + + /** + * @param deviceClassName DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + * @return builder + * + */ + public Builder deviceClassName(String deviceClassName) { + return deviceClassName(Output.of(deviceClassName)); + } + + /** + * @param name Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder selectors(@Nullable Output> selectors) { + $.selectors = selectors; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder selectors(List selectors) { + return selectors(Output.of(selectors)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder selectors(DeviceSelectorArgs... selectors) { + return selectors(List.of(selectors)); + } + + public DeviceRequestArgs build() { + if ($.deviceClassName == null) { + throw new MissingRequiredPropertyException("DeviceRequestArgs", "deviceClassName"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("DeviceRequestArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestPatchArgs.java new file mode 100644 index 0000000000..ad9cd93428 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceRequestPatchArgs.java @@ -0,0 +1,368 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceSelectorPatchArgs; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * 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. + * + * 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. + * + */ +public final class DeviceRequestPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceRequestPatchArgs Empty = new DeviceRequestPatchArgs(); + + /** + * 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. + * + * 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. + * + */ + @Import(name="adminAccess") + private @Nullable Output adminAccess; + + /** + * @return 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. + * + * 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. + * + */ + public Optional> adminAccess() { + return Optional.ofNullable(this.adminAccess); + } + + /** + * AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + */ + @Import(name="allocationMode") + private @Nullable Output allocationMode; + + /** + * @return AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + */ + public Optional> allocationMode() { + return Optional.ofNullable(this.allocationMode); + } + + /** + * 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. + * + */ + @Import(name="count") + private @Nullable Output count; + + /** + * @return 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. + * + */ + public Optional> count() { + return Optional.ofNullable(this.count); + } + + /** + * DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + */ + @Import(name="deviceClassName") + private @Nullable Output deviceClassName; + + /** + * @return DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + */ + public Optional> deviceClassName() { + return Optional.ofNullable(this.deviceClassName); + } + + /** + * Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * 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. + * + */ + @Import(name="selectors") + private @Nullable Output> selectors; + + /** + * @return 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. + * + */ + public Optional>> selectors() { + return Optional.ofNullable(this.selectors); + } + + private DeviceRequestPatchArgs() {} + + private DeviceRequestPatchArgs(DeviceRequestPatchArgs $) { + this.adminAccess = $.adminAccess; + this.allocationMode = $.allocationMode; + this.count = $.count; + this.deviceClassName = $.deviceClassName; + this.name = $.name; + this.selectors = $.selectors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceRequestPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceRequestPatchArgs $; + + public Builder() { + $ = new DeviceRequestPatchArgs(); + } + + public Builder(DeviceRequestPatchArgs defaults) { + $ = new DeviceRequestPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param adminAccess 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. + * + * 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. + * + * @return builder + * + */ + public Builder adminAccess(@Nullable Output adminAccess) { + $.adminAccess = adminAccess; + return this; + } + + /** + * @param adminAccess 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. + * + * 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. + * + * @return builder + * + */ + public Builder adminAccess(Boolean adminAccess) { + return adminAccess(Output.of(adminAccess)); + } + + /** + * @param allocationMode AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + * @return builder + * + */ + public Builder allocationMode(@Nullable Output allocationMode) { + $.allocationMode = allocationMode; + return this; + } + + /** + * @param allocationMode AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + * @return builder + * + */ + public Builder allocationMode(String allocationMode) { + return allocationMode(Output.of(allocationMode)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder count(@Nullable Output count) { + $.count = count; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder count(Integer count) { + return count(Output.of(count)); + } + + /** + * @param deviceClassName DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + * @return builder + * + */ + public Builder deviceClassName(@Nullable Output deviceClassName) { + $.deviceClassName = deviceClassName; + return this; + } + + /** + * @param deviceClassName DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + * @return builder + * + */ + public Builder deviceClassName(String deviceClassName) { + return deviceClassName(Output.of(deviceClassName)); + } + + /** + * @param name Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder selectors(@Nullable Output> selectors) { + $.selectors = selectors; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder selectors(List selectors) { + return selectors(Output.of(selectors)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder selectors(DeviceSelectorPatchArgs... selectors) { + return selectors(List.of(selectors)); + } + + public DeviceRequestPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceSelectorArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceSelectorArgs.java new file mode 100644 index 0000000000..e6f0c9b834 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceSelectorArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.CELDeviceSelectorArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceSelector must have exactly one field set. + * + */ +public final class DeviceSelectorArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceSelectorArgs Empty = new DeviceSelectorArgs(); + + /** + * CEL contains a CEL expression for selecting a device. + * + */ + @Import(name="cel") + private @Nullable Output cel; + + /** + * @return CEL contains a CEL expression for selecting a device. + * + */ + public Optional> cel() { + return Optional.ofNullable(this.cel); + } + + private DeviceSelectorArgs() {} + + private DeviceSelectorArgs(DeviceSelectorArgs $) { + this.cel = $.cel; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceSelectorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceSelectorArgs $; + + public Builder() { + $ = new DeviceSelectorArgs(); + } + + public Builder(DeviceSelectorArgs defaults) { + $ = new DeviceSelectorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cel CEL contains a CEL expression for selecting a device. + * + * @return builder + * + */ + public Builder cel(@Nullable Output cel) { + $.cel = cel; + return this; + } + + /** + * @param cel CEL contains a CEL expression for selecting a device. + * + * @return builder + * + */ + public Builder cel(CELDeviceSelectorArgs cel) { + return cel(Output.of(cel)); + } + + public DeviceSelectorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceSelectorPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceSelectorPatchArgs.java new file mode 100644 index 0000000000..71eea50da7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/DeviceSelectorPatchArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.CELDeviceSelectorPatchArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * DeviceSelector must have exactly one field set. + * + */ +public final class DeviceSelectorPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeviceSelectorPatchArgs Empty = new DeviceSelectorPatchArgs(); + + /** + * CEL contains a CEL expression for selecting a device. + * + */ + @Import(name="cel") + private @Nullable Output cel; + + /** + * @return CEL contains a CEL expression for selecting a device. + * + */ + public Optional> cel() { + return Optional.ofNullable(this.cel); + } + + private DeviceSelectorPatchArgs() {} + + private DeviceSelectorPatchArgs(DeviceSelectorPatchArgs $) { + this.cel = $.cel; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeviceSelectorPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeviceSelectorPatchArgs $; + + public Builder() { + $ = new DeviceSelectorPatchArgs(); + } + + public Builder(DeviceSelectorPatchArgs defaults) { + $ = new DeviceSelectorPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cel CEL contains a CEL expression for selecting a device. + * + * @return builder + * + */ + public Builder cel(@Nullable Output cel) { + $.cel = cel; + return this; + } + + /** + * @param cel CEL contains a CEL expression for selecting a device. + * + * @return builder + * + */ + public Builder cel(CELDeviceSelectorPatchArgs cel) { + return cel(Output.of(cel)); + } + + public DeviceSelectorPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/NetworkDeviceDataArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/NetworkDeviceDataArgs.java new file mode 100644 index 0000000000..91e594c627 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/NetworkDeviceDataArgs.java @@ -0,0 +1,188 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * 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. + * + */ +public final class NetworkDeviceDataArgs extends com.pulumi.resources.ResourceArgs { + + public static final NetworkDeviceDataArgs Empty = new NetworkDeviceDataArgs(); + + /** + * HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + @Import(name="hardwareAddress") + private @Nullable Output hardwareAddress; + + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + public Optional> hardwareAddress() { + return Optional.ofNullable(this.hardwareAddress); + } + + /** + * 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. + * + * Must not be longer than 256 characters. + * + */ + @Import(name="interfaceName") + private @Nullable Output interfaceName; + + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + public Optional> interfaceName() { + return Optional.ofNullable(this.interfaceName); + } + + /** + * 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. + * + */ + @Import(name="ips") + private @Nullable Output> ips; + + /** + * @return 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. + * + */ + public Optional>> ips() { + return Optional.ofNullable(this.ips); + } + + private NetworkDeviceDataArgs() {} + + private NetworkDeviceDataArgs(NetworkDeviceDataArgs $) { + this.hardwareAddress = $.hardwareAddress; + this.interfaceName = $.interfaceName; + this.ips = $.ips; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(NetworkDeviceDataArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private NetworkDeviceDataArgs $; + + public Builder() { + $ = new NetworkDeviceDataArgs(); + } + + public Builder(NetworkDeviceDataArgs defaults) { + $ = new NetworkDeviceDataArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param hardwareAddress HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + * @return builder + * + */ + public Builder hardwareAddress(@Nullable Output hardwareAddress) { + $.hardwareAddress = hardwareAddress; + return this; + } + + /** + * @param hardwareAddress HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + * @return builder + * + */ + public Builder hardwareAddress(String hardwareAddress) { + return hardwareAddress(Output.of(hardwareAddress)); + } + + /** + * @param interfaceName 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. + * + * Must not be longer than 256 characters. + * + * @return builder + * + */ + public Builder interfaceName(@Nullable Output interfaceName) { + $.interfaceName = interfaceName; + return this; + } + + /** + * @param interfaceName 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. + * + * Must not be longer than 256 characters. + * + * @return builder + * + */ + public Builder interfaceName(String interfaceName) { + return interfaceName(Output.of(interfaceName)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder ips(@Nullable Output> ips) { + $.ips = ips; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder ips(List ips) { + return ips(Output.of(ips)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder ips(String... ips) { + return ips(List.of(ips)); + } + + public NetworkDeviceDataArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/OpaqueDeviceConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/OpaqueDeviceConfigurationArgs.java new file mode 100644 index 0000000000..af42672701 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/OpaqueDeviceConfigurationArgs.java @@ -0,0 +1,154 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +/** + * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + * + */ +public final class OpaqueDeviceConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final OpaqueDeviceConfigurationArgs Empty = new OpaqueDeviceConfigurationArgs(); + + /** + * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + @Import(name="driver", required=true) + private Output driver; + + /** + * @return Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Output driver() { + return this.driver; + } + + /** + * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + @Import(name="parameters", required=true) + private Output parameters; + + /** + * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Output parameters() { + return this.parameters; + } + + private OpaqueDeviceConfigurationArgs() {} + + private OpaqueDeviceConfigurationArgs(OpaqueDeviceConfigurationArgs $) { + this.driver = $.driver; + this.parameters = $.parameters; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OpaqueDeviceConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OpaqueDeviceConfigurationArgs $; + + public Builder() { + $ = new OpaqueDeviceConfigurationArgs(); + } + + public Builder(OpaqueDeviceConfigurationArgs defaults) { + $ = new OpaqueDeviceConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param driver Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(Output driver) { + $.driver = driver; + return this; + } + + /** + * @param driver Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(String driver) { + return driver(Output.of(driver)); + } + + /** + * @param parameters Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + * @return builder + * + */ + public Builder parameters(Output parameters) { + $.parameters = parameters; + return this; + } + + /** + * @param parameters Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + * @return builder + * + */ + public Builder parameters(JsonElement parameters) { + return parameters(Output.of(parameters)); + } + + public OpaqueDeviceConfigurationArgs build() { + if ($.driver == null) { + throw new MissingRequiredPropertyException("OpaqueDeviceConfigurationArgs", "driver"); + } + if ($.parameters == null) { + throw new MissingRequiredPropertyException("OpaqueDeviceConfigurationArgs", "parameters"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/OpaqueDeviceConfigurationPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/OpaqueDeviceConfigurationPatchArgs.java new file mode 100644 index 0000000000..8d67abaf94 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/OpaqueDeviceConfigurationPatchArgs.java @@ -0,0 +1,149 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + * + */ +public final class OpaqueDeviceConfigurationPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final OpaqueDeviceConfigurationPatchArgs Empty = new OpaqueDeviceConfigurationPatchArgs(); + + /** + * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + @Import(name="driver") + private @Nullable Output driver; + + /** + * @return Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Optional> driver() { + return Optional.ofNullable(this.driver); + } + + /** + * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + @Import(name="parameters") + private @Nullable Output parameters; + + /** + * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Optional> parameters() { + return Optional.ofNullable(this.parameters); + } + + private OpaqueDeviceConfigurationPatchArgs() {} + + private OpaqueDeviceConfigurationPatchArgs(OpaqueDeviceConfigurationPatchArgs $) { + this.driver = $.driver; + this.parameters = $.parameters; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OpaqueDeviceConfigurationPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OpaqueDeviceConfigurationPatchArgs $; + + public Builder() { + $ = new OpaqueDeviceConfigurationPatchArgs(); + } + + public Builder(OpaqueDeviceConfigurationPatchArgs defaults) { + $ = new OpaqueDeviceConfigurationPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param driver Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(@Nullable Output driver) { + $.driver = driver; + return this; + } + + /** + * @param driver Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * @return builder + * + */ + public Builder driver(String driver) { + return driver(Output.of(driver)); + } + + /** + * @param parameters Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + * @return builder + * + */ + public Builder parameters(@Nullable Output parameters) { + $.parameters = parameters; + return this; + } + + /** + * @param parameters Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + * @return builder + * + */ + public Builder parameters(JsonElement parameters) { + return parameters(Output.of(parameters)); + } + + public OpaqueDeviceConfigurationPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimArgs.java new file mode 100644 index 0000000000..15122c2a01 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimArgs.java @@ -0,0 +1,247 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimSpecArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimStatusArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +public final class ResourceClaimArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimArgs Empty = new ResourceClaimArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + public Output spec() { + return this.spec; + } + + /** + * Status describes whether the claim is ready to use and what has been allocated. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return Status describes whether the claim is ready to use and what has been allocated. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + private ResourceClaimArgs() {} + + private ResourceClaimArgs(ResourceClaimArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + this.status = $.status; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimArgs $; + + public Builder() { + $ = new ResourceClaimArgs(); + } + + public Builder(ResourceClaimArgs defaults) { + $ = new ResourceClaimArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Spec describes what is being requested and how to configure it. The spec is immutable. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Spec describes what is being requested and how to configure it. The spec is immutable. + * + * @return builder + * + */ + public Builder spec(ResourceClaimSpecArgs spec) { + return spec(Output.of(spec)); + } + + /** + * @param status Status describes whether the claim is ready to use and what has been allocated. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status Status describes whether the claim is ready to use and what has been allocated. + * + * @return builder + * + */ + public Builder status(ResourceClaimStatusArgs status) { + return status(Output.of(status)); + } + + public ResourceClaimArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("ResourceClaimArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimConsumerReferenceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimConsumerReferenceArgs.java new file mode 100644 index 0000000000..228d6e56f1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimConsumerReferenceArgs.java @@ -0,0 +1,208 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * 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. + * + */ +public final class ResourceClaimConsumerReferenceArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimConsumerReferenceArgs Empty = new ResourceClaimConsumerReferenceArgs(); + + /** + * 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. + * + */ + @Import(name="apiGroup") + private @Nullable Output apiGroup; + + /** + * @return 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. + * + */ + public Optional> apiGroup() { + return Optional.ofNullable(this.apiGroup); + } + + /** + * Name is the name of resource being referenced. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name is the name of resource being referenced. + * + */ + public Output name() { + return this.name; + } + + /** + * Resource is the type of resource being referenced, for example "pods". + * + */ + @Import(name="resource", required=true) + private Output resource; + + /** + * @return Resource is the type of resource being referenced, for example "pods". + * + */ + public Output resource() { + return this.resource; + } + + /** + * UID identifies exactly one incarnation of the resource. + * + */ + @Import(name="uid", required=true) + private Output uid; + + /** + * @return UID identifies exactly one incarnation of the resource. + * + */ + public Output uid() { + return this.uid; + } + + private ResourceClaimConsumerReferenceArgs() {} + + private ResourceClaimConsumerReferenceArgs(ResourceClaimConsumerReferenceArgs $) { + this.apiGroup = $.apiGroup; + this.name = $.name; + this.resource = $.resource; + this.uid = $.uid; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimConsumerReferenceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimConsumerReferenceArgs $; + + public Builder() { + $ = new ResourceClaimConsumerReferenceArgs(); + } + + public Builder(ResourceClaimConsumerReferenceArgs defaults) { + $ = new ResourceClaimConsumerReferenceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiGroup 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. + * + * @return builder + * + */ + public Builder apiGroup(@Nullable Output apiGroup) { + $.apiGroup = apiGroup; + return this; + } + + /** + * @param apiGroup 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. + * + * @return builder + * + */ + public Builder apiGroup(String apiGroup) { + return apiGroup(Output.of(apiGroup)); + } + + /** + * @param name Name is the name of resource being referenced. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name is the name of resource being referenced. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param resource Resource is the type of resource being referenced, for example "pods". + * + * @return builder + * + */ + public Builder resource(Output resource) { + $.resource = resource; + return this; + } + + /** + * @param resource Resource is the type of resource being referenced, for example "pods". + * + * @return builder + * + */ + public Builder resource(String resource) { + return resource(Output.of(resource)); + } + + /** + * @param uid UID identifies exactly one incarnation of the resource. + * + * @return builder + * + */ + public Builder uid(Output uid) { + $.uid = uid; + return this; + } + + /** + * @param uid UID identifies exactly one incarnation of the resource. + * + * @return builder + * + */ + public Builder uid(String uid) { + return uid(Output.of(uid)); + } + + public ResourceClaimConsumerReferenceArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("ResourceClaimConsumerReferenceArgs", "name"); + } + if ($.resource == null) { + throw new MissingRequiredPropertyException("ResourceClaimConsumerReferenceArgs", "resource"); + } + if ($.uid == null) { + throw new MissingRequiredPropertyException("ResourceClaimConsumerReferenceArgs", "uid"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimSpecArgs.java new file mode 100644 index 0000000000..a390c4f51d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimSpecArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClaimArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + * + */ +public final class ResourceClaimSpecArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimSpecArgs Empty = new ResourceClaimSpecArgs(); + + /** + * Devices defines how to request devices. + * + */ + @Import(name="devices") + private @Nullable Output devices; + + /** + * @return Devices defines how to request devices. + * + */ + public Optional> devices() { + return Optional.ofNullable(this.devices); + } + + private ResourceClaimSpecArgs() {} + + private ResourceClaimSpecArgs(ResourceClaimSpecArgs $) { + this.devices = $.devices; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimSpecArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimSpecArgs $; + + public Builder() { + $ = new ResourceClaimSpecArgs(); + } + + public Builder(ResourceClaimSpecArgs defaults) { + $ = new ResourceClaimSpecArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param devices Devices defines how to request devices. + * + * @return builder + * + */ + public Builder devices(@Nullable Output devices) { + $.devices = devices; + return this; + } + + /** + * @param devices Devices defines how to request devices. + * + * @return builder + * + */ + public Builder devices(DeviceClaimArgs devices) { + return devices(Output.of(devices)); + } + + public ResourceClaimSpecArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimSpecPatchArgs.java new file mode 100644 index 0000000000..b6bccbacc7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimSpecPatchArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceClaimPatchArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + * + */ +public final class ResourceClaimSpecPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimSpecPatchArgs Empty = new ResourceClaimSpecPatchArgs(); + + /** + * Devices defines how to request devices. + * + */ + @Import(name="devices") + private @Nullable Output devices; + + /** + * @return Devices defines how to request devices. + * + */ + public Optional> devices() { + return Optional.ofNullable(this.devices); + } + + private ResourceClaimSpecPatchArgs() {} + + private ResourceClaimSpecPatchArgs(ResourceClaimSpecPatchArgs $) { + this.devices = $.devices; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimSpecPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimSpecPatchArgs $; + + public Builder() { + $ = new ResourceClaimSpecPatchArgs(); + } + + public Builder(ResourceClaimSpecPatchArgs defaults) { + $ = new ResourceClaimSpecPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param devices Devices defines how to request devices. + * + * @return builder + * + */ + public Builder devices(@Nullable Output devices) { + $.devices = devices; + return this; + } + + /** + * @param devices Devices defines how to request devices. + * + * @return builder + * + */ + public Builder devices(DeviceClaimPatchArgs devices) { + return devices(Output.of(devices)); + } + + public ResourceClaimSpecPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimStatusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimStatusArgs.java new file mode 100644 index 0000000000..b34c86e18b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimStatusArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.resource.v1beta1.inputs.AllocatedDeviceStatusArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.AllocationResultArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimConsumerReferenceArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + * + */ +public final class ResourceClaimStatusArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimStatusArgs Empty = new ResourceClaimStatusArgs(); + + /** + * Allocation is set once the claim has been allocated successfully. + * + */ + @Import(name="allocation") + private @Nullable Output allocation; + + /** + * @return Allocation is set once the claim has been allocated successfully. + * + */ + public Optional> allocation() { + return Optional.ofNullable(this.allocation); + } + + /** + * Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + @Import(name="devices") + private @Nullable Output> devices; + + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + public Optional>> devices() { + return Optional.ofNullable(this.devices); + } + + /** + * ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + */ + @Import(name="reservedFor") + private @Nullable Output> reservedFor; + + /** + * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + */ + public Optional>> reservedFor() { + return Optional.ofNullable(this.reservedFor); + } + + private ResourceClaimStatusArgs() {} + + private ResourceClaimStatusArgs(ResourceClaimStatusArgs $) { + this.allocation = $.allocation; + this.devices = $.devices; + this.reservedFor = $.reservedFor; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimStatusArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimStatusArgs $; + + public Builder() { + $ = new ResourceClaimStatusArgs(); + } + + public Builder(ResourceClaimStatusArgs defaults) { + $ = new ResourceClaimStatusArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param allocation Allocation is set once the claim has been allocated successfully. + * + * @return builder + * + */ + public Builder allocation(@Nullable Output allocation) { + $.allocation = allocation; + return this; + } + + /** + * @param allocation Allocation is set once the claim has been allocated successfully. + * + * @return builder + * + */ + public Builder allocation(AllocationResultArgs allocation) { + return allocation(Output.of(allocation)); + } + + /** + * @param devices Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + * @return builder + * + */ + public Builder devices(@Nullable Output> devices) { + $.devices = devices; + return this; + } + + /** + * @param devices Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + * @return builder + * + */ + public Builder devices(List devices) { + return devices(Output.of(devices)); + } + + /** + * @param devices Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + * @return builder + * + */ + public Builder devices(AllocatedDeviceStatusArgs... devices) { + return devices(List.of(devices)); + } + + /** + * @param reservedFor ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + * @return builder + * + */ + public Builder reservedFor(@Nullable Output> reservedFor) { + $.reservedFor = reservedFor; + return this; + } + + /** + * @param reservedFor ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + * @return builder + * + */ + public Builder reservedFor(List reservedFor) { + return reservedFor(Output.of(reservedFor)); + } + + /** + * @param reservedFor ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + * @return builder + * + */ + public Builder reservedFor(ResourceClaimConsumerReferenceArgs... reservedFor) { + return reservedFor(List.of(reservedFor)); + } + + public ResourceClaimStatusArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateArgs.java new file mode 100644 index 0000000000..e462673e45 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateArgs.java @@ -0,0 +1,217 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimTemplateSpecArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceClaimTemplate is used to produce ResourceClaim objects. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +public final class ResourceClaimTemplateArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimTemplateArgs Empty = new ResourceClaimTemplateArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + public Output spec() { + return this.spec; + } + + private ResourceClaimTemplateArgs() {} + + private ResourceClaimTemplateArgs(ResourceClaimTemplateArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimTemplateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimTemplateArgs $; + + public Builder() { + $ = new ResourceClaimTemplateArgs(); + } + + public Builder(ResourceClaimTemplateArgs defaults) { + $ = new ResourceClaimTemplateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + * @return builder + * + */ + public Builder spec(ResourceClaimTemplateSpecArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceClaimTemplateArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("ResourceClaimTemplateArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateSpecArgs.java new file mode 100644 index 0000000000..cb732b4ab4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateSpecArgs.java @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimSpecArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + * + */ +public final class ResourceClaimTemplateSpecArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimTemplateSpecArgs Empty = new ResourceClaimTemplateSpecArgs(); + + /** + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + */ + public Output spec() { + return this.spec; + } + + private ResourceClaimTemplateSpecArgs() {} + + private ResourceClaimTemplateSpecArgs(ResourceClaimTemplateSpecArgs $) { + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimTemplateSpecArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimTemplateSpecArgs $; + + public Builder() { + $ = new ResourceClaimTemplateSpecArgs(); + } + + public Builder(ResourceClaimTemplateSpecArgs defaults) { + $ = new ResourceClaimTemplateSpecArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param metadata ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + * @return builder + * + */ + public Builder spec(ResourceClaimSpecArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceClaimTemplateSpecArgs build() { + if ($.spec == null) { + throw new MissingRequiredPropertyException("ResourceClaimTemplateSpecArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateSpecPatchArgs.java new file mode 100644 index 0000000000..f5173a95e3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceClaimTemplateSpecPatchArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceClaimSpecPatchArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + * + */ +public final class ResourceClaimTemplateSpecPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceClaimTemplateSpecPatchArgs Empty = new ResourceClaimTemplateSpecPatchArgs(); + + /** + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + */ + @Import(name="spec") + private @Nullable Output spec; + + /** + * @return Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + */ + public Optional> spec() { + return Optional.ofNullable(this.spec); + } + + private ResourceClaimTemplateSpecPatchArgs() {} + + private ResourceClaimTemplateSpecPatchArgs(ResourceClaimTemplateSpecPatchArgs $) { + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceClaimTemplateSpecPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceClaimTemplateSpecPatchArgs $; + + public Builder() { + $ = new ResourceClaimTemplateSpecPatchArgs(); + } + + public Builder(ResourceClaimTemplateSpecPatchArgs defaults) { + $ = new ResourceClaimTemplateSpecPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param metadata ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + * @return builder + * + */ + public Builder metadata(ObjectMetaPatchArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + * @return builder + * + */ + public Builder spec(@Nullable Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + * @return builder + * + */ + public Builder spec(ResourceClaimSpecPatchArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceClaimTemplateSpecPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourcePoolArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourcePoolArgs.java new file mode 100644 index 0000000000..d18760685b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourcePoolArgs.java @@ -0,0 +1,194 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + + +/** + * ResourcePool describes the pool that ResourceSlices belong to. + * + */ +public final class ResourcePoolArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourcePoolArgs Empty = new ResourcePoolArgs(); + + /** + * 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + */ + @Import(name="generation", required=true) + private Output generation; + + /** + * @return 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + */ + public Output generation() { + return this.generation; + } + + /** + * Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + */ + public Output name() { + return this.name; + } + + /** + * ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + */ + @Import(name="resourceSliceCount", required=true) + private Output resourceSliceCount; + + /** + * @return ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + */ + public Output resourceSliceCount() { + return this.resourceSliceCount; + } + + private ResourcePoolArgs() {} + + private ResourcePoolArgs(ResourcePoolArgs $) { + this.generation = $.generation; + this.name = $.name; + this.resourceSliceCount = $.resourceSliceCount; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourcePoolArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourcePoolArgs $; + + public Builder() { + $ = new ResourcePoolArgs(); + } + + public Builder(ResourcePoolArgs defaults) { + $ = new ResourcePoolArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + * @return builder + * + */ + public Builder generation(Output generation) { + $.generation = generation; + return this; + } + + /** + * @param 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + * @return builder + * + */ + public Builder generation(Integer generation) { + return generation(Output.of(generation)); + } + + /** + * @param name Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param resourceSliceCount ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + * @return builder + * + */ + public Builder resourceSliceCount(Output resourceSliceCount) { + $.resourceSliceCount = resourceSliceCount; + return this; + } + + /** + * @param resourceSliceCount ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + * @return builder + * + */ + public Builder resourceSliceCount(Integer resourceSliceCount) { + return resourceSliceCount(Output.of(resourceSliceCount)); + } + + public ResourcePoolArgs build() { + if ($.generation == null) { + throw new MissingRequiredPropertyException("ResourcePoolArgs", "generation"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("ResourcePoolArgs", "name"); + } + if ($.resourceSliceCount == null) { + throw new MissingRequiredPropertyException("ResourcePoolArgs", "resourceSliceCount"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourcePoolPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourcePoolPatchArgs.java new file mode 100644 index 0000000000..ba5e63d70b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourcePoolPatchArgs.java @@ -0,0 +1,186 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourcePool describes the pool that ResourceSlices belong to. + * + */ +public final class ResourcePoolPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourcePoolPatchArgs Empty = new ResourcePoolPatchArgs(); + + /** + * 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + */ + @Import(name="generation") + private @Nullable Output generation; + + /** + * @return 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + */ + public Optional> generation() { + return Optional.ofNullable(this.generation); + } + + /** + * Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + */ + @Import(name="resourceSliceCount") + private @Nullable Output resourceSliceCount; + + /** + * @return ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + */ + public Optional> resourceSliceCount() { + return Optional.ofNullable(this.resourceSliceCount); + } + + private ResourcePoolPatchArgs() {} + + private ResourcePoolPatchArgs(ResourcePoolPatchArgs $) { + this.generation = $.generation; + this.name = $.name; + this.resourceSliceCount = $.resourceSliceCount; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourcePoolPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourcePoolPatchArgs $; + + public Builder() { + $ = new ResourcePoolPatchArgs(); + } + + public Builder(ResourcePoolPatchArgs defaults) { + $ = new ResourcePoolPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + * @return builder + * + */ + public Builder generation(@Nullable Output generation) { + $.generation = generation; + return this; + } + + /** + * @param 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + * @return builder + * + */ + public Builder generation(Integer generation) { + return generation(Output.of(generation)); + } + + /** + * @param name Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param resourceSliceCount ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + * @return builder + * + */ + public Builder resourceSliceCount(@Nullable Output resourceSliceCount) { + $.resourceSliceCount = resourceSliceCount; + return this; + } + + /** + * @param resourceSliceCount ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + * @return builder + * + */ + public Builder resourceSliceCount(Integer resourceSliceCount) { + return resourceSliceCount(Output.of(resourceSliceCount)); + } + + public ResourcePoolPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceArgs.java new file mode 100644 index 0000000000..c5b3f677ec --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceArgs.java @@ -0,0 +1,225 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.core.internal.Codegen; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourceSliceSpecArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + * + */ +public final class ResourceSliceArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceSliceArgs Empty = new ResourceSliceArgs(); + + /** + * 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 + * + */ + @Import(name="apiVersion") + private @Nullable Output apiVersion; + + /** + * @return 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 + * + */ + public Optional> apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + + /** + * 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 + * + */ + @Import(name="kind") + private @Nullable Output kind; + + /** + * @return 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 + * + */ + public Optional> kind() { + return Optional.ofNullable(this.kind); + } + + /** + * Standard object metadata + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Standard object metadata + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + @Import(name="spec", required=true) + private Output spec; + + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public Output spec() { + return this.spec; + } + + private ResourceSliceArgs() {} + + private ResourceSliceArgs(ResourceSliceArgs $) { + this.apiVersion = $.apiVersion; + this.kind = $.kind; + this.metadata = $.metadata; + this.spec = $.spec; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceSliceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceSliceArgs $; + + public Builder() { + $ = new ResourceSliceArgs(); + } + + public Builder(ResourceSliceArgs defaults) { + $ = new ResourceSliceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(@Nullable Output apiVersion) { + $.apiVersion = apiVersion; + return this; + } + + /** + * @param apiVersion 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 + * + * @return builder + * + */ + public Builder apiVersion(String apiVersion) { + return apiVersion(Output.of(apiVersion)); + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(@Nullable Output kind) { + $.kind = kind; + return this; + } + + /** + * @param 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 + * + * @return builder + * + */ + public Builder kind(String kind) { + return kind(Output.of(kind)); + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Standard object metadata + * + * @return builder + * + */ + public Builder metadata(ObjectMetaArgs metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param spec Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(Output spec) { + $.spec = spec; + return this; + } + + /** + * @param spec Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + * @return builder + * + */ + public Builder spec(ResourceSliceSpecArgs spec) { + return spec(Output.of(spec)); + } + + public ResourceSliceArgs build() { + $.apiVersion = Codegen.stringProp("apiVersion").output().arg($.apiVersion).getNullable(); + $.kind = Codegen.stringProp("kind").output().arg($.kind).getNullable(); + if ($.spec == null) { + throw new MissingRequiredPropertyException("ResourceSliceArgs", "spec"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceSpecArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceSpecArgs.java new file mode 100644 index 0000000000..a1b750899a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceSpecArgs.java @@ -0,0 +1,352 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.core.v1.inputs.NodeSelectorArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DeviceArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourcePoolArgs; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + * + */ +public final class ResourceSliceSpecArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceSliceSpecArgs Empty = new ResourceSliceSpecArgs(); + + /** + * AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + @Import(name="allNodes") + private @Nullable Output allNodes; + + /** + * @return AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + public Optional> allNodes() { + return Optional.ofNullable(this.allNodes); + } + + /** + * Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + */ + @Import(name="devices") + private @Nullable Output> devices; + + /** + * @return Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + */ + public Optional>> devices() { + return Optional.ofNullable(this.devices); + } + + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + */ + @Import(name="driver", required=true) + private Output driver; + + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + */ + public Output driver() { + return this.driver; + } + + /** + * 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + */ + @Import(name="nodeName") + private @Nullable Output nodeName; + + /** + * @return 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + */ + public Optional> nodeName() { + return Optional.ofNullable(this.nodeName); + } + + /** + * NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + @Import(name="nodeSelector") + private @Nullable Output nodeSelector; + + /** + * @return NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + public Optional> nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + /** + * Pool describes the pool that this ResourceSlice belongs to. + * + */ + @Import(name="pool", required=true) + private Output pool; + + /** + * @return Pool describes the pool that this ResourceSlice belongs to. + * + */ + public Output pool() { + return this.pool; + } + + private ResourceSliceSpecArgs() {} + + private ResourceSliceSpecArgs(ResourceSliceSpecArgs $) { + this.allNodes = $.allNodes; + this.devices = $.devices; + this.driver = $.driver; + this.nodeName = $.nodeName; + this.nodeSelector = $.nodeSelector; + this.pool = $.pool; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceSliceSpecArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceSliceSpecArgs $; + + public Builder() { + $ = new ResourceSliceSpecArgs(); + } + + public Builder(ResourceSliceSpecArgs defaults) { + $ = new ResourceSliceSpecArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param allNodes AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + * @return builder + * + */ + public Builder allNodes(@Nullable Output allNodes) { + $.allNodes = allNodes; + return this; + } + + /** + * @param allNodes AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + * @return builder + * + */ + public Builder allNodes(Boolean allNodes) { + return allNodes(Output.of(allNodes)); + } + + /** + * @param devices Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + * @return builder + * + */ + public Builder devices(@Nullable Output> devices) { + $.devices = devices; + return this; + } + + /** + * @param devices Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + * @return builder + * + */ + public Builder devices(List devices) { + return devices(Output.of(devices)); + } + + /** + * @param devices Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + * @return builder + * + */ + public Builder devices(DeviceArgs... devices) { + return devices(List.of(devices)); + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + * @return builder + * + */ + public Builder driver(Output driver) { + $.driver = driver; + return this; + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + * @return builder + * + */ + public Builder driver(String driver) { + return driver(Output.of(driver)); + } + + /** + * @param nodeName 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + * @return builder + * + */ + public Builder nodeName(@Nullable Output nodeName) { + $.nodeName = nodeName; + return this; + } + + /** + * @param nodeName 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + * @return builder + * + */ + public Builder nodeName(String nodeName) { + return nodeName(Output.of(nodeName)); + } + + /** + * @param nodeSelector NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + * @return builder + * + */ + public Builder nodeSelector(@Nullable Output nodeSelector) { + $.nodeSelector = nodeSelector; + return this; + } + + /** + * @param nodeSelector NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + * @return builder + * + */ + public Builder nodeSelector(NodeSelectorArgs nodeSelector) { + return nodeSelector(Output.of(nodeSelector)); + } + + /** + * @param pool Pool describes the pool that this ResourceSlice belongs to. + * + * @return builder + * + */ + public Builder pool(Output pool) { + $.pool = pool; + return this; + } + + /** + * @param pool Pool describes the pool that this ResourceSlice belongs to. + * + * @return builder + * + */ + public Builder pool(ResourcePoolArgs pool) { + return pool(Output.of(pool)); + } + + public ResourceSliceSpecArgs build() { + if ($.driver == null) { + throw new MissingRequiredPropertyException("ResourceSliceSpecArgs", "driver"); + } + if ($.pool == null) { + throw new MissingRequiredPropertyException("ResourceSliceSpecArgs", "pool"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceSpecPatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceSpecPatchArgs.java new file mode 100644 index 0000000000..1814e4df60 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/inputs/ResourceSliceSpecPatchArgs.java @@ -0,0 +1,345 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.core.v1.inputs.NodeSelectorPatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.DevicePatchArgs; +import com.pulumi.kubernetes.resource.v1beta1.inputs.ResourcePoolPatchArgs; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + * + */ +public final class ResourceSliceSpecPatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceSliceSpecPatchArgs Empty = new ResourceSliceSpecPatchArgs(); + + /** + * AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + @Import(name="allNodes") + private @Nullable Output allNodes; + + /** + * @return AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + public Optional> allNodes() { + return Optional.ofNullable(this.allNodes); + } + + /** + * Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + */ + @Import(name="devices") + private @Nullable Output> devices; + + /** + * @return Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + */ + public Optional>> devices() { + return Optional.ofNullable(this.devices); + } + + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + */ + @Import(name="driver") + private @Nullable Output driver; + + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + */ + public Optional> driver() { + return Optional.ofNullable(this.driver); + } + + /** + * 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + */ + @Import(name="nodeName") + private @Nullable Output nodeName; + + /** + * @return 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + */ + public Optional> nodeName() { + return Optional.ofNullable(this.nodeName); + } + + /** + * NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + @Import(name="nodeSelector") + private @Nullable Output nodeSelector; + + /** + * @return NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + public Optional> nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + /** + * Pool describes the pool that this ResourceSlice belongs to. + * + */ + @Import(name="pool") + private @Nullable Output pool; + + /** + * @return Pool describes the pool that this ResourceSlice belongs to. + * + */ + public Optional> pool() { + return Optional.ofNullable(this.pool); + } + + private ResourceSliceSpecPatchArgs() {} + + private ResourceSliceSpecPatchArgs(ResourceSliceSpecPatchArgs $) { + this.allNodes = $.allNodes; + this.devices = $.devices; + this.driver = $.driver; + this.nodeName = $.nodeName; + this.nodeSelector = $.nodeSelector; + this.pool = $.pool; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceSliceSpecPatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceSliceSpecPatchArgs $; + + public Builder() { + $ = new ResourceSliceSpecPatchArgs(); + } + + public Builder(ResourceSliceSpecPatchArgs defaults) { + $ = new ResourceSliceSpecPatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param allNodes AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + * @return builder + * + */ + public Builder allNodes(@Nullable Output allNodes) { + $.allNodes = allNodes; + return this; + } + + /** + * @param allNodes AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + * @return builder + * + */ + public Builder allNodes(Boolean allNodes) { + return allNodes(Output.of(allNodes)); + } + + /** + * @param devices Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + * @return builder + * + */ + public Builder devices(@Nullable Output> devices) { + $.devices = devices; + return this; + } + + /** + * @param devices Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + * @return builder + * + */ + public Builder devices(List devices) { + return devices(Output.of(devices)); + } + + /** + * @param devices Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + * @return builder + * + */ + public Builder devices(DevicePatchArgs... devices) { + return devices(List.of(devices)); + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + * @return builder + * + */ + public Builder driver(@Nullable Output driver) { + $.driver = driver; + return this; + } + + /** + * @param 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + * @return builder + * + */ + public Builder driver(String driver) { + return driver(Output.of(driver)); + } + + /** + * @param nodeName 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + * @return builder + * + */ + public Builder nodeName(@Nullable Output nodeName) { + $.nodeName = nodeName; + return this; + } + + /** + * @param nodeName 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + * @return builder + * + */ + public Builder nodeName(String nodeName) { + return nodeName(Output.of(nodeName)); + } + + /** + * @param nodeSelector NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + * @return builder + * + */ + public Builder nodeSelector(@Nullable Output nodeSelector) { + $.nodeSelector = nodeSelector; + return this; + } + + /** + * @param nodeSelector NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + * @return builder + * + */ + public Builder nodeSelector(NodeSelectorPatchArgs nodeSelector) { + return nodeSelector(Output.of(nodeSelector)); + } + + /** + * @param pool Pool describes the pool that this ResourceSlice belongs to. + * + * @return builder + * + */ + public Builder pool(@Nullable Output pool) { + $.pool = pool; + return this; + } + + /** + * @param pool Pool describes the pool that this ResourceSlice belongs to. + * + * @return builder + * + */ + public Builder pool(ResourcePoolPatchArgs pool) { + return pool(Output.of(pool)); + } + + public ResourceSliceSpecPatchArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocatedDeviceStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocatedDeviceStatus.java new file mode 100644 index 0000000000..3cb0de59ae --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocatedDeviceStatus.java @@ -0,0 +1,188 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.outputs.Condition; +import com.pulumi.kubernetes.resource.v1beta1.outputs.NetworkDeviceData; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AllocatedDeviceStatus { + /** + * @return 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. + * + */ + private @Nullable List conditions; + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + private @Nullable JsonElement data; + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + private String device; + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + private String driver; + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + private @Nullable NetworkDeviceData networkData; + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + private String pool; + + private AllocatedDeviceStatus() {} + /** + * @return 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. + * + */ + public List conditions() { + return this.conditions == null ? List.of() : this.conditions; + } + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Optional data() { + return Optional.ofNullable(this.data); + } + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public String device() { + return this.device; + } + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public String driver() { + return this.driver; + } + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + public Optional networkData() { + return Optional.ofNullable(this.networkData); + } + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public String pool() { + return this.pool; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AllocatedDeviceStatus defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List conditions; + private @Nullable JsonElement data; + private String device; + private String driver; + private @Nullable NetworkDeviceData networkData; + private String pool; + public Builder() {} + public Builder(AllocatedDeviceStatus defaults) { + Objects.requireNonNull(defaults); + this.conditions = defaults.conditions; + this.data = defaults.data; + this.device = defaults.device; + this.driver = defaults.driver; + this.networkData = defaults.networkData; + this.pool = defaults.pool; + } + + @CustomType.Setter + public Builder conditions(@Nullable List conditions) { + + this.conditions = conditions; + return this; + } + public Builder conditions(Condition... conditions) { + return conditions(List.of(conditions)); + } + @CustomType.Setter + public Builder data(@Nullable JsonElement data) { + + this.data = data; + return this; + } + @CustomType.Setter + public Builder device(String device) { + if (device == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatus", "device"); + } + this.device = device; + return this; + } + @CustomType.Setter + public Builder driver(String driver) { + if (driver == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatus", "driver"); + } + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder networkData(@Nullable NetworkDeviceData networkData) { + + this.networkData = networkData; + return this; + } + @CustomType.Setter + public Builder pool(String pool) { + if (pool == null) { + throw new MissingRequiredPropertyException("AllocatedDeviceStatus", "pool"); + } + this.pool = pool; + return this; + } + public AllocatedDeviceStatus build() { + final var _resultValue = new AllocatedDeviceStatus(); + _resultValue.conditions = conditions; + _resultValue.data = data; + _resultValue.device = device; + _resultValue.driver = driver; + _resultValue.networkData = networkData; + _resultValue.pool = pool; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocatedDeviceStatusPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocatedDeviceStatusPatch.java new file mode 100644 index 0000000000..3504d46b1d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocatedDeviceStatusPatch.java @@ -0,0 +1,181 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.meta.v1.outputs.ConditionPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.NetworkDeviceDataPatch; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AllocatedDeviceStatusPatch { + /** + * @return 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. + * + */ + private @Nullable List conditions; + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + private @Nullable JsonElement data; + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + private @Nullable String device; + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + private @Nullable String driver; + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + private @Nullable NetworkDeviceDataPatch networkData; + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + private @Nullable String pool; + + private AllocatedDeviceStatusPatch() {} + /** + * @return 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. + * + */ + public List conditions() { + return this.conditions == null ? List.of() : this.conditions; + } + /** + * @return Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Optional data() { + return Optional.ofNullable(this.data); + } + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public Optional device() { + return Optional.ofNullable(this.device); + } + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Optional driver() { + return Optional.ofNullable(this.driver); + } + /** + * @return NetworkData contains network-related information specific to the device. + * + */ + public Optional networkData() { + return Optional.ofNullable(this.networkData); + } + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public Optional pool() { + return Optional.ofNullable(this.pool); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AllocatedDeviceStatusPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List conditions; + private @Nullable JsonElement data; + private @Nullable String device; + private @Nullable String driver; + private @Nullable NetworkDeviceDataPatch networkData; + private @Nullable String pool; + public Builder() {} + public Builder(AllocatedDeviceStatusPatch defaults) { + Objects.requireNonNull(defaults); + this.conditions = defaults.conditions; + this.data = defaults.data; + this.device = defaults.device; + this.driver = defaults.driver; + this.networkData = defaults.networkData; + this.pool = defaults.pool; + } + + @CustomType.Setter + public Builder conditions(@Nullable List conditions) { + + this.conditions = conditions; + return this; + } + public Builder conditions(ConditionPatch... conditions) { + return conditions(List.of(conditions)); + } + @CustomType.Setter + public Builder data(@Nullable JsonElement data) { + + this.data = data; + return this; + } + @CustomType.Setter + public Builder device(@Nullable String device) { + + this.device = device; + return this; + } + @CustomType.Setter + public Builder driver(@Nullable String driver) { + + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder networkData(@Nullable NetworkDeviceDataPatch networkData) { + + this.networkData = networkData; + return this; + } + @CustomType.Setter + public Builder pool(@Nullable String pool) { + + this.pool = pool; + return this; + } + public AllocatedDeviceStatusPatch build() { + final var _resultValue = new AllocatedDeviceStatusPatch(); + _resultValue.conditions = conditions; + _resultValue.data = data; + _resultValue.device = device; + _resultValue.driver = driver; + _resultValue.networkData = networkData; + _resultValue.pool = pool; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocationResult.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocationResult.java new file mode 100644 index 0000000000..e35e76aae4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocationResult.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.core.v1.outputs.NodeSelector; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceAllocationResult; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AllocationResult { + /** + * @return Devices is the result of allocating devices. + * + */ + private @Nullable DeviceAllocationResult devices; + /** + * @return NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + * + */ + private @Nullable NodeSelector nodeSelector; + + private AllocationResult() {} + /** + * @return Devices is the result of allocating devices. + * + */ + public Optional devices() { + return Optional.ofNullable(this.devices); + } + /** + * @return NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + * + */ + public Optional nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AllocationResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable DeviceAllocationResult devices; + private @Nullable NodeSelector nodeSelector; + public Builder() {} + public Builder(AllocationResult defaults) { + Objects.requireNonNull(defaults); + this.devices = defaults.devices; + this.nodeSelector = defaults.nodeSelector; + } + + @CustomType.Setter + public Builder devices(@Nullable DeviceAllocationResult devices) { + + this.devices = devices; + return this; + } + @CustomType.Setter + public Builder nodeSelector(@Nullable NodeSelector nodeSelector) { + + this.nodeSelector = nodeSelector; + return this; + } + public AllocationResult build() { + final var _resultValue = new AllocationResult(); + _resultValue.devices = devices; + _resultValue.nodeSelector = nodeSelector; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocationResultPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocationResultPatch.java new file mode 100644 index 0000000000..98b09d2ce0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/AllocationResultPatch.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.core.v1.outputs.NodeSelectorPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceAllocationResultPatch; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AllocationResultPatch { + /** + * @return Devices is the result of allocating devices. + * + */ + private @Nullable DeviceAllocationResultPatch devices; + /** + * @return NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + * + */ + private @Nullable NodeSelectorPatch nodeSelector; + + private AllocationResultPatch() {} + /** + * @return Devices is the result of allocating devices. + * + */ + public Optional devices() { + return Optional.ofNullable(this.devices); + } + /** + * @return NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + * + */ + public Optional nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AllocationResultPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable DeviceAllocationResultPatch devices; + private @Nullable NodeSelectorPatch nodeSelector; + public Builder() {} + public Builder(AllocationResultPatch defaults) { + Objects.requireNonNull(defaults); + this.devices = defaults.devices; + this.nodeSelector = defaults.nodeSelector; + } + + @CustomType.Setter + public Builder devices(@Nullable DeviceAllocationResultPatch devices) { + + this.devices = devices; + return this; + } + @CustomType.Setter + public Builder nodeSelector(@Nullable NodeSelectorPatch nodeSelector) { + + this.nodeSelector = nodeSelector; + return this; + } + public AllocationResultPatch build() { + final var _resultValue = new AllocationResultPatch(); + _resultValue.devices = devices; + _resultValue.nodeSelector = nodeSelector; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/BasicDevice.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/BasicDevice.java new file mode 100644 index 0000000000..19d8505b8b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/BasicDevice.java @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceAttribute; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceCapacity; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class BasicDevice { + /** + * @return Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + private @Nullable Map attributes; + /** + * @return Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + private @Nullable Map capacity; + + private BasicDevice() {} + /** + * @return Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + public Map attributes() { + return this.attributes == null ? Map.of() : this.attributes; + } + /** + * @return Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + public Map capacity() { + return this.capacity == null ? Map.of() : this.capacity; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BasicDevice defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Map attributes; + private @Nullable Map capacity; + public Builder() {} + public Builder(BasicDevice defaults) { + Objects.requireNonNull(defaults); + this.attributes = defaults.attributes; + this.capacity = defaults.capacity; + } + + @CustomType.Setter + public Builder attributes(@Nullable Map attributes) { + + this.attributes = attributes; + return this; + } + @CustomType.Setter + public Builder capacity(@Nullable Map capacity) { + + this.capacity = capacity; + return this; + } + public BasicDevice build() { + final var _resultValue = new BasicDevice(); + _resultValue.attributes = attributes; + _resultValue.capacity = capacity; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/BasicDevicePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/BasicDevicePatch.java new file mode 100644 index 0000000000..d08ae03132 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/BasicDevicePatch.java @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceAttribute; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceCapacity; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class BasicDevicePatch { + /** + * @return Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + private @Nullable Map attributes; + /** + * @return Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + private @Nullable Map capacity; + + private BasicDevicePatch() {} + /** + * @return Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + public Map attributes() { + return this.attributes == null ? Map.of() : this.attributes; + } + /** + * @return Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + * + */ + public Map capacity() { + return this.capacity == null ? Map.of() : this.capacity; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BasicDevicePatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Map attributes; + private @Nullable Map capacity; + public Builder() {} + public Builder(BasicDevicePatch defaults) { + Objects.requireNonNull(defaults); + this.attributes = defaults.attributes; + this.capacity = defaults.capacity; + } + + @CustomType.Setter + public Builder attributes(@Nullable Map attributes) { + + this.attributes = attributes; + return this; + } + @CustomType.Setter + public Builder capacity(@Nullable Map capacity) { + + this.capacity = capacity; + return this; + } + public BasicDevicePatch build() { + final var _resultValue = new BasicDevicePatch(); + _resultValue.attributes = attributes; + _resultValue.capacity = capacity; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/CELDeviceSelector.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/CELDeviceSelector.java new file mode 100644 index 0000000000..b0845698f2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/CELDeviceSelector.java @@ -0,0 +1,114 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class CELDeviceSelector { + /** + * @return 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + */ + private String expression; + + private CELDeviceSelector() {} + /** + * @return 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + */ + public String expression() { + return this.expression; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(CELDeviceSelector defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String expression; + public Builder() {} + public Builder(CELDeviceSelector defaults) { + Objects.requireNonNull(defaults); + this.expression = defaults.expression; + } + + @CustomType.Setter + public Builder expression(String expression) { + if (expression == null) { + throw new MissingRequiredPropertyException("CELDeviceSelector", "expression"); + } + this.expression = expression; + return this; + } + public CELDeviceSelector build() { + final var _resultValue = new CELDeviceSelector(); + _resultValue.expression = expression; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/CELDeviceSelectorPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/CELDeviceSelectorPatch.java new file mode 100644 index 0000000000..2c8d21d837 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/CELDeviceSelectorPatch.java @@ -0,0 +1,113 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class CELDeviceSelectorPatch { + /** + * @return 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + */ + private @Nullable String expression; + + private CELDeviceSelectorPatch() {} + /** + * @return 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + * + */ + public Optional expression() { + return Optional.ofNullable(this.expression); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(CELDeviceSelectorPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String expression; + public Builder() {} + public Builder(CELDeviceSelectorPatch defaults) { + Objects.requireNonNull(defaults); + this.expression = defaults.expression; + } + + @CustomType.Setter + public Builder expression(@Nullable String expression) { + + this.expression = expression; + return this; + } + public CELDeviceSelectorPatch build() { + final var _resultValue = new CELDeviceSelectorPatch(); + _resultValue.expression = expression; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/Device.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/Device.java new file mode 100644 index 0000000000..abeb384279 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/Device.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.resource.v1beta1.outputs.BasicDevice; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class Device { + /** + * @return Basic defines one device instance. + * + */ + private @Nullable BasicDevice basic; + /** + * @return Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + */ + private String name; + + private Device() {} + /** + * @return Basic defines one device instance. + * + */ + public Optional basic() { + return Optional.ofNullable(this.basic); + } + /** + * @return Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + */ + public String name() { + return this.name; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(Device defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable BasicDevice basic; + private String name; + public Builder() {} + public Builder(Device defaults) { + Objects.requireNonNull(defaults); + this.basic = defaults.basic; + this.name = defaults.name; + } + + @CustomType.Setter + public Builder basic(@Nullable BasicDevice basic) { + + this.basic = basic; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("Device", "name"); + } + this.name = name; + return this; + } + public Device build() { + final var _resultValue = new Device(); + _resultValue.basic = basic; + _resultValue.name = name; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationConfiguration.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationConfiguration.java new file mode 100644 index 0000000000..77084735b8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationConfiguration.java @@ -0,0 +1,107 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.resource.v1beta1.outputs.OpaqueDeviceConfiguration; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceAllocationConfiguration { + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + private @Nullable OpaqueDeviceConfiguration opaque; + /** + * @return Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + */ + private @Nullable List requests; + /** + * @return 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. + * + */ + private String source; + + private DeviceAllocationConfiguration() {} + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional opaque() { + return Optional.ofNullable(this.opaque); + } + /** + * @return Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + */ + public List requests() { + return this.requests == null ? List.of() : this.requests; + } + /** + * @return 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. + * + */ + public String source() { + return this.source; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceAllocationConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable OpaqueDeviceConfiguration opaque; + private @Nullable List requests; + private String source; + public Builder() {} + public Builder(DeviceAllocationConfiguration defaults) { + Objects.requireNonNull(defaults); + this.opaque = defaults.opaque; + this.requests = defaults.requests; + this.source = defaults.source; + } + + @CustomType.Setter + public Builder opaque(@Nullable OpaqueDeviceConfiguration opaque) { + + this.opaque = opaque; + return this; + } + @CustomType.Setter + public Builder requests(@Nullable List requests) { + + this.requests = requests; + return this; + } + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + @CustomType.Setter + public Builder source(String source) { + if (source == null) { + throw new MissingRequiredPropertyException("DeviceAllocationConfiguration", "source"); + } + this.source = source; + return this; + } + public DeviceAllocationConfiguration build() { + final var _resultValue = new DeviceAllocationConfiguration(); + _resultValue.opaque = opaque; + _resultValue.requests = requests; + _resultValue.source = source; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationConfigurationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationConfigurationPatch.java new file mode 100644 index 0000000000..007368340f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationConfigurationPatch.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.OpaqueDeviceConfigurationPatch; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceAllocationConfigurationPatch { + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + private @Nullable OpaqueDeviceConfigurationPatch opaque; + /** + * @return Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + */ + private @Nullable List requests; + /** + * @return 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. + * + */ + private @Nullable String source; + + private DeviceAllocationConfigurationPatch() {} + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional opaque() { + return Optional.ofNullable(this.opaque); + } + /** + * @return Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + * + */ + public List requests() { + return this.requests == null ? List.of() : this.requests; + } + /** + * @return 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. + * + */ + public Optional source() { + return Optional.ofNullable(this.source); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceAllocationConfigurationPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable OpaqueDeviceConfigurationPatch opaque; + private @Nullable List requests; + private @Nullable String source; + public Builder() {} + public Builder(DeviceAllocationConfigurationPatch defaults) { + Objects.requireNonNull(defaults); + this.opaque = defaults.opaque; + this.requests = defaults.requests; + this.source = defaults.source; + } + + @CustomType.Setter + public Builder opaque(@Nullable OpaqueDeviceConfigurationPatch opaque) { + + this.opaque = opaque; + return this; + } + @CustomType.Setter + public Builder requests(@Nullable List requests) { + + this.requests = requests; + return this; + } + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + @CustomType.Setter + public Builder source(@Nullable String source) { + + this.source = source; + return this; + } + public DeviceAllocationConfigurationPatch build() { + final var _resultValue = new DeviceAllocationConfigurationPatch(); + _resultValue.opaque = opaque; + _resultValue.requests = requests; + _resultValue.source = source; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationResult.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationResult.java new file mode 100644 index 0000000000..315fe75bba --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationResult.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceAllocationConfiguration; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceRequestAllocationResult; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceAllocationResult { + /** + * @return This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + */ + private @Nullable List config; + /** + * @return Results lists all allocated devices. + * + */ + private @Nullable List results; + + private DeviceAllocationResult() {} + /** + * @return This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + */ + public List config() { + return this.config == null ? List.of() : this.config; + } + /** + * @return Results lists all allocated devices. + * + */ + public List results() { + return this.results == null ? List.of() : this.results; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceAllocationResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List config; + private @Nullable List results; + public Builder() {} + public Builder(DeviceAllocationResult defaults) { + Objects.requireNonNull(defaults); + this.config = defaults.config; + this.results = defaults.results; + } + + @CustomType.Setter + public Builder config(@Nullable List config) { + + this.config = config; + return this; + } + public Builder config(DeviceAllocationConfiguration... config) { + return config(List.of(config)); + } + @CustomType.Setter + public Builder results(@Nullable List results) { + + this.results = results; + return this; + } + public Builder results(DeviceRequestAllocationResult... results) { + return results(List.of(results)); + } + public DeviceAllocationResult build() { + final var _resultValue = new DeviceAllocationResult(); + _resultValue.config = config; + _resultValue.results = results; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationResultPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationResultPatch.java new file mode 100644 index 0000000000..09a340c3b1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAllocationResultPatch.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceAllocationConfigurationPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceRequestAllocationResultPatch; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceAllocationResultPatch { + /** + * @return This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + */ + private @Nullable List config; + /** + * @return Results lists all allocated devices. + * + */ + private @Nullable List results; + + private DeviceAllocationResultPatch() {} + /** + * @return This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + * + */ + public List config() { + return this.config == null ? List.of() : this.config; + } + /** + * @return Results lists all allocated devices. + * + */ + public List results() { + return this.results == null ? List.of() : this.results; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceAllocationResultPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List config; + private @Nullable List results; + public Builder() {} + public Builder(DeviceAllocationResultPatch defaults) { + Objects.requireNonNull(defaults); + this.config = defaults.config; + this.results = defaults.results; + } + + @CustomType.Setter + public Builder config(@Nullable List config) { + + this.config = config; + return this; + } + public Builder config(DeviceAllocationConfigurationPatch... config) { + return config(List.of(config)); + } + @CustomType.Setter + public Builder results(@Nullable List results) { + + this.results = results; + return this; + } + public Builder results(DeviceRequestAllocationResultPatch... results) { + return results(List.of(results)); + } + public DeviceAllocationResultPatch build() { + final var _resultValue = new DeviceAllocationResultPatch(); + _resultValue.config = config; + _resultValue.results = results; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAttribute.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAttribute.java new file mode 100644 index 0000000000..1c35489866 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceAttribute.java @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceAttribute { + /** + * @return BoolValue is a true/false value. + * + */ + private @Nullable Boolean bool; + /** + * @return IntValue is a number. + * + */ + private @Nullable Integer int_; + /** + * @return StringValue is a string. Must not be longer than 64 characters. + * + */ + private @Nullable String string; + /** + * @return VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + * + */ + private @Nullable String version; + + private DeviceAttribute() {} + /** + * @return BoolValue is a true/false value. + * + */ + public Optional bool() { + return Optional.ofNullable(this.bool); + } + /** + * @return IntValue is a number. + * + */ + public Optional int_() { + return Optional.ofNullable(this.int_); + } + /** + * @return StringValue is a string. Must not be longer than 64 characters. + * + */ + public Optional string() { + return Optional.ofNullable(this.string); + } + /** + * @return VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + * + */ + public Optional version() { + return Optional.ofNullable(this.version); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceAttribute defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean bool; + private @Nullable Integer int_; + private @Nullable String string; + private @Nullable String version; + public Builder() {} + public Builder(DeviceAttribute defaults) { + Objects.requireNonNull(defaults); + this.bool = defaults.bool; + this.int_ = defaults.int_; + this.string = defaults.string; + this.version = defaults.version; + } + + @CustomType.Setter + public Builder bool(@Nullable Boolean bool) { + + this.bool = bool; + return this; + } + @CustomType.Setter("int") + public Builder int_(@Nullable Integer int_) { + + this.int_ = int_; + return this; + } + @CustomType.Setter + public Builder string(@Nullable String string) { + + this.string = string; + return this; + } + @CustomType.Setter + public Builder version(@Nullable String version) { + + this.version = version; + return this; + } + public DeviceAttribute build() { + final var _resultValue = new DeviceAttribute(); + _resultValue.bool = bool; + _resultValue.int_ = int_; + _resultValue.string = string; + _resultValue.version = version; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceCapacity.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceCapacity.java new file mode 100644 index 0000000000..0d679921e7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceCapacity.java @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class DeviceCapacity { + /** + * @return Value defines how much of a certain device capacity is available. + * + */ + private String value; + + private DeviceCapacity() {} + /** + * @return Value defines how much of a certain device capacity is available. + * + */ + public String value() { + return this.value; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceCapacity defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String value; + public Builder() {} + public Builder(DeviceCapacity defaults) { + Objects.requireNonNull(defaults); + this.value = defaults.value; + } + + @CustomType.Setter + public Builder value(String value) { + if (value == null) { + throw new MissingRequiredPropertyException("DeviceCapacity", "value"); + } + this.value = value; + return this; + } + public DeviceCapacity build() { + final var _resultValue = new DeviceCapacity(); + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaim.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaim.java new file mode 100644 index 0000000000..8f753da73f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaim.java @@ -0,0 +1,110 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClaimConfiguration; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceConstraint; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceRequest; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClaim { + /** + * @return This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + */ + private @Nullable List config; + /** + * @return These constraints must be satisfied by the set of devices that get allocated for the claim. + * + */ + private @Nullable List constraints; + /** + * @return Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + */ + private @Nullable List requests; + + private DeviceClaim() {} + /** + * @return This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + */ + public List config() { + return this.config == null ? List.of() : this.config; + } + /** + * @return These constraints must be satisfied by the set of devices that get allocated for the claim. + * + */ + public List constraints() { + return this.constraints == null ? List.of() : this.constraints; + } + /** + * @return Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + */ + public List requests() { + return this.requests == null ? List.of() : this.requests; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClaim defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List config; + private @Nullable List constraints; + private @Nullable List requests; + public Builder() {} + public Builder(DeviceClaim defaults) { + Objects.requireNonNull(defaults); + this.config = defaults.config; + this.constraints = defaults.constraints; + this.requests = defaults.requests; + } + + @CustomType.Setter + public Builder config(@Nullable List config) { + + this.config = config; + return this; + } + public Builder config(DeviceClaimConfiguration... config) { + return config(List.of(config)); + } + @CustomType.Setter + public Builder constraints(@Nullable List constraints) { + + this.constraints = constraints; + return this; + } + public Builder constraints(DeviceConstraint... constraints) { + return constraints(List.of(constraints)); + } + @CustomType.Setter + public Builder requests(@Nullable List requests) { + + this.requests = requests; + return this; + } + public Builder requests(DeviceRequest... requests) { + return requests(List.of(requests)); + } + public DeviceClaim build() { + final var _resultValue = new DeviceClaim(); + _resultValue.config = config; + _resultValue.constraints = constraints; + _resultValue.requests = requests; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimConfiguration.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimConfiguration.java new file mode 100644 index 0000000000..f4fa8acfb2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimConfiguration.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.OpaqueDeviceConfiguration; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClaimConfiguration { + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + private @Nullable OpaqueDeviceConfiguration opaque; + /** + * @return Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + */ + private @Nullable List requests; + + private DeviceClaimConfiguration() {} + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional opaque() { + return Optional.ofNullable(this.opaque); + } + /** + * @return Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + */ + public List requests() { + return this.requests == null ? List.of() : this.requests; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClaimConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable OpaqueDeviceConfiguration opaque; + private @Nullable List requests; + public Builder() {} + public Builder(DeviceClaimConfiguration defaults) { + Objects.requireNonNull(defaults); + this.opaque = defaults.opaque; + this.requests = defaults.requests; + } + + @CustomType.Setter + public Builder opaque(@Nullable OpaqueDeviceConfiguration opaque) { + + this.opaque = opaque; + return this; + } + @CustomType.Setter + public Builder requests(@Nullable List requests) { + + this.requests = requests; + return this; + } + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + public DeviceClaimConfiguration build() { + final var _resultValue = new DeviceClaimConfiguration(); + _resultValue.opaque = opaque; + _resultValue.requests = requests; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimConfigurationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimConfigurationPatch.java new file mode 100644 index 0000000000..cc52ae05e0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimConfigurationPatch.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.OpaqueDeviceConfigurationPatch; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClaimConfigurationPatch { + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + private @Nullable OpaqueDeviceConfigurationPatch opaque; + /** + * @return Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + */ + private @Nullable List requests; + + private DeviceClaimConfigurationPatch() {} + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional opaque() { + return Optional.ofNullable(this.opaque); + } + /** + * @return Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + * + */ + public List requests() { + return this.requests == null ? List.of() : this.requests; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClaimConfigurationPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable OpaqueDeviceConfigurationPatch opaque; + private @Nullable List requests; + public Builder() {} + public Builder(DeviceClaimConfigurationPatch defaults) { + Objects.requireNonNull(defaults); + this.opaque = defaults.opaque; + this.requests = defaults.requests; + } + + @CustomType.Setter + public Builder opaque(@Nullable OpaqueDeviceConfigurationPatch opaque) { + + this.opaque = opaque; + return this; + } + @CustomType.Setter + public Builder requests(@Nullable List requests) { + + this.requests = requests; + return this; + } + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + public DeviceClaimConfigurationPatch build() { + final var _resultValue = new DeviceClaimConfigurationPatch(); + _resultValue.opaque = opaque; + _resultValue.requests = requests; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimPatch.java new file mode 100644 index 0000000000..d5fdef07bc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClaimPatch.java @@ -0,0 +1,110 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClaimConfigurationPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceConstraintPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceRequestPatch; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClaimPatch { + /** + * @return This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + */ + private @Nullable List config; + /** + * @return These constraints must be satisfied by the set of devices that get allocated for the claim. + * + */ + private @Nullable List constraints; + /** + * @return Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + */ + private @Nullable List requests; + + private DeviceClaimPatch() {} + /** + * @return This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + * + */ + public List config() { + return this.config == null ? List.of() : this.config; + } + /** + * @return These constraints must be satisfied by the set of devices that get allocated for the claim. + * + */ + public List constraints() { + return this.constraints == null ? List.of() : this.constraints; + } + /** + * @return Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + * + */ + public List requests() { + return this.requests == null ? List.of() : this.requests; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClaimPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List config; + private @Nullable List constraints; + private @Nullable List requests; + public Builder() {} + public Builder(DeviceClaimPatch defaults) { + Objects.requireNonNull(defaults); + this.config = defaults.config; + this.constraints = defaults.constraints; + this.requests = defaults.requests; + } + + @CustomType.Setter + public Builder config(@Nullable List config) { + + this.config = config; + return this; + } + public Builder config(DeviceClaimConfigurationPatch... config) { + return config(List.of(config)); + } + @CustomType.Setter + public Builder constraints(@Nullable List constraints) { + + this.constraints = constraints; + return this; + } + public Builder constraints(DeviceConstraintPatch... constraints) { + return constraints(List.of(constraints)); + } + @CustomType.Setter + public Builder requests(@Nullable List requests) { + + this.requests = requests; + return this; + } + public Builder requests(DeviceRequestPatch... requests) { + return requests(List.of(requests)); + } + public DeviceClaimPatch build() { + final var _resultValue = new DeviceClaimPatch(); + _resultValue.config = config; + _resultValue.constraints = constraints; + _resultValue.requests = requests; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClass.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClass.java new file mode 100644 index 0000000000..122117b9fe --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClass.java @@ -0,0 +1,133 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClassSpec; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClass { + /** + * @return 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 + * + */ + private @Nullable String apiVersion; + /** + * @return 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 + * + */ + private @Nullable String kind; + /** + * @return Standard object metadata + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + private DeviceClassSpec spec; + + private DeviceClass() {} + /** + * @return 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 + * + */ + public Optional apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + /** + * @return 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 + * + */ + public Optional kind() { + return Optional.ofNullable(this.kind); + } + /** + * @return Standard object metadata + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public DeviceClassSpec spec() { + return this.spec; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClass defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiVersion; + private @Nullable String kind; + private @Nullable ObjectMeta metadata; + private DeviceClassSpec spec; + public Builder() {} + public Builder(DeviceClass defaults) { + Objects.requireNonNull(defaults); + this.apiVersion = defaults.apiVersion; + this.kind = defaults.kind; + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder apiVersion(@Nullable String apiVersion) { + + this.apiVersion = apiVersion; + return this; + } + @CustomType.Setter + public Builder kind(@Nullable String kind) { + + this.kind = kind; + return this; + } + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(DeviceClassSpec spec) { + if (spec == null) { + throw new MissingRequiredPropertyException("DeviceClass", "spec"); + } + this.spec = spec; + return this; + } + public DeviceClass build() { + final var _resultValue = new DeviceClass(); + _resultValue.apiVersion = apiVersion; + _resultValue.kind = kind; + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassConfiguration.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassConfiguration.java new file mode 100644 index 0000000000..9c89b6384b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassConfiguration.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.OpaqueDeviceConfiguration; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClassConfiguration { + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + private @Nullable OpaqueDeviceConfiguration opaque; + + private DeviceClassConfiguration() {} + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional opaque() { + return Optional.ofNullable(this.opaque); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClassConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable OpaqueDeviceConfiguration opaque; + public Builder() {} + public Builder(DeviceClassConfiguration defaults) { + Objects.requireNonNull(defaults); + this.opaque = defaults.opaque; + } + + @CustomType.Setter + public Builder opaque(@Nullable OpaqueDeviceConfiguration opaque) { + + this.opaque = opaque; + return this; + } + public DeviceClassConfiguration build() { + final var _resultValue = new DeviceClassConfiguration(); + _resultValue.opaque = opaque; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassConfigurationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassConfigurationPatch.java new file mode 100644 index 0000000000..390ec767c4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassConfigurationPatch.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.OpaqueDeviceConfigurationPatch; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClassConfigurationPatch { + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + private @Nullable OpaqueDeviceConfigurationPatch opaque; + + private DeviceClassConfigurationPatch() {} + /** + * @return Opaque provides driver-specific configuration parameters. + * + */ + public Optional opaque() { + return Optional.ofNullable(this.opaque); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClassConfigurationPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable OpaqueDeviceConfigurationPatch opaque; + public Builder() {} + public Builder(DeviceClassConfigurationPatch defaults) { + Objects.requireNonNull(defaults); + this.opaque = defaults.opaque; + } + + @CustomType.Setter + public Builder opaque(@Nullable OpaqueDeviceConfigurationPatch opaque) { + + this.opaque = opaque; + return this; + } + public DeviceClassConfigurationPatch build() { + final var _resultValue = new DeviceClassConfigurationPatch(); + _resultValue.opaque = opaque; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassSpec.java new file mode 100644 index 0000000000..13ae2cc840 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassSpec.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClassConfiguration; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceSelector; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClassSpec { + /** + * @return Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + */ + private @Nullable List config; + /** + * @return Each selector must be satisfied by a device which is claimed via this class. + * + */ + private @Nullable List selectors; + + private DeviceClassSpec() {} + /** + * @return Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + */ + public List config() { + return this.config == null ? List.of() : this.config; + } + /** + * @return Each selector must be satisfied by a device which is claimed via this class. + * + */ + public List selectors() { + return this.selectors == null ? List.of() : this.selectors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClassSpec defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List config; + private @Nullable List selectors; + public Builder() {} + public Builder(DeviceClassSpec defaults) { + Objects.requireNonNull(defaults); + this.config = defaults.config; + this.selectors = defaults.selectors; + } + + @CustomType.Setter + public Builder config(@Nullable List config) { + + this.config = config; + return this; + } + public Builder config(DeviceClassConfiguration... config) { + return config(List.of(config)); + } + @CustomType.Setter + public Builder selectors(@Nullable List selectors) { + + this.selectors = selectors; + return this; + } + public Builder selectors(DeviceSelector... selectors) { + return selectors(List.of(selectors)); + } + public DeviceClassSpec build() { + final var _resultValue = new DeviceClassSpec(); + _resultValue.config = config; + _resultValue.selectors = selectors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassSpecPatch.java new file mode 100644 index 0000000000..8a6d6759e2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceClassSpecPatch.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClassConfigurationPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceSelectorPatch; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceClassSpecPatch { + /** + * @return Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + */ + private @Nullable List config; + /** + * @return Each selector must be satisfied by a device which is claimed via this class. + * + */ + private @Nullable List selectors; + + private DeviceClassSpecPatch() {} + /** + * @return Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + * + */ + public List config() { + return this.config == null ? List.of() : this.config; + } + /** + * @return Each selector must be satisfied by a device which is claimed via this class. + * + */ + public List selectors() { + return this.selectors == null ? List.of() : this.selectors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceClassSpecPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List config; + private @Nullable List selectors; + public Builder() {} + public Builder(DeviceClassSpecPatch defaults) { + Objects.requireNonNull(defaults); + this.config = defaults.config; + this.selectors = defaults.selectors; + } + + @CustomType.Setter + public Builder config(@Nullable List config) { + + this.config = config; + return this; + } + public Builder config(DeviceClassConfigurationPatch... config) { + return config(List.of(config)); + } + @CustomType.Setter + public Builder selectors(@Nullable List selectors) { + + this.selectors = selectors; + return this; + } + public Builder selectors(DeviceSelectorPatch... selectors) { + return selectors(List.of(selectors)); + } + public DeviceClassSpecPatch build() { + final var _resultValue = new DeviceClassSpecPatch(); + _resultValue.config = config; + _resultValue.selectors = selectors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceConstraint.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceConstraint.java new file mode 100644 index 0000000000..c89606f0e1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceConstraint.java @@ -0,0 +1,90 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceConstraint { + /** + * @return MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + */ + private @Nullable String matchAttribute; + /** + * @return 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. + * + */ + private @Nullable List requests; + + private DeviceConstraint() {} + /** + * @return MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + */ + public Optional matchAttribute() { + return Optional.ofNullable(this.matchAttribute); + } + /** + * @return 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. + * + */ + public List requests() { + return this.requests == null ? List.of() : this.requests; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceConstraint defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String matchAttribute; + private @Nullable List requests; + public Builder() {} + public Builder(DeviceConstraint defaults) { + Objects.requireNonNull(defaults); + this.matchAttribute = defaults.matchAttribute; + this.requests = defaults.requests; + } + + @CustomType.Setter + public Builder matchAttribute(@Nullable String matchAttribute) { + + this.matchAttribute = matchAttribute; + return this; + } + @CustomType.Setter + public Builder requests(@Nullable List requests) { + + this.requests = requests; + return this; + } + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + public DeviceConstraint build() { + final var _resultValue = new DeviceConstraint(); + _resultValue.matchAttribute = matchAttribute; + _resultValue.requests = requests; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceConstraintPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceConstraintPatch.java new file mode 100644 index 0000000000..a1bec16ce6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceConstraintPatch.java @@ -0,0 +1,90 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceConstraintPatch { + /** + * @return MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + */ + private @Nullable String matchAttribute; + /** + * @return 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. + * + */ + private @Nullable List requests; + + private DeviceConstraintPatch() {} + /** + * @return MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + * + */ + public Optional matchAttribute() { + return Optional.ofNullable(this.matchAttribute); + } + /** + * @return 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. + * + */ + public List requests() { + return this.requests == null ? List.of() : this.requests; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceConstraintPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String matchAttribute; + private @Nullable List requests; + public Builder() {} + public Builder(DeviceConstraintPatch defaults) { + Objects.requireNonNull(defaults); + this.matchAttribute = defaults.matchAttribute; + this.requests = defaults.requests; + } + + @CustomType.Setter + public Builder matchAttribute(@Nullable String matchAttribute) { + + this.matchAttribute = matchAttribute; + return this; + } + @CustomType.Setter + public Builder requests(@Nullable List requests) { + + this.requests = requests; + return this; + } + public Builder requests(String... requests) { + return requests(List.of(requests)); + } + public DeviceConstraintPatch build() { + final var _resultValue = new DeviceConstraintPatch(); + _resultValue.matchAttribute = matchAttribute; + _resultValue.requests = requests; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DevicePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DevicePatch.java new file mode 100644 index 0000000000..d0738fcc71 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DevicePatch.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.BasicDevicePatch; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DevicePatch { + /** + * @return Basic defines one device instance. + * + */ + private @Nullable BasicDevicePatch basic; + /** + * @return Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + */ + private @Nullable String name; + + private DevicePatch() {} + /** + * @return Basic defines one device instance. + * + */ + public Optional basic() { + return Optional.ofNullable(this.basic); + } + /** + * @return Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DevicePatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable BasicDevicePatch basic; + private @Nullable String name; + public Builder() {} + public Builder(DevicePatch defaults) { + Objects.requireNonNull(defaults); + this.basic = defaults.basic; + this.name = defaults.name; + } + + @CustomType.Setter + public Builder basic(@Nullable BasicDevicePatch basic) { + + this.basic = basic; + return this; + } + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + public DevicePatch build() { + final var _resultValue = new DevicePatch(); + _resultValue.basic = basic; + _resultValue.name = name; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequest.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequest.java new file mode 100644 index 0000000000..c55b318022 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequest.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceSelector; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceRequest { + /** + * @return 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. + * + * 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. + * + */ + private @Nullable Boolean adminAccess; + /** + * @return AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + */ + private @Nullable String allocationMode; + /** + * @return 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. + * + */ + private @Nullable Integer count; + /** + * @return DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + */ + private String deviceClassName; + /** + * @return Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + */ + private String name; + /** + * @return 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. + * + */ + private @Nullable List selectors; + + private DeviceRequest() {} + /** + * @return 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. + * + * 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. + * + */ + public Optional adminAccess() { + return Optional.ofNullable(this.adminAccess); + } + /** + * @return AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + */ + public Optional allocationMode() { + return Optional.ofNullable(this.allocationMode); + } + /** + * @return 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. + * + */ + public Optional count() { + return Optional.ofNullable(this.count); + } + /** + * @return DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + */ + public String deviceClassName() { + return this.deviceClassName; + } + /** + * @return Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + */ + public String name() { + return this.name; + } + /** + * @return 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. + * + */ + public List selectors() { + return this.selectors == null ? List.of() : this.selectors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceRequest defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean adminAccess; + private @Nullable String allocationMode; + private @Nullable Integer count; + private String deviceClassName; + private String name; + private @Nullable List selectors; + public Builder() {} + public Builder(DeviceRequest defaults) { + Objects.requireNonNull(defaults); + this.adminAccess = defaults.adminAccess; + this.allocationMode = defaults.allocationMode; + this.count = defaults.count; + this.deviceClassName = defaults.deviceClassName; + this.name = defaults.name; + this.selectors = defaults.selectors; + } + + @CustomType.Setter + public Builder adminAccess(@Nullable Boolean adminAccess) { + + this.adminAccess = adminAccess; + return this; + } + @CustomType.Setter + public Builder allocationMode(@Nullable String allocationMode) { + + this.allocationMode = allocationMode; + return this; + } + @CustomType.Setter + public Builder count(@Nullable Integer count) { + + this.count = count; + return this; + } + @CustomType.Setter + public Builder deviceClassName(String deviceClassName) { + if (deviceClassName == null) { + throw new MissingRequiredPropertyException("DeviceRequest", "deviceClassName"); + } + this.deviceClassName = deviceClassName; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("DeviceRequest", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder selectors(@Nullable List selectors) { + + this.selectors = selectors; + return this; + } + public Builder selectors(DeviceSelector... selectors) { + return selectors(List.of(selectors)); + } + public DeviceRequest build() { + final var _resultValue = new DeviceRequest(); + _resultValue.adminAccess = adminAccess; + _resultValue.allocationMode = allocationMode; + _resultValue.count = count; + _resultValue.deviceClassName = deviceClassName; + _resultValue.name = name; + _resultValue.selectors = selectors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestAllocationResult.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestAllocationResult.java new file mode 100644 index 0000000000..089b42f498 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestAllocationResult.java @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceRequestAllocationResult { + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + private @Nullable Boolean adminAccess; + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + private String device; + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + private String driver; + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + private String pool; + /** + * @return 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. + * + */ + private String request; + + private DeviceRequestAllocationResult() {} + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + public Optional adminAccess() { + return Optional.ofNullable(this.adminAccess); + } + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public String device() { + return this.device; + } + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public String driver() { + return this.driver; + } + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public String pool() { + return this.pool; + } + /** + * @return 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. + * + */ + public String request() { + return this.request; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceRequestAllocationResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean adminAccess; + private String device; + private String driver; + private String pool; + private String request; + public Builder() {} + public Builder(DeviceRequestAllocationResult defaults) { + Objects.requireNonNull(defaults); + this.adminAccess = defaults.adminAccess; + this.device = defaults.device; + this.driver = defaults.driver; + this.pool = defaults.pool; + this.request = defaults.request; + } + + @CustomType.Setter + public Builder adminAccess(@Nullable Boolean adminAccess) { + + this.adminAccess = adminAccess; + return this; + } + @CustomType.Setter + public Builder device(String device) { + if (device == null) { + throw new MissingRequiredPropertyException("DeviceRequestAllocationResult", "device"); + } + this.device = device; + return this; + } + @CustomType.Setter + public Builder driver(String driver) { + if (driver == null) { + throw new MissingRequiredPropertyException("DeviceRequestAllocationResult", "driver"); + } + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder pool(String pool) { + if (pool == null) { + throw new MissingRequiredPropertyException("DeviceRequestAllocationResult", "pool"); + } + this.pool = pool; + return this; + } + @CustomType.Setter + public Builder request(String request) { + if (request == null) { + throw new MissingRequiredPropertyException("DeviceRequestAllocationResult", "request"); + } + this.request = request; + return this; + } + public DeviceRequestAllocationResult build() { + final var _resultValue = new DeviceRequestAllocationResult(); + _resultValue.adminAccess = adminAccess; + _resultValue.device = device; + _resultValue.driver = driver; + _resultValue.pool = pool; + _resultValue.request = request; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestAllocationResultPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestAllocationResultPatch.java new file mode 100644 index 0000000000..877cbcc0f8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestAllocationResultPatch.java @@ -0,0 +1,154 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceRequestAllocationResultPatch { + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + private @Nullable Boolean adminAccess; + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + private @Nullable String device; + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + private @Nullable String driver; + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + private @Nullable String pool; + /** + * @return 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. + * + */ + private @Nullable String request; + + private DeviceRequestAllocationResultPatch() {} + /** + * @return AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + * + */ + public Optional adminAccess() { + return Optional.ofNullable(this.adminAccess); + } + /** + * @return Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + * + */ + public Optional device() { + return Optional.ofNullable(this.device); + } + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Optional driver() { + return Optional.ofNullable(this.driver); + } + /** + * @return This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + * + */ + public Optional pool() { + return Optional.ofNullable(this.pool); + } + /** + * @return 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. + * + */ + public Optional request() { + return Optional.ofNullable(this.request); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceRequestAllocationResultPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean adminAccess; + private @Nullable String device; + private @Nullable String driver; + private @Nullable String pool; + private @Nullable String request; + public Builder() {} + public Builder(DeviceRequestAllocationResultPatch defaults) { + Objects.requireNonNull(defaults); + this.adminAccess = defaults.adminAccess; + this.device = defaults.device; + this.driver = defaults.driver; + this.pool = defaults.pool; + this.request = defaults.request; + } + + @CustomType.Setter + public Builder adminAccess(@Nullable Boolean adminAccess) { + + this.adminAccess = adminAccess; + return this; + } + @CustomType.Setter + public Builder device(@Nullable String device) { + + this.device = device; + return this; + } + @CustomType.Setter + public Builder driver(@Nullable String driver) { + + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder pool(@Nullable String pool) { + + this.pool = pool; + return this; + } + @CustomType.Setter + public Builder request(@Nullable String request) { + + this.request = request; + return this; + } + public DeviceRequestAllocationResultPatch build() { + final var _resultValue = new DeviceRequestAllocationResultPatch(); + _resultValue.adminAccess = adminAccess; + _resultValue.device = device; + _resultValue.driver = driver; + _resultValue.pool = pool; + _resultValue.request = request; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestPatch.java new file mode 100644 index 0000000000..fee170f673 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceRequestPatch.java @@ -0,0 +1,209 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceSelectorPatch; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceRequestPatch { + /** + * @return 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. + * + * 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. + * + */ + private @Nullable Boolean adminAccess; + /** + * @return AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + */ + private @Nullable String allocationMode; + /** + * @return 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. + * + */ + private @Nullable Integer count; + /** + * @return DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + */ + private @Nullable String deviceClassName; + /** + * @return Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + */ + private @Nullable String name; + /** + * @return 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. + * + */ + private @Nullable List selectors; + + private DeviceRequestPatch() {} + /** + * @return 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. + * + * 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. + * + */ + public Optional adminAccess() { + return Optional.ofNullable(this.adminAccess); + } + /** + * @return AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + * + */ + public Optional allocationMode() { + return Optional.ofNullable(this.allocationMode); + } + /** + * @return 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. + * + */ + public Optional count() { + return Optional.ofNullable(this.count); + } + /** + * @return DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + * + */ + public Optional deviceClassName() { + return Optional.ofNullable(this.deviceClassName); + } + /** + * @return Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + /** + * @return 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. + * + */ + public List selectors() { + return this.selectors == null ? List.of() : this.selectors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceRequestPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean adminAccess; + private @Nullable String allocationMode; + private @Nullable Integer count; + private @Nullable String deviceClassName; + private @Nullable String name; + private @Nullable List selectors; + public Builder() {} + public Builder(DeviceRequestPatch defaults) { + Objects.requireNonNull(defaults); + this.adminAccess = defaults.adminAccess; + this.allocationMode = defaults.allocationMode; + this.count = defaults.count; + this.deviceClassName = defaults.deviceClassName; + this.name = defaults.name; + this.selectors = defaults.selectors; + } + + @CustomType.Setter + public Builder adminAccess(@Nullable Boolean adminAccess) { + + this.adminAccess = adminAccess; + return this; + } + @CustomType.Setter + public Builder allocationMode(@Nullable String allocationMode) { + + this.allocationMode = allocationMode; + return this; + } + @CustomType.Setter + public Builder count(@Nullable Integer count) { + + this.count = count; + return this; + } + @CustomType.Setter + public Builder deviceClassName(@Nullable String deviceClassName) { + + this.deviceClassName = deviceClassName; + return this; + } + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + @CustomType.Setter + public Builder selectors(@Nullable List selectors) { + + this.selectors = selectors; + return this; + } + public Builder selectors(DeviceSelectorPatch... selectors) { + return selectors(List.of(selectors)); + } + public DeviceRequestPatch build() { + final var _resultValue = new DeviceRequestPatch(); + _resultValue.adminAccess = adminAccess; + _resultValue.allocationMode = allocationMode; + _resultValue.count = count; + _resultValue.deviceClassName = deviceClassName; + _resultValue.name = name; + _resultValue.selectors = selectors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceSelector.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceSelector.java new file mode 100644 index 0000000000..e0d107e76f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceSelector.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.CELDeviceSelector; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceSelector { + /** + * @return CEL contains a CEL expression for selecting a device. + * + */ + private @Nullable CELDeviceSelector cel; + + private DeviceSelector() {} + /** + * @return CEL contains a CEL expression for selecting a device. + * + */ + public Optional cel() { + return Optional.ofNullable(this.cel); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceSelector defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable CELDeviceSelector cel; + public Builder() {} + public Builder(DeviceSelector defaults) { + Objects.requireNonNull(defaults); + this.cel = defaults.cel; + } + + @CustomType.Setter + public Builder cel(@Nullable CELDeviceSelector cel) { + + this.cel = cel; + return this; + } + public DeviceSelector build() { + final var _resultValue = new DeviceSelector(); + _resultValue.cel = cel; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceSelectorPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceSelectorPatch.java new file mode 100644 index 0000000000..ab7f567d71 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/DeviceSelectorPatch.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.CELDeviceSelectorPatch; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeviceSelectorPatch { + /** + * @return CEL contains a CEL expression for selecting a device. + * + */ + private @Nullable CELDeviceSelectorPatch cel; + + private DeviceSelectorPatch() {} + /** + * @return CEL contains a CEL expression for selecting a device. + * + */ + public Optional cel() { + return Optional.ofNullable(this.cel); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeviceSelectorPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable CELDeviceSelectorPatch cel; + public Builder() {} + public Builder(DeviceSelectorPatch defaults) { + Objects.requireNonNull(defaults); + this.cel = defaults.cel; + } + + @CustomType.Setter + public Builder cel(@Nullable CELDeviceSelectorPatch cel) { + + this.cel = cel; + return this; + } + public DeviceSelectorPatch build() { + final var _resultValue = new DeviceSelectorPatch(); + _resultValue.cel = cel; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/NetworkDeviceData.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/NetworkDeviceData.java new file mode 100644 index 0000000000..43fb16ce65 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/NetworkDeviceData.java @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class NetworkDeviceData { + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + private @Nullable String hardwareAddress; + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + private @Nullable String interfaceName; + /** + * @return 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. + * + */ + private @Nullable List ips; + + private NetworkDeviceData() {} + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + public Optional hardwareAddress() { + return Optional.ofNullable(this.hardwareAddress); + } + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + public Optional interfaceName() { + return Optional.ofNullable(this.interfaceName); + } + /** + * @return 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. + * + */ + public List ips() { + return this.ips == null ? List.of() : this.ips; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(NetworkDeviceData defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String hardwareAddress; + private @Nullable String interfaceName; + private @Nullable List ips; + public Builder() {} + public Builder(NetworkDeviceData defaults) { + Objects.requireNonNull(defaults); + this.hardwareAddress = defaults.hardwareAddress; + this.interfaceName = defaults.interfaceName; + this.ips = defaults.ips; + } + + @CustomType.Setter + public Builder hardwareAddress(@Nullable String hardwareAddress) { + + this.hardwareAddress = hardwareAddress; + return this; + } + @CustomType.Setter + public Builder interfaceName(@Nullable String interfaceName) { + + this.interfaceName = interfaceName; + return this; + } + @CustomType.Setter + public Builder ips(@Nullable List ips) { + + this.ips = ips; + return this; + } + public Builder ips(String... ips) { + return ips(List.of(ips)); + } + public NetworkDeviceData build() { + final var _resultValue = new NetworkDeviceData(); + _resultValue.hardwareAddress = hardwareAddress; + _resultValue.interfaceName = interfaceName; + _resultValue.ips = ips; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/NetworkDeviceDataPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/NetworkDeviceDataPatch.java new file mode 100644 index 0000000000..deac395d9a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/NetworkDeviceDataPatch.java @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class NetworkDeviceDataPatch { + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + private @Nullable String hardwareAddress; + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + private @Nullable String interfaceName; + /** + * @return 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. + * + */ + private @Nullable List ips; + + private NetworkDeviceDataPatch() {} + /** + * @return HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + * + */ + public Optional hardwareAddress() { + return Optional.ofNullable(this.hardwareAddress); + } + /** + * @return 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. + * + * Must not be longer than 256 characters. + * + */ + public Optional interfaceName() { + return Optional.ofNullable(this.interfaceName); + } + /** + * @return 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. + * + */ + public List ips() { + return this.ips == null ? List.of() : this.ips; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(NetworkDeviceDataPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String hardwareAddress; + private @Nullable String interfaceName; + private @Nullable List ips; + public Builder() {} + public Builder(NetworkDeviceDataPatch defaults) { + Objects.requireNonNull(defaults); + this.hardwareAddress = defaults.hardwareAddress; + this.interfaceName = defaults.interfaceName; + this.ips = defaults.ips; + } + + @CustomType.Setter + public Builder hardwareAddress(@Nullable String hardwareAddress) { + + this.hardwareAddress = hardwareAddress; + return this; + } + @CustomType.Setter + public Builder interfaceName(@Nullable String interfaceName) { + + this.interfaceName = interfaceName; + return this; + } + @CustomType.Setter + public Builder ips(@Nullable List ips) { + + this.ips = ips; + return this; + } + public Builder ips(String... ips) { + return ips(List.of(ips)); + } + public NetworkDeviceDataPatch build() { + final var _resultValue = new NetworkDeviceDataPatch(); + _resultValue.hardwareAddress = hardwareAddress; + _resultValue.interfaceName = interfaceName; + _resultValue.ips = ips; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/OpaqueDeviceConfiguration.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/OpaqueDeviceConfiguration.java new file mode 100644 index 0000000000..a9a899b70a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/OpaqueDeviceConfiguration.java @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class OpaqueDeviceConfiguration { + /** + * @return Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + private String driver; + /** + * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + private JsonElement parameters; + + private OpaqueDeviceConfiguration() {} + /** + * @return Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public String driver() { + return this.driver; + } + /** + * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public JsonElement parameters() { + return this.parameters; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OpaqueDeviceConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String driver; + private JsonElement parameters; + public Builder() {} + public Builder(OpaqueDeviceConfiguration defaults) { + Objects.requireNonNull(defaults); + this.driver = defaults.driver; + this.parameters = defaults.parameters; + } + + @CustomType.Setter + public Builder driver(String driver) { + if (driver == null) { + throw new MissingRequiredPropertyException("OpaqueDeviceConfiguration", "driver"); + } + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder parameters(JsonElement parameters) { + if (parameters == null) { + throw new MissingRequiredPropertyException("OpaqueDeviceConfiguration", "parameters"); + } + this.parameters = parameters; + return this; + } + public OpaqueDeviceConfiguration build() { + final var _resultValue = new OpaqueDeviceConfiguration(); + _resultValue.driver = driver; + _resultValue.parameters = parameters; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/OpaqueDeviceConfigurationPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/OpaqueDeviceConfigurationPatch.java new file mode 100644 index 0000000000..326dc4696d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/OpaqueDeviceConfigurationPatch.java @@ -0,0 +1,91 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.google.gson.JsonElement; +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class OpaqueDeviceConfigurationPatch { + /** + * @return Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + private @Nullable String driver; + /** + * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + private @Nullable JsonElement parameters; + + private OpaqueDeviceConfigurationPatch() {} + /** + * @return Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + */ + public Optional driver() { + return Optional.ofNullable(this.driver); + } + /** + * @return Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + * + */ + public Optional parameters() { + return Optional.ofNullable(this.parameters); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OpaqueDeviceConfigurationPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String driver; + private @Nullable JsonElement parameters; + public Builder() {} + public Builder(OpaqueDeviceConfigurationPatch defaults) { + Objects.requireNonNull(defaults); + this.driver = defaults.driver; + this.parameters = defaults.parameters; + } + + @CustomType.Setter + public Builder driver(@Nullable String driver) { + + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder parameters(@Nullable JsonElement parameters) { + + this.parameters = parameters; + return this; + } + public OpaqueDeviceConfigurationPatch build() { + final var _resultValue = new OpaqueDeviceConfigurationPatch(); + _resultValue.driver = driver; + _resultValue.parameters = parameters; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaim.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaim.java new file mode 100644 index 0000000000..f65b19fcfb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaim.java @@ -0,0 +1,147 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimSpec; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimStatus; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaim { + /** + * @return 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 + * + */ + private @Nullable String apiVersion; + /** + * @return 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 + * + */ + private @Nullable String kind; + /** + * @return Standard object metadata + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + private ResourceClaimSpec spec; + /** + * @return Status describes whether the claim is ready to use and what has been allocated. + * + */ + private @Nullable ResourceClaimStatus status; + + private ResourceClaim() {} + /** + * @return 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 + * + */ + public Optional apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + /** + * @return 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 + * + */ + public Optional kind() { + return Optional.ofNullable(this.kind); + } + /** + * @return Standard object metadata + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Spec describes what is being requested and how to configure it. The spec is immutable. + * + */ + public ResourceClaimSpec spec() { + return this.spec; + } + /** + * @return Status describes whether the claim is ready to use and what has been allocated. + * + */ + public Optional status() { + return Optional.ofNullable(this.status); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaim defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiVersion; + private @Nullable String kind; + private @Nullable ObjectMeta metadata; + private ResourceClaimSpec spec; + private @Nullable ResourceClaimStatus status; + public Builder() {} + public Builder(ResourceClaim defaults) { + Objects.requireNonNull(defaults); + this.apiVersion = defaults.apiVersion; + this.kind = defaults.kind; + this.metadata = defaults.metadata; + this.spec = defaults.spec; + this.status = defaults.status; + } + + @CustomType.Setter + public Builder apiVersion(@Nullable String apiVersion) { + + this.apiVersion = apiVersion; + return this; + } + @CustomType.Setter + public Builder kind(@Nullable String kind) { + + this.kind = kind; + return this; + } + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(ResourceClaimSpec spec) { + if (spec == null) { + throw new MissingRequiredPropertyException("ResourceClaim", "spec"); + } + this.spec = spec; + return this; + } + @CustomType.Setter + public Builder status(@Nullable ResourceClaimStatus status) { + + this.status = status; + return this; + } + public ResourceClaim build() { + final var _resultValue = new ResourceClaim(); + _resultValue.apiVersion = apiVersion; + _resultValue.kind = kind; + _resultValue.metadata = metadata; + _resultValue.spec = spec; + _resultValue.status = status; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimConsumerReference.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimConsumerReference.java new file mode 100644 index 0000000000..eb944b23d6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimConsumerReference.java @@ -0,0 +1,127 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimConsumerReference { + /** + * @return 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. + * + */ + private @Nullable String apiGroup; + /** + * @return Name is the name of resource being referenced. + * + */ + private String name; + /** + * @return Resource is the type of resource being referenced, for example "pods". + * + */ + private String resource; + /** + * @return UID identifies exactly one incarnation of the resource. + * + */ + private String uid; + + private ResourceClaimConsumerReference() {} + /** + * @return 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. + * + */ + public Optional apiGroup() { + return Optional.ofNullable(this.apiGroup); + } + /** + * @return Name is the name of resource being referenced. + * + */ + public String name() { + return this.name; + } + /** + * @return Resource is the type of resource being referenced, for example "pods". + * + */ + public String resource() { + return this.resource; + } + /** + * @return UID identifies exactly one incarnation of the resource. + * + */ + public String uid() { + return this.uid; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimConsumerReference defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiGroup; + private String name; + private String resource; + private String uid; + public Builder() {} + public Builder(ResourceClaimConsumerReference defaults) { + Objects.requireNonNull(defaults); + this.apiGroup = defaults.apiGroup; + this.name = defaults.name; + this.resource = defaults.resource; + this.uid = defaults.uid; + } + + @CustomType.Setter + public Builder apiGroup(@Nullable String apiGroup) { + + this.apiGroup = apiGroup; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("ResourceClaimConsumerReference", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder resource(String resource) { + if (resource == null) { + throw new MissingRequiredPropertyException("ResourceClaimConsumerReference", "resource"); + } + this.resource = resource; + return this; + } + @CustomType.Setter + public Builder uid(String uid) { + if (uid == null) { + throw new MissingRequiredPropertyException("ResourceClaimConsumerReference", "uid"); + } + this.uid = uid; + return this; + } + public ResourceClaimConsumerReference build() { + final var _resultValue = new ResourceClaimConsumerReference(); + _resultValue.apiGroup = apiGroup; + _resultValue.name = name; + _resultValue.resource = resource; + _resultValue.uid = uid; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimConsumerReferencePatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimConsumerReferencePatch.java new file mode 100644 index 0000000000..dc242ed295 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimConsumerReferencePatch.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimConsumerReferencePatch { + /** + * @return 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. + * + */ + private @Nullable String apiGroup; + /** + * @return Name is the name of resource being referenced. + * + */ + private @Nullable String name; + /** + * @return Resource is the type of resource being referenced, for example "pods". + * + */ + private @Nullable String resource; + /** + * @return UID identifies exactly one incarnation of the resource. + * + */ + private @Nullable String uid; + + private ResourceClaimConsumerReferencePatch() {} + /** + * @return 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. + * + */ + public Optional apiGroup() { + return Optional.ofNullable(this.apiGroup); + } + /** + * @return Name is the name of resource being referenced. + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + /** + * @return Resource is the type of resource being referenced, for example "pods". + * + */ + public Optional resource() { + return Optional.ofNullable(this.resource); + } + /** + * @return UID identifies exactly one incarnation of the resource. + * + */ + public Optional uid() { + return Optional.ofNullable(this.uid); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimConsumerReferencePatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiGroup; + private @Nullable String name; + private @Nullable String resource; + private @Nullable String uid; + public Builder() {} + public Builder(ResourceClaimConsumerReferencePatch defaults) { + Objects.requireNonNull(defaults); + this.apiGroup = defaults.apiGroup; + this.name = defaults.name; + this.resource = defaults.resource; + this.uid = defaults.uid; + } + + @CustomType.Setter + public Builder apiGroup(@Nullable String apiGroup) { + + this.apiGroup = apiGroup; + return this; + } + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + @CustomType.Setter + public Builder resource(@Nullable String resource) { + + this.resource = resource; + return this; + } + @CustomType.Setter + public Builder uid(@Nullable String uid) { + + this.uid = uid; + return this; + } + public ResourceClaimConsumerReferencePatch build() { + final var _resultValue = new ResourceClaimConsumerReferencePatch(); + _resultValue.apiGroup = apiGroup; + _resultValue.name = name; + _resultValue.resource = resource; + _resultValue.uid = uid; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimSpec.java new file mode 100644 index 0000000000..c8bde156c7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimSpec.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClaim; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimSpec { + /** + * @return Devices defines how to request devices. + * + */ + private @Nullable DeviceClaim devices; + + private ResourceClaimSpec() {} + /** + * @return Devices defines how to request devices. + * + */ + public Optional devices() { + return Optional.ofNullable(this.devices); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimSpec defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable DeviceClaim devices; + public Builder() {} + public Builder(ResourceClaimSpec defaults) { + Objects.requireNonNull(defaults); + this.devices = defaults.devices; + } + + @CustomType.Setter + public Builder devices(@Nullable DeviceClaim devices) { + + this.devices = devices; + return this; + } + public ResourceClaimSpec build() { + final var _resultValue = new ResourceClaimSpec(); + _resultValue.devices = devices; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimSpecPatch.java new file mode 100644 index 0000000000..90a72132a0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimSpecPatch.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DeviceClaimPatch; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimSpecPatch { + /** + * @return Devices defines how to request devices. + * + */ + private @Nullable DeviceClaimPatch devices; + + private ResourceClaimSpecPatch() {} + /** + * @return Devices defines how to request devices. + * + */ + public Optional devices() { + return Optional.ofNullable(this.devices); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimSpecPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable DeviceClaimPatch devices; + public Builder() {} + public Builder(ResourceClaimSpecPatch defaults) { + Objects.requireNonNull(defaults); + this.devices = defaults.devices; + } + + @CustomType.Setter + public Builder devices(@Nullable DeviceClaimPatch devices) { + + this.devices = devices; + return this; + } + public ResourceClaimSpecPatch build() { + final var _resultValue = new ResourceClaimSpecPatch(); + _resultValue.devices = devices; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimStatus.java new file mode 100644 index 0000000000..1e13296bea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimStatus.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.AllocatedDeviceStatus; +import com.pulumi.kubernetes.resource.v1beta1.outputs.AllocationResult; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimConsumerReference; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimStatus { + /** + * @return Allocation is set once the claim has been allocated successfully. + * + */ + private @Nullable AllocationResult allocation; + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + private @Nullable List devices; + /** + * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + */ + private @Nullable List reservedFor; + + private ResourceClaimStatus() {} + /** + * @return Allocation is set once the claim has been allocated successfully. + * + */ + public Optional allocation() { + return Optional.ofNullable(this.allocation); + } + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + public List devices() { + return this.devices == null ? List.of() : this.devices; + } + /** + * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + */ + public List reservedFor() { + return this.reservedFor == null ? List.of() : this.reservedFor; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimStatus defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable AllocationResult allocation; + private @Nullable List devices; + private @Nullable List reservedFor; + public Builder() {} + public Builder(ResourceClaimStatus defaults) { + Objects.requireNonNull(defaults); + this.allocation = defaults.allocation; + this.devices = defaults.devices; + this.reservedFor = defaults.reservedFor; + } + + @CustomType.Setter + public Builder allocation(@Nullable AllocationResult allocation) { + + this.allocation = allocation; + return this; + } + @CustomType.Setter + public Builder devices(@Nullable List devices) { + + this.devices = devices; + return this; + } + public Builder devices(AllocatedDeviceStatus... devices) { + return devices(List.of(devices)); + } + @CustomType.Setter + public Builder reservedFor(@Nullable List reservedFor) { + + this.reservedFor = reservedFor; + return this; + } + public Builder reservedFor(ResourceClaimConsumerReference... reservedFor) { + return reservedFor(List.of(reservedFor)); + } + public ResourceClaimStatus build() { + final var _resultValue = new ResourceClaimStatus(); + _resultValue.allocation = allocation; + _resultValue.devices = devices; + _resultValue.reservedFor = reservedFor; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimStatusPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimStatusPatch.java new file mode 100644 index 0000000000..53a3812a72 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimStatusPatch.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.resource.v1beta1.outputs.AllocatedDeviceStatusPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.AllocationResultPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimConsumerReferencePatch; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimStatusPatch { + /** + * @return Allocation is set once the claim has been allocated successfully. + * + */ + private @Nullable AllocationResultPatch allocation; + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + private @Nullable List devices; + /** + * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + */ + private @Nullable List reservedFor; + + private ResourceClaimStatusPatch() {} + /** + * @return Allocation is set once the claim has been allocated successfully. + * + */ + public Optional allocation() { + return Optional.ofNullable(this.allocation); + } + /** + * @return Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + * + */ + public List devices() { + return this.devices == null ? List.of() : this.devices; + } + /** + * @return ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + * + */ + public List reservedFor() { + return this.reservedFor == null ? List.of() : this.reservedFor; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimStatusPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable AllocationResultPatch allocation; + private @Nullable List devices; + private @Nullable List reservedFor; + public Builder() {} + public Builder(ResourceClaimStatusPatch defaults) { + Objects.requireNonNull(defaults); + this.allocation = defaults.allocation; + this.devices = defaults.devices; + this.reservedFor = defaults.reservedFor; + } + + @CustomType.Setter + public Builder allocation(@Nullable AllocationResultPatch allocation) { + + this.allocation = allocation; + return this; + } + @CustomType.Setter + public Builder devices(@Nullable List devices) { + + this.devices = devices; + return this; + } + public Builder devices(AllocatedDeviceStatusPatch... devices) { + return devices(List.of(devices)); + } + @CustomType.Setter + public Builder reservedFor(@Nullable List reservedFor) { + + this.reservedFor = reservedFor; + return this; + } + public Builder reservedFor(ResourceClaimConsumerReferencePatch... reservedFor) { + return reservedFor(List.of(reservedFor)); + } + public ResourceClaimStatusPatch build() { + final var _resultValue = new ResourceClaimStatusPatch(); + _resultValue.allocation = allocation; + _resultValue.devices = devices; + _resultValue.reservedFor = reservedFor; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplate.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplate.java new file mode 100644 index 0000000000..8ab77368c7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplate.java @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimTemplateSpec; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimTemplate { + /** + * @return 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 + * + */ + private @Nullable String apiVersion; + /** + * @return 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 + * + */ + private @Nullable String kind; + /** + * @return Standard object metadata + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + private ResourceClaimTemplateSpec spec; + + private ResourceClaimTemplate() {} + /** + * @return 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 + * + */ + public Optional apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + /** + * @return 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 + * + */ + public Optional kind() { + return Optional.ofNullable(this.kind); + } + /** + * @return Standard object metadata + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + * + */ + public ResourceClaimTemplateSpec spec() { + return this.spec; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimTemplate defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiVersion; + private @Nullable String kind; + private @Nullable ObjectMeta metadata; + private ResourceClaimTemplateSpec spec; + public Builder() {} + public Builder(ResourceClaimTemplate defaults) { + Objects.requireNonNull(defaults); + this.apiVersion = defaults.apiVersion; + this.kind = defaults.kind; + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder apiVersion(@Nullable String apiVersion) { + + this.apiVersion = apiVersion; + return this; + } + @CustomType.Setter + public Builder kind(@Nullable String kind) { + + this.kind = kind; + return this; + } + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(ResourceClaimTemplateSpec spec) { + if (spec == null) { + throw new MissingRequiredPropertyException("ResourceClaimTemplate", "spec"); + } + this.spec = spec; + return this; + } + public ResourceClaimTemplate build() { + final var _resultValue = new ResourceClaimTemplate(); + _resultValue.apiVersion = apiVersion; + _resultValue.kind = kind; + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplateSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplateSpec.java new file mode 100644 index 0000000000..86e29d144e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplateSpec.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimSpec; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimTemplateSpec { + /** + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + */ + private ResourceClaimSpec spec; + + private ResourceClaimTemplateSpec() {} + /** + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + */ + public ResourceClaimSpec spec() { + return this.spec; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimTemplateSpec defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable ObjectMeta metadata; + private ResourceClaimSpec spec; + public Builder() {} + public Builder(ResourceClaimTemplateSpec defaults) { + Objects.requireNonNull(defaults); + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(ResourceClaimSpec spec) { + if (spec == null) { + throw new MissingRequiredPropertyException("ResourceClaimTemplateSpec", "spec"); + } + this.spec = spec; + return this; + } + public ResourceClaimTemplateSpec build() { + final var _resultValue = new ResourceClaimTemplateSpec(); + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplateSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplateSpecPatch.java new file mode 100644 index 0000000000..e787852238 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceClaimTemplateSpecPatch.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMetaPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceClaimSpecPatch; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceClaimTemplateSpecPatch { + /** + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + */ + private @Nullable ObjectMetaPatch metadata; + /** + * @return Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + */ + private @Nullable ResourceClaimSpecPatch spec; + + private ResourceClaimTemplateSpecPatch() {} + /** + * @return ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + * + */ + public Optional spec() { + return Optional.ofNullable(this.spec); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceClaimTemplateSpecPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable ObjectMetaPatch metadata; + private @Nullable ResourceClaimSpecPatch spec; + public Builder() {} + public Builder(ResourceClaimTemplateSpecPatch defaults) { + Objects.requireNonNull(defaults); + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder metadata(@Nullable ObjectMetaPatch metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(@Nullable ResourceClaimSpecPatch spec) { + + this.spec = spec; + return this; + } + public ResourceClaimTemplateSpecPatch build() { + final var _resultValue = new ResourceClaimTemplateSpecPatch(); + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourcePool.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourcePool.java new file mode 100644 index 0000000000..c559fc9205 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourcePool.java @@ -0,0 +1,117 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ResourcePool { + /** + * @return 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + */ + private Integer generation; + /** + * @return Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + */ + private String name; + /** + * @return ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + */ + private Integer resourceSliceCount; + + private ResourcePool() {} + /** + * @return 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + */ + public Integer generation() { + return this.generation; + } + /** + * @return Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + */ + public String name() { + return this.name; + } + /** + * @return ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + */ + public Integer resourceSliceCount() { + return this.resourceSliceCount; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourcePool defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer generation; + private String name; + private Integer resourceSliceCount; + public Builder() {} + public Builder(ResourcePool defaults) { + Objects.requireNonNull(defaults); + this.generation = defaults.generation; + this.name = defaults.name; + this.resourceSliceCount = defaults.resourceSliceCount; + } + + @CustomType.Setter + public Builder generation(Integer generation) { + if (generation == null) { + throw new MissingRequiredPropertyException("ResourcePool", "generation"); + } + this.generation = generation; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("ResourcePool", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder resourceSliceCount(Integer resourceSliceCount) { + if (resourceSliceCount == null) { + throw new MissingRequiredPropertyException("ResourcePool", "resourceSliceCount"); + } + this.resourceSliceCount = resourceSliceCount; + return this; + } + public ResourcePool build() { + final var _resultValue = new ResourcePool(); + _resultValue.generation = generation; + _resultValue.name = name; + _resultValue.resourceSliceCount = resourceSliceCount; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourcePoolPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourcePoolPatch.java new file mode 100644 index 0000000000..2a34936e90 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourcePoolPatch.java @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourcePoolPatch { + /** + * @return 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + */ + private @Nullable Integer generation; + /** + * @return Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + */ + private @Nullable String name; + /** + * @return ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + */ + private @Nullable Integer resourceSliceCount; + + private ResourcePoolPatch() {} + /** + * @return 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + * + */ + public Optional generation() { + return Optional.ofNullable(this.generation); + } + /** + * @return Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + /** + * @return ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + * + */ + public Optional resourceSliceCount() { + return Optional.ofNullable(this.resourceSliceCount); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourcePoolPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer generation; + private @Nullable String name; + private @Nullable Integer resourceSliceCount; + public Builder() {} + public Builder(ResourcePoolPatch defaults) { + Objects.requireNonNull(defaults); + this.generation = defaults.generation; + this.name = defaults.name; + this.resourceSliceCount = defaults.resourceSliceCount; + } + + @CustomType.Setter + public Builder generation(@Nullable Integer generation) { + + this.generation = generation; + return this; + } + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + @CustomType.Setter + public Builder resourceSliceCount(@Nullable Integer resourceSliceCount) { + + this.resourceSliceCount = resourceSliceCount; + return this; + } + public ResourcePoolPatch build() { + final var _resultValue = new ResourcePoolPatch(); + _resultValue.generation = generation; + _resultValue.name = name; + _resultValue.resourceSliceCount = resourceSliceCount; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSlice.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSlice.java new file mode 100644 index 0000000000..ae4cd60eb4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSlice.java @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourceSliceSpec; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceSlice { + /** + * @return 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 + * + */ + private @Nullable String apiVersion; + /** + * @return 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 + * + */ + private @Nullable String kind; + /** + * @return Standard object metadata + * + */ + private @Nullable ObjectMeta metadata; + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + private ResourceSliceSpec spec; + + private ResourceSlice() {} + /** + * @return 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 + * + */ + public Optional apiVersion() { + return Optional.ofNullable(this.apiVersion); + } + /** + * @return 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 + * + */ + public Optional kind() { + return Optional.ofNullable(this.kind); + } + /** + * @return Standard object metadata + * + */ + public Optional metadata() { + return Optional.ofNullable(this.metadata); + } + /** + * @return Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + * + */ + public ResourceSliceSpec spec() { + return this.spec; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceSlice defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String apiVersion; + private @Nullable String kind; + private @Nullable ObjectMeta metadata; + private ResourceSliceSpec spec; + public Builder() {} + public Builder(ResourceSlice defaults) { + Objects.requireNonNull(defaults); + this.apiVersion = defaults.apiVersion; + this.kind = defaults.kind; + this.metadata = defaults.metadata; + this.spec = defaults.spec; + } + + @CustomType.Setter + public Builder apiVersion(@Nullable String apiVersion) { + + this.apiVersion = apiVersion; + return this; + } + @CustomType.Setter + public Builder kind(@Nullable String kind) { + + this.kind = kind; + return this; + } + @CustomType.Setter + public Builder metadata(@Nullable ObjectMeta metadata) { + + this.metadata = metadata; + return this; + } + @CustomType.Setter + public Builder spec(ResourceSliceSpec spec) { + if (spec == null) { + throw new MissingRequiredPropertyException("ResourceSlice", "spec"); + } + this.spec = spec; + return this; + } + public ResourceSlice build() { + final var _resultValue = new ResourceSlice(); + _resultValue.apiVersion = apiVersion; + _resultValue.kind = kind; + _resultValue.metadata = metadata; + _resultValue.spec = spec; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSliceSpec.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSliceSpec.java new file mode 100644 index 0000000000..ee222d6450 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSliceSpec.java @@ -0,0 +1,203 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.kubernetes.core.v1.outputs.NodeSelector; +import com.pulumi.kubernetes.resource.v1beta1.outputs.Device; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourcePool; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceSliceSpec { + /** + * @return AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + private @Nullable Boolean allNodes; + /** + * @return Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + */ + private @Nullable List devices; + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + */ + private String driver; + /** + * @return 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + */ + private @Nullable String nodeName; + /** + * @return NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + private @Nullable NodeSelector nodeSelector; + /** + * @return Pool describes the pool that this ResourceSlice belongs to. + * + */ + private ResourcePool pool; + + private ResourceSliceSpec() {} + /** + * @return AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + public Optional allNodes() { + return Optional.ofNullable(this.allNodes); + } + /** + * @return Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + */ + public List devices() { + return this.devices == null ? List.of() : this.devices; + } + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + */ + public String driver() { + return this.driver; + } + /** + * @return 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + */ + public Optional nodeName() { + return Optional.ofNullable(this.nodeName); + } + /** + * @return NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + public Optional nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + /** + * @return Pool describes the pool that this ResourceSlice belongs to. + * + */ + public ResourcePool pool() { + return this.pool; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceSliceSpec defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean allNodes; + private @Nullable List devices; + private String driver; + private @Nullable String nodeName; + private @Nullable NodeSelector nodeSelector; + private ResourcePool pool; + public Builder() {} + public Builder(ResourceSliceSpec defaults) { + Objects.requireNonNull(defaults); + this.allNodes = defaults.allNodes; + this.devices = defaults.devices; + this.driver = defaults.driver; + this.nodeName = defaults.nodeName; + this.nodeSelector = defaults.nodeSelector; + this.pool = defaults.pool; + } + + @CustomType.Setter + public Builder allNodes(@Nullable Boolean allNodes) { + + this.allNodes = allNodes; + return this; + } + @CustomType.Setter + public Builder devices(@Nullable List devices) { + + this.devices = devices; + return this; + } + public Builder devices(Device... devices) { + return devices(List.of(devices)); + } + @CustomType.Setter + public Builder driver(String driver) { + if (driver == null) { + throw new MissingRequiredPropertyException("ResourceSliceSpec", "driver"); + } + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder nodeName(@Nullable String nodeName) { + + this.nodeName = nodeName; + return this; + } + @CustomType.Setter + public Builder nodeSelector(@Nullable NodeSelector nodeSelector) { + + this.nodeSelector = nodeSelector; + return this; + } + @CustomType.Setter + public Builder pool(ResourcePool pool) { + if (pool == null) { + throw new MissingRequiredPropertyException("ResourceSliceSpec", "pool"); + } + this.pool = pool; + return this; + } + public ResourceSliceSpec build() { + final var _resultValue = new ResourceSliceSpec(); + _resultValue.allNodes = allNodes; + _resultValue.devices = devices; + _resultValue.driver = driver; + _resultValue.nodeName = nodeName; + _resultValue.nodeSelector = nodeSelector; + _resultValue.pool = pool; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSliceSpecPatch.java b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSliceSpecPatch.java new file mode 100644 index 0000000000..977e4bfb5f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/resource/v1beta1/outputs/ResourceSliceSpecPatch.java @@ -0,0 +1,198 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetes.resource.v1beta1.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.kubernetes.core.v1.outputs.NodeSelectorPatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.DevicePatch; +import com.pulumi.kubernetes.resource.v1beta1.outputs.ResourcePoolPatch; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceSliceSpecPatch { + /** + * @return AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + private @Nullable Boolean allNodes; + /** + * @return Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + */ + private @Nullable List devices; + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + */ + private @Nullable String driver; + /** + * @return 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + */ + private @Nullable String nodeName; + /** + * @return NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + private @Nullable NodeSelectorPatch nodeSelector; + /** + * @return Pool describes the pool that this ResourceSlice belongs to. + * + */ + private @Nullable ResourcePoolPatch pool; + + private ResourceSliceSpecPatch() {} + /** + * @return AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + public Optional allNodes() { + return Optional.ofNullable(this.allNodes); + } + /** + * @return Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + * + */ + public List devices() { + return this.devices == null ? List.of() : this.devices; + } + /** + * @return 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + * + */ + public Optional driver() { + return Optional.ofNullable(this.driver); + } + /** + * @return 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + * + */ + public Optional nodeName() { + return Optional.ofNullable(this.nodeName); + } + /** + * @return NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + * + */ + public Optional nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + /** + * @return Pool describes the pool that this ResourceSlice belongs to. + * + */ + public Optional pool() { + return Optional.ofNullable(this.pool); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceSliceSpecPatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean allNodes; + private @Nullable List devices; + private @Nullable String driver; + private @Nullable String nodeName; + private @Nullable NodeSelectorPatch nodeSelector; + private @Nullable ResourcePoolPatch pool; + public Builder() {} + public Builder(ResourceSliceSpecPatch defaults) { + Objects.requireNonNull(defaults); + this.allNodes = defaults.allNodes; + this.devices = defaults.devices; + this.driver = defaults.driver; + this.nodeName = defaults.nodeName; + this.nodeSelector = defaults.nodeSelector; + this.pool = defaults.pool; + } + + @CustomType.Setter + public Builder allNodes(@Nullable Boolean allNodes) { + + this.allNodes = allNodes; + return this; + } + @CustomType.Setter + public Builder devices(@Nullable List devices) { + + this.devices = devices; + return this; + } + public Builder devices(DevicePatch... devices) { + return devices(List.of(devices)); + } + @CustomType.Setter + public Builder driver(@Nullable String driver) { + + this.driver = driver; + return this; + } + @CustomType.Setter + public Builder nodeName(@Nullable String nodeName) { + + this.nodeName = nodeName; + return this; + } + @CustomType.Setter + public Builder nodeSelector(@Nullable NodeSelectorPatch nodeSelector) { + + this.nodeSelector = nodeSelector; + return this; + } + @CustomType.Setter + public Builder pool(@Nullable ResourcePoolPatch pool) { + + this.pool = pool; + return this; + } + public ResourceSliceSpecPatch build() { + final var _resultValue = new ResourceSliceSpecPatch(); + _resultValue.allNodes = allNodes; + _resultValue.devices = devices; + _resultValue.driver = driver; + _resultValue.nodeName = nodeName; + _resultValue.nodeSelector = nodeSelector; + _resultValue.pool = pool; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/storage/v1/inputs/VolumeAttachmentSourceArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/storage/v1/inputs/VolumeAttachmentSourceArgs.java index ba2c4b3ab1..be4c8215e3 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/storage/v1/inputs/VolumeAttachmentSourceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/storage/v1/inputs/VolumeAttachmentSourceArgs.java @@ -13,7 +13,7 @@ /** - * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. * */ public final class VolumeAttachmentSourceArgs extends com.pulumi.resources.ResourceArgs { diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/storage/v1/inputs/VolumeAttachmentSourcePatchArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetes/storage/v1/inputs/VolumeAttachmentSourcePatchArgs.java index 9ebfa75dab..3c9fe3e460 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/storage/v1/inputs/VolumeAttachmentSourcePatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/storage/v1/inputs/VolumeAttachmentSourcePatchArgs.java @@ -13,7 +13,7 @@ /** - * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. * */ public final class VolumeAttachmentSourcePatchArgs extends com.pulumi.resources.ResourceArgs { diff --git a/sdk/nodejs/admissionregistration/v1alpha1/index.ts b/sdk/nodejs/admissionregistration/v1alpha1/index.ts index 316e968a01..927ed2c290 100644 --- a/sdk/nodejs/admissionregistration/v1alpha1/index.ts +++ b/sdk/nodejs/admissionregistration/v1alpha1/index.ts @@ -5,6 +5,36 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../../utilities"; // Export members: +export { MutatingAdmissionPolicyArgs } from "./mutatingAdmissionPolicy"; +export type MutatingAdmissionPolicy = import("./mutatingAdmissionPolicy").MutatingAdmissionPolicy; +export const MutatingAdmissionPolicy: typeof import("./mutatingAdmissionPolicy").MutatingAdmissionPolicy = null as any; +utilities.lazyLoad(exports, ["MutatingAdmissionPolicy"], () => require("./mutatingAdmissionPolicy")); + +export { MutatingAdmissionPolicyBindingArgs } from "./mutatingAdmissionPolicyBinding"; +export type MutatingAdmissionPolicyBinding = import("./mutatingAdmissionPolicyBinding").MutatingAdmissionPolicyBinding; +export const MutatingAdmissionPolicyBinding: typeof import("./mutatingAdmissionPolicyBinding").MutatingAdmissionPolicyBinding = null as any; +utilities.lazyLoad(exports, ["MutatingAdmissionPolicyBinding"], () => require("./mutatingAdmissionPolicyBinding")); + +export { MutatingAdmissionPolicyBindingListArgs } from "./mutatingAdmissionPolicyBindingList"; +export type MutatingAdmissionPolicyBindingList = import("./mutatingAdmissionPolicyBindingList").MutatingAdmissionPolicyBindingList; +export const MutatingAdmissionPolicyBindingList: typeof import("./mutatingAdmissionPolicyBindingList").MutatingAdmissionPolicyBindingList = null as any; +utilities.lazyLoad(exports, ["MutatingAdmissionPolicyBindingList"], () => require("./mutatingAdmissionPolicyBindingList")); + +export { MutatingAdmissionPolicyBindingPatchArgs } from "./mutatingAdmissionPolicyBindingPatch"; +export type MutatingAdmissionPolicyBindingPatch = import("./mutatingAdmissionPolicyBindingPatch").MutatingAdmissionPolicyBindingPatch; +export const MutatingAdmissionPolicyBindingPatch: typeof import("./mutatingAdmissionPolicyBindingPatch").MutatingAdmissionPolicyBindingPatch = null as any; +utilities.lazyLoad(exports, ["MutatingAdmissionPolicyBindingPatch"], () => require("./mutatingAdmissionPolicyBindingPatch")); + +export { MutatingAdmissionPolicyListArgs } from "./mutatingAdmissionPolicyList"; +export type MutatingAdmissionPolicyList = import("./mutatingAdmissionPolicyList").MutatingAdmissionPolicyList; +export const MutatingAdmissionPolicyList: typeof import("./mutatingAdmissionPolicyList").MutatingAdmissionPolicyList = null as any; +utilities.lazyLoad(exports, ["MutatingAdmissionPolicyList"], () => require("./mutatingAdmissionPolicyList")); + +export { MutatingAdmissionPolicyPatchArgs } from "./mutatingAdmissionPolicyPatch"; +export type MutatingAdmissionPolicyPatch = import("./mutatingAdmissionPolicyPatch").MutatingAdmissionPolicyPatch; +export const MutatingAdmissionPolicyPatch: typeof import("./mutatingAdmissionPolicyPatch").MutatingAdmissionPolicyPatch = null as any; +utilities.lazyLoad(exports, ["MutatingAdmissionPolicyPatch"], () => require("./mutatingAdmissionPolicyPatch")); + export { ValidatingAdmissionPolicyArgs } from "./validatingAdmissionPolicy"; export type ValidatingAdmissionPolicy = import("./validatingAdmissionPolicy").ValidatingAdmissionPolicy; export const ValidatingAdmissionPolicy: typeof import("./validatingAdmissionPolicy").ValidatingAdmissionPolicy = null as any; @@ -40,6 +70,18 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy": + return new MutatingAdmissionPolicy(name, undefined, { urn }) + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding": + return new MutatingAdmissionPolicyBinding(name, undefined, { urn }) + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList": + return new MutatingAdmissionPolicyBindingList(name, undefined, { urn }) + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch": + return new MutatingAdmissionPolicyBindingPatch(name, undefined, { urn }) + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList": + return new MutatingAdmissionPolicyList(name, undefined, { urn }) + case "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch": + return new MutatingAdmissionPolicyPatch(name, undefined, { urn }) case "kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicy": return new ValidatingAdmissionPolicy(name, undefined, { urn }) case "kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBinding": diff --git a/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicy.ts b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicy.ts new file mode 100644 index 0000000000..e8ee570f98 --- /dev/null +++ b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicy.ts @@ -0,0 +1,103 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + */ +export class MutatingAdmissionPolicy extends pulumi.CustomResource { + /** + * Get an existing MutatingAdmissionPolicy resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): MutatingAdmissionPolicy { + return new MutatingAdmissionPolicy(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy'; + + /** + * Returns true if the given object is an instance of MutatingAdmissionPolicy. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MutatingAdmissionPolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MutatingAdmissionPolicy.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"MutatingAdmissionPolicy">; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + public readonly metadata!: pulumi.Output; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a MutatingAdmissionPolicy resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: MutatingAdmissionPolicyArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "admissionregistration.k8s.io/v1alpha1"; + resourceInputs["kind"] = "MutatingAdmissionPolicy"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MutatingAdmissionPolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MutatingAdmissionPolicy resource. + */ +export interface MutatingAdmissionPolicyArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"admissionregistration.k8s.io/v1alpha1">; + /** + * 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 + */ + kind?: pulumi.Input<"MutatingAdmissionPolicy">; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + metadata?: pulumi.Input; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.ts b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.ts new file mode 100644 index 0000000000..3cecc621c1 --- /dev/null +++ b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.ts @@ -0,0 +1,107 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + * + * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + * + * Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + */ +export class MutatingAdmissionPolicyBinding extends pulumi.CustomResource { + /** + * Get an existing MutatingAdmissionPolicyBinding resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): MutatingAdmissionPolicyBinding { + return new MutatingAdmissionPolicyBinding(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding'; + + /** + * Returns true if the given object is an instance of MutatingAdmissionPolicyBinding. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MutatingAdmissionPolicyBinding { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MutatingAdmissionPolicyBinding.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"MutatingAdmissionPolicyBinding">; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + public readonly metadata!: pulumi.Output; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a MutatingAdmissionPolicyBinding resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: MutatingAdmissionPolicyBindingArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "admissionregistration.k8s.io/v1alpha1"; + resourceInputs["kind"] = "MutatingAdmissionPolicyBinding"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MutatingAdmissionPolicyBinding.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MutatingAdmissionPolicyBinding resource. + */ +export interface MutatingAdmissionPolicyBindingArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"admissionregistration.k8s.io/v1alpha1">; + /** + * 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 + */ + kind?: pulumi.Input<"MutatingAdmissionPolicyBinding">; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + metadata?: pulumi.Input; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.ts b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.ts new file mode 100644 index 0000000000..86ebef0228 --- /dev/null +++ b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. + */ +export class MutatingAdmissionPolicyBindingList extends pulumi.CustomResource { + /** + * Get an existing MutatingAdmissionPolicyBindingList resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): MutatingAdmissionPolicyBindingList { + return new MutatingAdmissionPolicyBindingList(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList'; + + /** + * Returns true if the given object is an instance of MutatingAdmissionPolicyBindingList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MutatingAdmissionPolicyBindingList { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MutatingAdmissionPolicyBindingList.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + /** + * List of PolicyBinding. + */ + public readonly items!: pulumi.Output; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"MutatingAdmissionPolicyBindingList">; + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + */ + public readonly metadata!: pulumi.Output; + + /** + * Create a MutatingAdmissionPolicyBindingList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: MutatingAdmissionPolicyBindingListArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.items === undefined) && !opts.urn) { + throw new Error("Missing required property 'items'"); + } + resourceInputs["apiVersion"] = "admissionregistration.k8s.io/v1alpha1"; + resourceInputs["items"] = args ? args.items : undefined; + resourceInputs["kind"] = "MutatingAdmissionPolicyBindingList"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["items"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MutatingAdmissionPolicyBindingList.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MutatingAdmissionPolicyBindingList resource. + */ +export interface MutatingAdmissionPolicyBindingListArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"admissionregistration.k8s.io/v1alpha1">; + /** + * List of PolicyBinding. + */ + items: pulumi.Input[]>; + /** + * 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 + */ + kind?: pulumi.Input<"MutatingAdmissionPolicyBindingList">; + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + */ + metadata?: pulumi.Input; +} diff --git a/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.ts b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.ts new file mode 100644 index 0000000000..8114eabf2c --- /dev/null +++ b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.ts @@ -0,0 +1,113 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + * + * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + * + * Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + */ +export class MutatingAdmissionPolicyBindingPatch extends pulumi.CustomResource { + /** + * Get an existing MutatingAdmissionPolicyBindingPatch resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): MutatingAdmissionPolicyBindingPatch { + return new MutatingAdmissionPolicyBindingPatch(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch'; + + /** + * Returns true if the given object is an instance of MutatingAdmissionPolicyBindingPatch. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MutatingAdmissionPolicyBindingPatch { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MutatingAdmissionPolicyBindingPatch.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"MutatingAdmissionPolicyBinding">; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + public readonly metadata!: pulumi.Output; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a MutatingAdmissionPolicyBindingPatch resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: MutatingAdmissionPolicyBindingPatchArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "admissionregistration.k8s.io/v1alpha1"; + resourceInputs["kind"] = "MutatingAdmissionPolicyBinding"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MutatingAdmissionPolicyBindingPatch.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MutatingAdmissionPolicyBindingPatch resource. + */ +export interface MutatingAdmissionPolicyBindingPatchArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"admissionregistration.k8s.io/v1alpha1">; + /** + * 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 + */ + kind?: pulumi.Input<"MutatingAdmissionPolicyBinding">; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + metadata?: pulumi.Input; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyList.ts b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyList.ts new file mode 100644 index 0000000000..9fb6b38506 --- /dev/null +++ b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyList.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. + */ +export class MutatingAdmissionPolicyList extends pulumi.CustomResource { + /** + * Get an existing MutatingAdmissionPolicyList resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): MutatingAdmissionPolicyList { + return new MutatingAdmissionPolicyList(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList'; + + /** + * Returns true if the given object is an instance of MutatingAdmissionPolicyList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MutatingAdmissionPolicyList { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MutatingAdmissionPolicyList.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + /** + * List of ValidatingAdmissionPolicy. + */ + public readonly items!: pulumi.Output; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"MutatingAdmissionPolicyList">; + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + */ + public readonly metadata!: pulumi.Output; + + /** + * Create a MutatingAdmissionPolicyList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: MutatingAdmissionPolicyListArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.items === undefined) && !opts.urn) { + throw new Error("Missing required property 'items'"); + } + resourceInputs["apiVersion"] = "admissionregistration.k8s.io/v1alpha1"; + resourceInputs["items"] = args ? args.items : undefined; + resourceInputs["kind"] = "MutatingAdmissionPolicyList"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["items"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MutatingAdmissionPolicyList.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MutatingAdmissionPolicyList resource. + */ +export interface MutatingAdmissionPolicyListArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"admissionregistration.k8s.io/v1alpha1">; + /** + * List of ValidatingAdmissionPolicy. + */ + items: pulumi.Input[]>; + /** + * 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 + */ + kind?: pulumi.Input<"MutatingAdmissionPolicyList">; + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + */ + metadata?: pulumi.Input; +} diff --git a/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.ts b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.ts new file mode 100644 index 0000000000..5bbb0dfeba --- /dev/null +++ b/sdk/nodejs/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.ts @@ -0,0 +1,109 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + */ +export class MutatingAdmissionPolicyPatch extends pulumi.CustomResource { + /** + * Get an existing MutatingAdmissionPolicyPatch resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): MutatingAdmissionPolicyPatch { + return new MutatingAdmissionPolicyPatch(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch'; + + /** + * Returns true if the given object is an instance of MutatingAdmissionPolicyPatch. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MutatingAdmissionPolicyPatch { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MutatingAdmissionPolicyPatch.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"MutatingAdmissionPolicy">; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + public readonly metadata!: pulumi.Output; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a MutatingAdmissionPolicyPatch resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: MutatingAdmissionPolicyPatchArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "admissionregistration.k8s.io/v1alpha1"; + resourceInputs["kind"] = "MutatingAdmissionPolicy"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MutatingAdmissionPolicyPatch.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MutatingAdmissionPolicyPatch resource. + */ +export interface MutatingAdmissionPolicyPatchArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"admissionregistration.k8s.io/v1alpha1">; + /** + * 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 + */ + kind?: pulumi.Input<"MutatingAdmissionPolicy">; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + metadata?: pulumi.Input; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.ts b/sdk/nodejs/admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.ts index 8ff285b085..6cf5a5fd3d 100644 --- a/sdk/nodejs/admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.ts +++ b/sdk/nodejs/admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.ts @@ -9,10 +9,6 @@ import * as utilities from "../../utilities"; /** * ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - * - * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - * - * The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. */ export class ValidatingAdmissionPolicyBinding extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/admissionregistration/v1alpha1/validatingAdmissionPolicyBindingPatch.ts b/sdk/nodejs/admissionregistration/v1alpha1/validatingAdmissionPolicyBindingPatch.ts index 57fb2f078e..3060a7980b 100644 --- a/sdk/nodejs/admissionregistration/v1alpha1/validatingAdmissionPolicyBindingPatch.ts +++ b/sdk/nodejs/admissionregistration/v1alpha1/validatingAdmissionPolicyBindingPatch.ts @@ -15,10 +15,6 @@ import * as utilities from "../../utilities"; * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. * ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - * - * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - * - * The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. */ export class ValidatingAdmissionPolicyBindingPatch extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/coordination/index.ts b/sdk/nodejs/coordination/index.ts index 35c893e175..d0a1d6c7db 100644 --- a/sdk/nodejs/coordination/index.ts +++ b/sdk/nodejs/coordination/index.ts @@ -6,10 +6,12 @@ import * as utilities from "../utilities"; // Export sub-modules: import * as v1 from "./v1"; import * as v1alpha1 from "./v1alpha1"; +import * as v1alpha2 from "./v1alpha2"; import * as v1beta1 from "./v1beta1"; export { v1, v1alpha1, + v1alpha2, v1beta1, }; diff --git a/sdk/nodejs/coordination/v1alpha1/leaseCandidate.ts b/sdk/nodejs/coordination/v1alpha1/leaseCandidate.ts index 97308e9a2b..813f8fe66a 100644 --- a/sdk/nodejs/coordination/v1alpha1/leaseCandidate.ts +++ b/sdk/nodejs/coordination/v1alpha1/leaseCandidate.ts @@ -76,6 +76,8 @@ export class LeaseCandidate extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); super(LeaseCandidate.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/coordination/v1alpha1/leaseCandidatePatch.ts b/sdk/nodejs/coordination/v1alpha1/leaseCandidatePatch.ts index c56e5f9f22..8ac63ebeeb 100644 --- a/sdk/nodejs/coordination/v1alpha1/leaseCandidatePatch.ts +++ b/sdk/nodejs/coordination/v1alpha1/leaseCandidatePatch.ts @@ -82,6 +82,8 @@ export class LeaseCandidatePatch extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); super(LeaseCandidatePatch.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/coordination/v1alpha2/index.ts b/sdk/nodejs/coordination/v1alpha2/index.ts new file mode 100644 index 0000000000..a51e0bc9ba --- /dev/null +++ b/sdk/nodejs/coordination/v1alpha2/index.ts @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../../utilities"; + +// Export members: +export { LeaseCandidateArgs } from "./leaseCandidate"; +export type LeaseCandidate = import("./leaseCandidate").LeaseCandidate; +export const LeaseCandidate: typeof import("./leaseCandidate").LeaseCandidate = null as any; +utilities.lazyLoad(exports, ["LeaseCandidate"], () => require("./leaseCandidate")); + +export { LeaseCandidateListArgs } from "./leaseCandidateList"; +export type LeaseCandidateList = import("./leaseCandidateList").LeaseCandidateList; +export const LeaseCandidateList: typeof import("./leaseCandidateList").LeaseCandidateList = null as any; +utilities.lazyLoad(exports, ["LeaseCandidateList"], () => require("./leaseCandidateList")); + +export { LeaseCandidatePatchArgs } from "./leaseCandidatePatch"; +export type LeaseCandidatePatch = import("./leaseCandidatePatch").LeaseCandidatePatch; +export const LeaseCandidatePatch: typeof import("./leaseCandidatePatch").LeaseCandidatePatch = null as any; +utilities.lazyLoad(exports, ["LeaseCandidatePatch"], () => require("./leaseCandidatePatch")); + + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate": + return new LeaseCandidate(name, undefined, { urn }) + case "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList": + return new LeaseCandidateList(name, undefined, { urn }) + case "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch": + return new LeaseCandidatePatch(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("kubernetes", "coordination.k8s.io/v1alpha2", _module) diff --git a/sdk/nodejs/coordination/v1alpha2/leaseCandidate.ts b/sdk/nodejs/coordination/v1alpha2/leaseCandidate.ts new file mode 100644 index 0000000000..d0d1bcfc37 --- /dev/null +++ b/sdk/nodejs/coordination/v1alpha2/leaseCandidate.ts @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + */ +export class LeaseCandidate extends pulumi.CustomResource { + /** + * Get an existing LeaseCandidate resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): LeaseCandidate { + return new LeaseCandidate(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate'; + + /** + * Returns true if the given object is an instance of LeaseCandidate. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is LeaseCandidate { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LeaseCandidate.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"coordination.k8s.io/v1alpha2">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"LeaseCandidate">; + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + public readonly metadata!: pulumi.Output; + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + public readonly spec!: pulumi.Output; + + /** + * Create a LeaseCandidate resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: LeaseCandidateArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "coordination.k8s.io/v1alpha2"; + resourceInputs["kind"] = "LeaseCandidate"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidate" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(LeaseCandidate.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a LeaseCandidate resource. + */ +export interface LeaseCandidateArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"coordination.k8s.io/v1alpha2">; + /** + * 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 + */ + kind?: pulumi.Input<"LeaseCandidate">; + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + metadata?: pulumi.Input; + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/coordination/v1alpha2/leaseCandidateList.ts b/sdk/nodejs/coordination/v1alpha2/leaseCandidateList.ts new file mode 100644 index 0000000000..4c6d8c29ba --- /dev/null +++ b/sdk/nodejs/coordination/v1alpha2/leaseCandidateList.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * LeaseCandidateList is a list of Lease objects. + */ +export class LeaseCandidateList extends pulumi.CustomResource { + /** + * Get an existing LeaseCandidateList resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): LeaseCandidateList { + return new LeaseCandidateList(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList'; + + /** + * Returns true if the given object is an instance of LeaseCandidateList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is LeaseCandidateList { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LeaseCandidateList.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"coordination.k8s.io/v1alpha2">; + /** + * items is a list of schema objects. + */ + public readonly items!: pulumi.Output; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"LeaseCandidateList">; + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + public readonly metadata!: pulumi.Output; + + /** + * Create a LeaseCandidateList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: LeaseCandidateListArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.items === undefined) && !opts.urn) { + throw new Error("Missing required property 'items'"); + } + resourceInputs["apiVersion"] = "coordination.k8s.io/v1alpha2"; + resourceInputs["items"] = args ? args.items : undefined; + resourceInputs["kind"] = "LeaseCandidateList"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["items"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(LeaseCandidateList.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a LeaseCandidateList resource. + */ +export interface LeaseCandidateListArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"coordination.k8s.io/v1alpha2">; + /** + * items is a list of schema objects. + */ + items: pulumi.Input[]>; + /** + * 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 + */ + kind?: pulumi.Input<"LeaseCandidateList">; + /** + * Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + metadata?: pulumi.Input; +} diff --git a/sdk/nodejs/coordination/v1alpha2/leaseCandidatePatch.ts b/sdk/nodejs/coordination/v1alpha2/leaseCandidatePatch.ts new file mode 100644 index 0000000000..e7edb8aee6 --- /dev/null +++ b/sdk/nodejs/coordination/v1alpha2/leaseCandidatePatch.ts @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + */ +export class LeaseCandidatePatch extends pulumi.CustomResource { + /** + * Get an existing LeaseCandidatePatch resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): LeaseCandidatePatch { + return new LeaseCandidatePatch(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch'; + + /** + * Returns true if the given object is an instance of LeaseCandidatePatch. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is LeaseCandidatePatch { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LeaseCandidatePatch.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"coordination.k8s.io/v1alpha2">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"LeaseCandidate">; + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + public readonly metadata!: pulumi.Output; + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + public readonly spec!: pulumi.Output; + + /** + * Create a LeaseCandidatePatch resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: LeaseCandidatePatchArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "coordination.k8s.io/v1alpha2"; + resourceInputs["kind"] = "LeaseCandidate"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidatePatch" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(LeaseCandidatePatch.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a LeaseCandidatePatch resource. + */ +export interface LeaseCandidatePatchArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"coordination.k8s.io/v1alpha2">; + /** + * 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 + */ + kind?: pulumi.Input<"LeaseCandidate">; + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + metadata?: pulumi.Input; + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/core/v1/binding.ts b/sdk/nodejs/core/v1/binding.ts index c13dfde98e..111208c67e 100644 --- a/sdk/nodejs/core/v1/binding.ts +++ b/sdk/nodejs/core/v1/binding.ts @@ -8,7 +8,7 @@ import * as enums from "../../types/enums"; import * as utilities from "../../utilities"; /** - * Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + * Binding ties one object to another; for example, a pod is bound to a node by a scheduler. */ export class Binding extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/core/v1/bindingPatch.ts b/sdk/nodejs/core/v1/bindingPatch.ts index 5b93ea102a..be3343ecab 100644 --- a/sdk/nodejs/core/v1/bindingPatch.ts +++ b/sdk/nodejs/core/v1/bindingPatch.ts @@ -14,7 +14,7 @@ import * as utilities from "../../utilities"; * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. - * Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + * Binding ties one object to another; for example, a pod is bound to a node by a scheduler. */ export class BindingPatch extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/core/v1/serviceAccount.ts b/sdk/nodejs/core/v1/serviceAccount.ts index 48463238f8..ce25aef41a 100644 --- a/sdk/nodejs/core/v1/serviceAccount.ts +++ b/sdk/nodejs/core/v1/serviceAccount.ts @@ -58,7 +58,7 @@ export class ServiceAccount extends pulumi.CustomResource { */ public readonly metadata!: pulumi.Output; /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret */ public readonly secrets!: pulumi.Output; @@ -117,7 +117,7 @@ export interface ServiceAccountArgs { */ metadata?: pulumi.Input; /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret */ secrets?: pulumi.Input[]>; } diff --git a/sdk/nodejs/core/v1/serviceAccountPatch.ts b/sdk/nodejs/core/v1/serviceAccountPatch.ts index d3fcd02b03..ace238fec6 100644 --- a/sdk/nodejs/core/v1/serviceAccountPatch.ts +++ b/sdk/nodejs/core/v1/serviceAccountPatch.ts @@ -64,7 +64,7 @@ export class ServiceAccountPatch extends pulumi.CustomResource { */ public readonly metadata!: pulumi.Output; /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret */ public readonly secrets!: pulumi.Output; @@ -123,7 +123,7 @@ export interface ServiceAccountPatchArgs { */ metadata?: pulumi.Input; /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret */ secrets?: pulumi.Input[]>; } diff --git a/sdk/nodejs/resource/index.ts b/sdk/nodejs/resource/index.ts index d72d2b84df..0e229bf519 100644 --- a/sdk/nodejs/resource/index.ts +++ b/sdk/nodejs/resource/index.ts @@ -7,9 +7,11 @@ import * as utilities from "../utilities"; import * as v1alpha1 from "./v1alpha1"; import * as v1alpha2 from "./v1alpha2"; import * as v1alpha3 from "./v1alpha3"; +import * as v1beta1 from "./v1beta1"; export { v1alpha1, v1alpha2, v1alpha3, + v1beta1, }; diff --git a/sdk/nodejs/resource/v1alpha1/resourceClaim.ts b/sdk/nodejs/resource/v1alpha1/resourceClaim.ts index dc2150da34..0af7a5c8b4 100644 --- a/sdk/nodejs/resource/v1alpha1/resourceClaim.ts +++ b/sdk/nodejs/resource/v1alpha1/resourceClaim.ts @@ -87,7 +87,7 @@ export class ResourceClaim extends pulumi.CustomResource { resourceInputs["status"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaim" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaim" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaim.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha1/resourceClaimPatch.ts b/sdk/nodejs/resource/v1alpha1/resourceClaimPatch.ts index 617de6442c..7067344d36 100644 --- a/sdk/nodejs/resource/v1alpha1/resourceClaimPatch.ts +++ b/sdk/nodejs/resource/v1alpha1/resourceClaimPatch.ts @@ -90,7 +90,7 @@ export class ResourceClaimPatch extends pulumi.CustomResource { resourceInputs["status"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimPatch.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha1/resourceClaimTemplate.ts b/sdk/nodejs/resource/v1alpha1/resourceClaimTemplate.ts index 7887eb23a4..58457d6f53 100644 --- a/sdk/nodejs/resource/v1alpha1/resourceClaimTemplate.ts +++ b/sdk/nodejs/resource/v1alpha1/resourceClaimTemplate.ts @@ -81,7 +81,7 @@ export class ResourceClaimTemplate extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimTemplate.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha1/resourceClaimTemplatePatch.ts b/sdk/nodejs/resource/v1alpha1/resourceClaimTemplatePatch.ts index b7abe10ce1..3f0a567aa9 100644 --- a/sdk/nodejs/resource/v1alpha1/resourceClaimTemplatePatch.ts +++ b/sdk/nodejs/resource/v1alpha1/resourceClaimTemplatePatch.ts @@ -84,7 +84,7 @@ export class ResourceClaimTemplatePatch extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimTemplatePatch.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha2/resourceClaim.ts b/sdk/nodejs/resource/v1alpha2/resourceClaim.ts index 1bbc36ff8d..6e87928345 100644 --- a/sdk/nodejs/resource/v1alpha2/resourceClaim.ts +++ b/sdk/nodejs/resource/v1alpha2/resourceClaim.ts @@ -87,7 +87,7 @@ export class ResourceClaim extends pulumi.CustomResource { resourceInputs["status"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaim" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaim" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaim.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha2/resourceClaimPatch.ts b/sdk/nodejs/resource/v1alpha2/resourceClaimPatch.ts index 1b68ddacf2..fabd3db89c 100644 --- a/sdk/nodejs/resource/v1alpha2/resourceClaimPatch.ts +++ b/sdk/nodejs/resource/v1alpha2/resourceClaimPatch.ts @@ -90,7 +90,7 @@ export class ResourceClaimPatch extends pulumi.CustomResource { resourceInputs["status"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimPatch.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha2/resourceClaimTemplate.ts b/sdk/nodejs/resource/v1alpha2/resourceClaimTemplate.ts index 5bd1dc366c..dc34407662 100644 --- a/sdk/nodejs/resource/v1alpha2/resourceClaimTemplate.ts +++ b/sdk/nodejs/resource/v1alpha2/resourceClaimTemplate.ts @@ -81,7 +81,7 @@ export class ResourceClaimTemplate extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimTemplate.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha2/resourceClaimTemplatePatch.ts b/sdk/nodejs/resource/v1alpha2/resourceClaimTemplatePatch.ts index d300db5fac..4bc45bc25d 100644 --- a/sdk/nodejs/resource/v1alpha2/resourceClaimTemplatePatch.ts +++ b/sdk/nodejs/resource/v1alpha2/resourceClaimTemplatePatch.ts @@ -84,7 +84,7 @@ export class ResourceClaimTemplatePatch extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimTemplatePatch.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha2/resourceSlice.ts b/sdk/nodejs/resource/v1alpha2/resourceSlice.ts index 6febf719d3..7e5166f5da 100644 --- a/sdk/nodejs/resource/v1alpha2/resourceSlice.ts +++ b/sdk/nodejs/resource/v1alpha2/resourceSlice.ts @@ -93,7 +93,7 @@ export class ResourceSlice extends pulumi.CustomResource { resourceInputs["nodeName"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha3:ResourceSlice" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha3:ResourceSlice" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceSlice" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceSlice.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha2/resourceSlicePatch.ts b/sdk/nodejs/resource/v1alpha2/resourceSlicePatch.ts index 391084d417..9c48e2053c 100644 --- a/sdk/nodejs/resource/v1alpha2/resourceSlicePatch.ts +++ b/sdk/nodejs/resource/v1alpha2/resourceSlicePatch.ts @@ -96,7 +96,7 @@ export class ResourceSlicePatch extends pulumi.CustomResource { resourceInputs["nodeName"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceSlicePatch.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha3/deviceClass.ts b/sdk/nodejs/resource/v1alpha3/deviceClass.ts index 2225750b62..824306a58e 100644 --- a/sdk/nodejs/resource/v1alpha3/deviceClass.ts +++ b/sdk/nodejs/resource/v1alpha3/deviceClass.ts @@ -85,6 +85,8 @@ export class DeviceClass extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1beta1:DeviceClass" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); super(DeviceClass.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/resource/v1alpha3/deviceClassPatch.ts b/sdk/nodejs/resource/v1alpha3/deviceClassPatch.ts index efa81397f4..1f0f0882b1 100644 --- a/sdk/nodejs/resource/v1alpha3/deviceClassPatch.ts +++ b/sdk/nodejs/resource/v1alpha3/deviceClassPatch.ts @@ -88,6 +88,8 @@ export class DeviceClassPatch extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); super(DeviceClassPatch.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/resource/v1alpha3/index.ts b/sdk/nodejs/resource/v1alpha3/index.ts index b486840be1..74aba4f793 100644 --- a/sdk/nodejs/resource/v1alpha3/index.ts +++ b/sdk/nodejs/resource/v1alpha3/index.ts @@ -70,6 +70,11 @@ export type ResourceSlice = import("./resourceSlice").ResourceSlice; export const ResourceSlice: typeof import("./resourceSlice").ResourceSlice = null as any; utilities.lazyLoad(exports, ["ResourceSlice"], () => require("./resourceSlice")); +export { ResourceSliceListArgs } from "./resourceSliceList"; +export type ResourceSliceList = import("./resourceSliceList").ResourceSliceList; +export const ResourceSliceList: typeof import("./resourceSliceList").ResourceSliceList = null as any; +utilities.lazyLoad(exports, ["ResourceSliceList"], () => require("./resourceSliceList")); + export { ResourceSlicePatchArgs } from "./resourceSlicePatch"; export type ResourceSlicePatch = import("./resourceSlicePatch").ResourceSlicePatch; export const ResourceSlicePatch: typeof import("./resourceSlicePatch").ResourceSlicePatch = null as any; @@ -106,6 +111,8 @@ const _module = { return new ResourceClaimTemplatePatch(name, undefined, { urn }) case "kubernetes:resource.k8s.io/v1alpha3:ResourceSlice": return new ResourceSlice(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList": + return new ResourceSliceList(name, undefined, { urn }) case "kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch": return new ResourceSlicePatch(name, undefined, { urn }) default: diff --git a/sdk/nodejs/resource/v1alpha3/resourceClaim.ts b/sdk/nodejs/resource/v1alpha3/resourceClaim.ts index ea0adf488c..582106083c 100644 --- a/sdk/nodejs/resource/v1alpha3/resourceClaim.ts +++ b/sdk/nodejs/resource/v1alpha3/resourceClaim.ts @@ -87,7 +87,7 @@ export class ResourceClaim extends pulumi.CustomResource { resourceInputs["status"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaim" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaim" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaim.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha3/resourceClaimPatch.ts b/sdk/nodejs/resource/v1alpha3/resourceClaimPatch.ts index 7a444e8130..a613b1ffb3 100644 --- a/sdk/nodejs/resource/v1alpha3/resourceClaimPatch.ts +++ b/sdk/nodejs/resource/v1alpha3/resourceClaimPatch.ts @@ -90,7 +90,7 @@ export class ResourceClaimPatch extends pulumi.CustomResource { resourceInputs["status"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimPatch.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha3/resourceClaimTemplate.ts b/sdk/nodejs/resource/v1alpha3/resourceClaimTemplate.ts index 930434cb65..108a906ee8 100644 --- a/sdk/nodejs/resource/v1alpha3/resourceClaimTemplate.ts +++ b/sdk/nodejs/resource/v1alpha3/resourceClaimTemplate.ts @@ -83,7 +83,7 @@ export class ResourceClaimTemplate extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimTemplate.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha3/resourceClaimTemplatePatch.ts b/sdk/nodejs/resource/v1alpha3/resourceClaimTemplatePatch.ts index 9613f50e2b..b2b1ee4a6c 100644 --- a/sdk/nodejs/resource/v1alpha3/resourceClaimTemplatePatch.ts +++ b/sdk/nodejs/resource/v1alpha3/resourceClaimTemplatePatch.ts @@ -86,7 +86,7 @@ export class ResourceClaimTemplatePatch extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceClaimTemplatePatch.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha3/resourceSlice.ts b/sdk/nodejs/resource/v1alpha3/resourceSlice.ts index 1ebcfb4785..6124217d32 100644 --- a/sdk/nodejs/resource/v1alpha3/resourceSlice.ts +++ b/sdk/nodejs/resource/v1alpha3/resourceSlice.ts @@ -91,7 +91,7 @@ export class ResourceSlice extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceSlice" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceSlice" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceSlice" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceSlice.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1alpha3/resourceSliceList.ts b/sdk/nodejs/resource/v1alpha3/resourceSliceList.ts new file mode 100644 index 0000000000..943175c989 --- /dev/null +++ b/sdk/nodejs/resource/v1alpha3/resourceSliceList.ts @@ -0,0 +1,116 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * ResourceSliceList is a collection of ResourceSlices. + */ +export class ResourceSliceList extends pulumi.CustomResource { + /** + * Get an existing ResourceSliceList resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceSliceList { + return new ResourceSliceList(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList'; + + /** + * Returns true if the given object is an instance of ResourceSliceList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceSliceList { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceSliceList.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1alpha3">; + /** + * Items is the list of resource ResourceSlices. + */ + public readonly items!: pulumi.Output; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceSliceList">; + /** + * Standard list metadata + */ + public readonly listMeta!: pulumi.Output; + /** + * Standard list metadata + */ + public readonly metadata!: pulumi.Output; + + /** + * Create a ResourceSliceList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceSliceListArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.items === undefined) && !opts.urn) { + throw new Error("Missing required property 'items'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1alpha3"; + resourceInputs["items"] = args ? args.items : undefined; + resourceInputs["kind"] = "ResourceSliceList"; + resourceInputs["listMeta"] = args ? args.listMeta : undefined; + resourceInputs["metadata"] = args ? args.metadata : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["items"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["listMeta"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResourceSliceList.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceSliceList resource. + */ +export interface ResourceSliceListArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + /** + * Items is the list of resource ResourceSlices. + */ + items: pulumi.Input[]>; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceSliceList">; + /** + * Standard list metadata + */ + listMeta?: pulumi.Input; + /** + * Standard list metadata + */ + metadata?: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1alpha3/resourceSlicePatch.ts b/sdk/nodejs/resource/v1alpha3/resourceSlicePatch.ts index 22473dd5df..ea9b88a61f 100644 --- a/sdk/nodejs/resource/v1alpha3/resourceSlicePatch.ts +++ b/sdk/nodejs/resource/v1alpha3/resourceSlicePatch.ts @@ -94,7 +94,7 @@ export class ResourceSlicePatch extends pulumi.CustomResource { resourceInputs["spec"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch" }] }; + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch" }, { type: "kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch" }] }; opts = pulumi.mergeOptions(opts, aliasOpts); super(ResourceSlicePatch.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/resource/v1beta1/deviceClass.ts b/sdk/nodejs/resource/v1beta1/deviceClass.ts new file mode 100644 index 0000000000..a022d37c31 --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/deviceClass.ts @@ -0,0 +1,118 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * 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. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ +export class DeviceClass extends pulumi.CustomResource { + /** + * Get an existing DeviceClass resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): DeviceClass { + return new DeviceClass(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:DeviceClass'; + + /** + * Returns true if the given object is an instance of DeviceClass. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is DeviceClass { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DeviceClass.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"DeviceClass">; + /** + * Standard object metadata + */ + public readonly metadata!: pulumi.Output; + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a DeviceClass resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: DeviceClassArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.spec === undefined) && !opts.urn) { + throw new Error("Missing required property 'spec'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["kind"] = "DeviceClass"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha3:DeviceClass" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(DeviceClass.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a DeviceClass resource. + */ +export interface DeviceClassArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"DeviceClass">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/deviceClassList.ts b/sdk/nodejs/resource/v1beta1/deviceClassList.ts new file mode 100644 index 0000000000..643a838e43 --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/deviceClassList.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * DeviceClassList is a collection of classes. + */ +export class DeviceClassList extends pulumi.CustomResource { + /** + * Get an existing DeviceClassList resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): DeviceClassList { + return new DeviceClassList(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:DeviceClassList'; + + /** + * Returns true if the given object is an instance of DeviceClassList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is DeviceClassList { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DeviceClassList.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * Items is the list of resource classes. + */ + public readonly items!: pulumi.Output; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"DeviceClassList">; + /** + * Standard list metadata + */ + public readonly metadata!: pulumi.Output; + + /** + * Create a DeviceClassList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: DeviceClassListArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.items === undefined) && !opts.urn) { + throw new Error("Missing required property 'items'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["items"] = args ? args.items : undefined; + resourceInputs["kind"] = "DeviceClassList"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["items"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(DeviceClassList.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a DeviceClassList resource. + */ +export interface DeviceClassListArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * Items is the list of resource classes. + */ + items: pulumi.Input[]>; + /** + * 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 + */ + kind?: pulumi.Input<"DeviceClassList">; + /** + * Standard list metadata + */ + metadata?: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/deviceClassPatch.ts b/sdk/nodejs/resource/v1beta1/deviceClassPatch.ts new file mode 100644 index 0000000000..10ae8410d0 --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/deviceClassPatch.ts @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * 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. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ +export class DeviceClassPatch extends pulumi.CustomResource { + /** + * Get an existing DeviceClassPatch resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): DeviceClassPatch { + return new DeviceClassPatch(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch'; + + /** + * Returns true if the given object is an instance of DeviceClassPatch. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is DeviceClassPatch { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DeviceClassPatch.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"DeviceClass">; + /** + * Standard object metadata + */ + public readonly metadata!: pulumi.Output; + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a DeviceClassPatch resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: DeviceClassPatchArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["kind"] = "DeviceClass"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha3:DeviceClassPatch" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(DeviceClassPatch.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a DeviceClassPatch resource. + */ +export interface DeviceClassPatchArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"DeviceClass">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/index.ts b/sdk/nodejs/resource/v1beta1/index.ts new file mode 100644 index 0000000000..377ee5584a --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/index.ts @@ -0,0 +1,102 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../../utilities"; + +// Export members: +export { DeviceClassArgs } from "./deviceClass"; +export type DeviceClass = import("./deviceClass").DeviceClass; +export const DeviceClass: typeof import("./deviceClass").DeviceClass = null as any; +utilities.lazyLoad(exports, ["DeviceClass"], () => require("./deviceClass")); + +export { DeviceClassListArgs } from "./deviceClassList"; +export type DeviceClassList = import("./deviceClassList").DeviceClassList; +export const DeviceClassList: typeof import("./deviceClassList").DeviceClassList = null as any; +utilities.lazyLoad(exports, ["DeviceClassList"], () => require("./deviceClassList")); + +export { DeviceClassPatchArgs } from "./deviceClassPatch"; +export type DeviceClassPatch = import("./deviceClassPatch").DeviceClassPatch; +export const DeviceClassPatch: typeof import("./deviceClassPatch").DeviceClassPatch = null as any; +utilities.lazyLoad(exports, ["DeviceClassPatch"], () => require("./deviceClassPatch")); + +export { ResourceClaimArgs } from "./resourceClaim"; +export type ResourceClaim = import("./resourceClaim").ResourceClaim; +export const ResourceClaim: typeof import("./resourceClaim").ResourceClaim = null as any; +utilities.lazyLoad(exports, ["ResourceClaim"], () => require("./resourceClaim")); + +export { ResourceClaimListArgs } from "./resourceClaimList"; +export type ResourceClaimList = import("./resourceClaimList").ResourceClaimList; +export const ResourceClaimList: typeof import("./resourceClaimList").ResourceClaimList = null as any; +utilities.lazyLoad(exports, ["ResourceClaimList"], () => require("./resourceClaimList")); + +export { ResourceClaimPatchArgs } from "./resourceClaimPatch"; +export type ResourceClaimPatch = import("./resourceClaimPatch").ResourceClaimPatch; +export const ResourceClaimPatch: typeof import("./resourceClaimPatch").ResourceClaimPatch = null as any; +utilities.lazyLoad(exports, ["ResourceClaimPatch"], () => require("./resourceClaimPatch")); + +export { ResourceClaimTemplateArgs } from "./resourceClaimTemplate"; +export type ResourceClaimTemplate = import("./resourceClaimTemplate").ResourceClaimTemplate; +export const ResourceClaimTemplate: typeof import("./resourceClaimTemplate").ResourceClaimTemplate = null as any; +utilities.lazyLoad(exports, ["ResourceClaimTemplate"], () => require("./resourceClaimTemplate")); + +export { ResourceClaimTemplateListArgs } from "./resourceClaimTemplateList"; +export type ResourceClaimTemplateList = import("./resourceClaimTemplateList").ResourceClaimTemplateList; +export const ResourceClaimTemplateList: typeof import("./resourceClaimTemplateList").ResourceClaimTemplateList = null as any; +utilities.lazyLoad(exports, ["ResourceClaimTemplateList"], () => require("./resourceClaimTemplateList")); + +export { ResourceClaimTemplatePatchArgs } from "./resourceClaimTemplatePatch"; +export type ResourceClaimTemplatePatch = import("./resourceClaimTemplatePatch").ResourceClaimTemplatePatch; +export const ResourceClaimTemplatePatch: typeof import("./resourceClaimTemplatePatch").ResourceClaimTemplatePatch = null as any; +utilities.lazyLoad(exports, ["ResourceClaimTemplatePatch"], () => require("./resourceClaimTemplatePatch")); + +export { ResourceSliceArgs } from "./resourceSlice"; +export type ResourceSlice = import("./resourceSlice").ResourceSlice; +export const ResourceSlice: typeof import("./resourceSlice").ResourceSlice = null as any; +utilities.lazyLoad(exports, ["ResourceSlice"], () => require("./resourceSlice")); + +export { ResourceSliceListArgs } from "./resourceSliceList"; +export type ResourceSliceList = import("./resourceSliceList").ResourceSliceList; +export const ResourceSliceList: typeof import("./resourceSliceList").ResourceSliceList = null as any; +utilities.lazyLoad(exports, ["ResourceSliceList"], () => require("./resourceSliceList")); + +export { ResourceSlicePatchArgs } from "./resourceSlicePatch"; +export type ResourceSlicePatch = import("./resourceSlicePatch").ResourceSlicePatch; +export const ResourceSlicePatch: typeof import("./resourceSlicePatch").ResourceSlicePatch = null as any; +utilities.lazyLoad(exports, ["ResourceSlicePatch"], () => require("./resourceSlicePatch")); + + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "kubernetes:resource.k8s.io/v1beta1:DeviceClass": + return new DeviceClass(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:DeviceClassList": + return new DeviceClassList(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch": + return new DeviceClassPatch(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaim": + return new ResourceClaim(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimList": + return new ResourceClaimList(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch": + return new ResourceClaimPatch(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate": + return new ResourceClaimTemplate(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList": + return new ResourceClaimTemplateList(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch": + return new ResourceClaimTemplatePatch(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceSlice": + return new ResourceSlice(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceSliceList": + return new ResourceSliceList(name, undefined, { urn }) + case "kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch": + return new ResourceSlicePatch(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("kubernetes", "resource.k8s.io/v1beta1", _module) diff --git a/sdk/nodejs/resource/v1beta1/resourceClaim.ts b/sdk/nodejs/resource/v1beta1/resourceClaim.ts new file mode 100644 index 0000000000..bd63f61c4f --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceClaim.ts @@ -0,0 +1,116 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ +export class ResourceClaim extends pulumi.CustomResource { + /** + * Get an existing ResourceClaim resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceClaim { + return new ResourceClaim(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceClaim'; + + /** + * Returns true if the given object is an instance of ResourceClaim. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceClaim { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceClaim.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceClaim">; + /** + * Standard object metadata + */ + public readonly metadata!: pulumi.Output; + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + */ + public readonly spec!: pulumi.Output; + /** + * Status describes whether the claim is ready to use and what has been allocated. + */ + public /*out*/ readonly status!: pulumi.Output; + + /** + * Create a ResourceClaim resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceClaimArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.spec === undefined) && !opts.urn) { + throw new Error("Missing required property 'spec'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["kind"] = "ResourceClaim"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + resourceInputs["status"] = undefined /*out*/; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaim" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaim" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(ResourceClaim.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceClaim resource. + */ +export interface ResourceClaimArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceClaim">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + */ + spec: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/resourceClaimList.ts b/sdk/nodejs/resource/v1beta1/resourceClaimList.ts new file mode 100644 index 0000000000..ad22260b53 --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceClaimList.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * ResourceClaimList is a collection of claims. + */ +export class ResourceClaimList extends pulumi.CustomResource { + /** + * Get an existing ResourceClaimList resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceClaimList { + return new ResourceClaimList(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimList'; + + /** + * Returns true if the given object is an instance of ResourceClaimList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceClaimList { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceClaimList.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * Items is the list of resource claims. + */ + public readonly items!: pulumi.Output; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceClaimList">; + /** + * Standard list metadata + */ + public readonly metadata!: pulumi.Output; + + /** + * Create a ResourceClaimList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceClaimListArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.items === undefined) && !opts.urn) { + throw new Error("Missing required property 'items'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["items"] = args ? args.items : undefined; + resourceInputs["kind"] = "ResourceClaimList"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["items"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResourceClaimList.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceClaimList resource. + */ +export interface ResourceClaimListArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * Items is the list of resource claims. + */ + items: pulumi.Input[]>; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceClaimList">; + /** + * Standard list metadata + */ + metadata?: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/resourceClaimPatch.ts b/sdk/nodejs/resource/v1beta1/resourceClaimPatch.ts new file mode 100644 index 0000000000..94f8a684ff --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceClaimPatch.ts @@ -0,0 +1,119 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ +export class ResourceClaimPatch extends pulumi.CustomResource { + /** + * Get an existing ResourceClaimPatch resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceClaimPatch { + return new ResourceClaimPatch(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch'; + + /** + * Returns true if the given object is an instance of ResourceClaimPatch. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceClaimPatch { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceClaimPatch.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceClaim">; + /** + * Standard object metadata + */ + public readonly metadata!: pulumi.Output; + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + */ + public readonly spec!: pulumi.Output; + /** + * Status describes whether the claim is ready to use and what has been allocated. + */ + public /*out*/ readonly status!: pulumi.Output; + + /** + * Create a ResourceClaimPatch resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceClaimPatchArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["kind"] = "ResourceClaim"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + resourceInputs["status"] = undefined /*out*/; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(ResourceClaimPatch.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceClaimPatch resource. + */ +export interface ResourceClaimPatchArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceClaim">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/resourceClaimTemplate.ts b/sdk/nodejs/resource/v1beta1/resourceClaimTemplate.ts new file mode 100644 index 0000000000..c59290db2b --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceClaimTemplate.ts @@ -0,0 +1,114 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * ResourceClaimTemplate is used to produce ResourceClaim objects. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ +export class ResourceClaimTemplate extends pulumi.CustomResource { + /** + * Get an existing ResourceClaimTemplate resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceClaimTemplate { + return new ResourceClaimTemplate(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate'; + + /** + * Returns true if the given object is an instance of ResourceClaimTemplate. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceClaimTemplate { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceClaimTemplate.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceClaimTemplate">; + /** + * Standard object metadata + */ + public readonly metadata!: pulumi.Output; + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a ResourceClaimTemplate resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceClaimTemplateArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.spec === undefined) && !opts.urn) { + throw new Error("Missing required property 'spec'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["kind"] = "ResourceClaimTemplate"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(ResourceClaimTemplate.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceClaimTemplate resource. + */ +export interface ResourceClaimTemplateArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceClaimTemplate">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + */ + spec: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/resourceClaimTemplateList.ts b/sdk/nodejs/resource/v1beta1/resourceClaimTemplateList.ts new file mode 100644 index 0000000000..af619081eb --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceClaimTemplateList.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * ResourceClaimTemplateList is a collection of claim templates. + */ +export class ResourceClaimTemplateList extends pulumi.CustomResource { + /** + * Get an existing ResourceClaimTemplateList resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceClaimTemplateList { + return new ResourceClaimTemplateList(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList'; + + /** + * Returns true if the given object is an instance of ResourceClaimTemplateList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceClaimTemplateList { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceClaimTemplateList.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * Items is the list of resource claim templates. + */ + public readonly items!: pulumi.Output; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceClaimTemplateList">; + /** + * Standard list metadata + */ + public readonly metadata!: pulumi.Output; + + /** + * Create a ResourceClaimTemplateList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceClaimTemplateListArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.items === undefined) && !opts.urn) { + throw new Error("Missing required property 'items'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["items"] = args ? args.items : undefined; + resourceInputs["kind"] = "ResourceClaimTemplateList"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["items"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResourceClaimTemplateList.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceClaimTemplateList resource. + */ +export interface ResourceClaimTemplateListArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * Items is the list of resource claim templates. + */ + items: pulumi.Input[]>; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceClaimTemplateList">; + /** + * Standard list metadata + */ + metadata?: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/resourceClaimTemplatePatch.ts b/sdk/nodejs/resource/v1beta1/resourceClaimTemplatePatch.ts new file mode 100644 index 0000000000..e9139d5482 --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceClaimTemplatePatch.ts @@ -0,0 +1,117 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * ResourceClaimTemplate is used to produce ResourceClaim objects. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ +export class ResourceClaimTemplatePatch extends pulumi.CustomResource { + /** + * Get an existing ResourceClaimTemplatePatch resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceClaimTemplatePatch { + return new ResourceClaimTemplatePatch(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch'; + + /** + * Returns true if the given object is an instance of ResourceClaimTemplatePatch. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceClaimTemplatePatch { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceClaimTemplatePatch.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceClaimTemplate">; + /** + * Standard object metadata + */ + public readonly metadata!: pulumi.Output; + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a ResourceClaimTemplatePatch resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceClaimTemplatePatchArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["kind"] = "ResourceClaimTemplate"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(ResourceClaimTemplatePatch.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceClaimTemplatePatch resource. + */ +export interface ResourceClaimTemplatePatchArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceClaimTemplate">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/resourceSlice.ts b/sdk/nodejs/resource/v1beta1/resourceSlice.ts new file mode 100644 index 0000000000..c0f7dea3da --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceSlice.ts @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ +export class ResourceSlice extends pulumi.CustomResource { + /** + * Get an existing ResourceSlice resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceSlice { + return new ResourceSlice(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceSlice'; + + /** + * Returns true if the given object is an instance of ResourceSlice. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceSlice { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceSlice.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceSlice">; + /** + * Standard object metadata + */ + public readonly metadata!: pulumi.Output; + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a ResourceSlice resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceSliceArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.spec === undefined) && !opts.urn) { + throw new Error("Missing required property 'spec'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["kind"] = "ResourceSlice"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceSlice" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceSlice" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(ResourceSlice.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceSlice resource. + */ +export interface ResourceSliceArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceSlice">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/resourceSliceList.ts b/sdk/nodejs/resource/v1beta1/resourceSliceList.ts new file mode 100644 index 0000000000..0975190748 --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceSliceList.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * ResourceSliceList is a collection of ResourceSlices. + */ +export class ResourceSliceList extends pulumi.CustomResource { + /** + * Get an existing ResourceSliceList resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceSliceList { + return new ResourceSliceList(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceSliceList'; + + /** + * Returns true if the given object is an instance of ResourceSliceList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceSliceList { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceSliceList.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * Items is the list of resource ResourceSlices. + */ + public readonly items!: pulumi.Output; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceSliceList">; + /** + * Standard list metadata + */ + public readonly metadata!: pulumi.Output; + + /** + * Create a ResourceSliceList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceSliceListArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.items === undefined) && !opts.urn) { + throw new Error("Missing required property 'items'"); + } + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["items"] = args ? args.items : undefined; + resourceInputs["kind"] = "ResourceSliceList"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["items"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResourceSliceList.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceSliceList resource. + */ +export interface ResourceSliceListArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * Items is the list of resource ResourceSlices. + */ + items: pulumi.Input[]>; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceSliceList">; + /** + * Standard list metadata + */ + metadata?: pulumi.Input; +} diff --git a/sdk/nodejs/resource/v1beta1/resourceSlicePatch.ts b/sdk/nodejs/resource/v1beta1/resourceSlicePatch.ts new file mode 100644 index 0000000000..3fbd7bb7fb --- /dev/null +++ b/sdk/nodejs/resource/v1beta1/resourceSlicePatch.ts @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumigen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import * as enums from "../../types/enums"; +import * as utilities from "../../utilities"; + +/** + * Patch resources are used to modify existing Kubernetes resources by using + * Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + * one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + * Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + * [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + * additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ +export class ResourceSlicePatch extends pulumi.CustomResource { + /** + * Get an existing ResourceSlicePatch resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ResourceSlicePatch { + return new ResourceSlicePatch(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch'; + + /** + * Returns true if the given object is an instance of ResourceSlicePatch. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceSlicePatch { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceSlicePatch.__pulumiType; + } + + /** + * 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 + */ + public readonly apiVersion!: pulumi.Output<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + public readonly kind!: pulumi.Output<"ResourceSlice">; + /** + * Standard object metadata + */ + public readonly metadata!: pulumi.Output; + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + */ + public readonly spec!: pulumi.Output; + + /** + * Create a ResourceSlicePatch resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceSlicePatchArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["apiVersion"] = "resource.k8s.io/v1beta1"; + resourceInputs["kind"] = "ResourceSlice"; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["spec"] = args ? args.spec : undefined; + } else { + resourceInputs["apiVersion"] = undefined /*out*/; + resourceInputs["kind"] = undefined /*out*/; + resourceInputs["metadata"] = undefined /*out*/; + resourceInputs["spec"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const aliasOpts = { aliases: [{ type: "kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch" }, { type: "kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch" }] }; + opts = pulumi.mergeOptions(opts, aliasOpts); + super(ResourceSlicePatch.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ResourceSlicePatch resource. + */ +export interface ResourceSlicePatchArgs { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceSlice">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec?: pulumi.Input; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index b2b56067a8..1190987df7 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -28,6 +28,12 @@ "admissionregistration/v1/validatingWebhookConfigurationList.ts", "admissionregistration/v1/validatingWebhookConfigurationPatch.ts", "admissionregistration/v1alpha1/index.ts", + "admissionregistration/v1alpha1/mutatingAdmissionPolicy.ts", + "admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.ts", + "admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingList.ts", + "admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.ts", + "admissionregistration/v1alpha1/mutatingAdmissionPolicyList.ts", + "admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.ts", "admissionregistration/v1alpha1/validatingAdmissionPolicy.ts", "admissionregistration/v1alpha1/validatingAdmissionPolicyBinding.ts", "admissionregistration/v1alpha1/validatingAdmissionPolicyBindingList.ts", @@ -170,6 +176,10 @@ "coordination/v1alpha1/leaseCandidate.ts", "coordination/v1alpha1/leaseCandidateList.ts", "coordination/v1alpha1/leaseCandidatePatch.ts", + "coordination/v1alpha2/index.ts", + "coordination/v1alpha2/leaseCandidate.ts", + "coordination/v1alpha2/leaseCandidateList.ts", + "coordination/v1alpha2/leaseCandidatePatch.ts", "coordination/v1beta1/index.ts", "coordination/v1beta1/lease.ts", "coordination/v1beta1/leaseList.ts", @@ -462,7 +472,21 @@ "resource/v1alpha3/resourceClaimTemplateList.ts", "resource/v1alpha3/resourceClaimTemplatePatch.ts", "resource/v1alpha3/resourceSlice.ts", + "resource/v1alpha3/resourceSliceList.ts", "resource/v1alpha3/resourceSlicePatch.ts", + "resource/v1beta1/deviceClass.ts", + "resource/v1beta1/deviceClassList.ts", + "resource/v1beta1/deviceClassPatch.ts", + "resource/v1beta1/index.ts", + "resource/v1beta1/resourceClaim.ts", + "resource/v1beta1/resourceClaimList.ts", + "resource/v1beta1/resourceClaimPatch.ts", + "resource/v1beta1/resourceClaimTemplate.ts", + "resource/v1beta1/resourceClaimTemplateList.ts", + "resource/v1beta1/resourceClaimTemplatePatch.ts", + "resource/v1beta1/resourceSlice.ts", + "resource/v1beta1/resourceSliceList.ts", + "resource/v1beta1/resourceSlicePatch.ts", "scheduling/index.ts", "scheduling/v1/index.ts", "scheduling/v1/priorityClass.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 43dd0805e4..3bbbb3571c 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -918,7 +918,7 @@ export namespace admissionregistration { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -958,7 +958,7 @@ export namespace admissionregistration { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -1485,6 +1485,80 @@ export namespace admissionregistration { } export namespace v1alpha1 { + /** + * ApplyConfiguration defines the desired configuration values of an object. + */ + export interface ApplyConfiguration { + /** + * expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + */ + expression?: pulumi.Input; + } + + /** + * ApplyConfiguration defines the desired configuration values of an object. + */ + export interface ApplyConfigurationPatch { + /** + * expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + */ + expression?: pulumi.Input; + } + /** * AuditAnnotation describes how to produce an audit annotation for an API request. */ @@ -1547,6 +1621,132 @@ export namespace admissionregistration { warning: pulumi.Input; } + /** + * JSONPatch defines a JSON Patch. + */ + export interface JSONPatch { + /** + * expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + */ + expression?: pulumi.Input; + } + + /** + * JSONPatch defines a JSON Patch. + */ + export interface JSONPatchPatch { + /** + * expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + */ + expression?: pulumi.Input; + } + export interface MatchCondition { /** * Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: @@ -1714,165 +1914,395 @@ export namespace admissionregistration { } /** - * NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. + * MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. */ - export interface NamedRuleWithOperations { - /** - * APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. - */ - apiGroups?: pulumi.Input[]>; - /** - * APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. - */ - apiVersions?: pulumi.Input[]>; + export interface MutatingAdmissionPolicy { /** - * Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required. + * 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 */ - operations?: pulumi.Input[]>; + apiVersion?: pulumi.Input<"admissionregistration.k8s.io/v1alpha1">; /** - * ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. + * 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 */ - resourceNames?: pulumi.Input[]>; + kind?: pulumi.Input<"MutatingAdmissionPolicy">; /** - * Resources is a list of resources this rule applies to. - * - * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources. - * - * If wildcard is present, the validation rule will ensure resources do not overlap with each other. - * - * Depending on the enclosing object, subresources might not be allowed. Required. + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. */ - resources?: pulumi.Input[]>; + metadata?: pulumi.Input; /** - * scope specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "*" "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "*" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "*". + * Specification of the desired behavior of the MutatingAdmissionPolicy. */ - scope?: pulumi.Input; + spec?: pulumi.Input; } /** - * NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. + * MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + * + * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + * + * Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. */ - export interface NamedRuleWithOperationsPatch { - /** - * APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. - */ - apiGroups?: pulumi.Input[]>; - /** - * APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. - */ - apiVersions?: pulumi.Input[]>; + export interface MutatingAdmissionPolicyBinding { /** - * Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required. + * 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 */ - operations?: pulumi.Input[]>; + apiVersion?: pulumi.Input<"admissionregistration.k8s.io/v1alpha1">; /** - * ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. + * 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 */ - resourceNames?: pulumi.Input[]>; + kind?: pulumi.Input<"MutatingAdmissionPolicyBinding">; /** - * Resources is a list of resources this rule applies to. - * - * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources. - * - * If wildcard is present, the validation rule will ensure resources do not overlap with each other. - * - * Depending on the enclosing object, subresources might not be allowed. Required. + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. */ - resources?: pulumi.Input[]>; + metadata?: pulumi.Input; /** - * scope specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "*" "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "*" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "*". + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. */ - scope?: pulumi.Input; + spec?: pulumi.Input; } /** - * ParamKind is a tuple of Group Kind and Version. + * MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. */ - export interface ParamKind { + export interface MutatingAdmissionPolicyBindingSpec { /** - * APIVersion is the API group version the resources belong to. In format of "group/version". Required. + * matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. */ - apiVersion?: pulumi.Input; + matchResources?: pulumi.Input; /** - * Kind is the API kind the resources belong to. Required. + * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. */ - kind?: pulumi.Input; + paramRef?: pulumi.Input; + /** + * policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + */ + policyName?: pulumi.Input; } /** - * ParamKind is a tuple of Group Kind and Version. + * MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. */ - export interface ParamKindPatch { + export interface MutatingAdmissionPolicyBindingSpecPatch { /** - * APIVersion is the API group version the resources belong to. In format of "group/version". Required. + * matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. */ - apiVersion?: pulumi.Input; + matchResources?: pulumi.Input; /** - * Kind is the API kind the resources belong to. Required. + * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. */ - kind?: pulumi.Input; + paramRef?: pulumi.Input; + /** + * policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + */ + policyName?: pulumi.Input; } /** - * ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding. + * MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. */ - export interface ParamRef { + export interface MutatingAdmissionPolicySpec { /** - * `name` is the name of the resource being referenced. + * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. * - * `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset. + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. */ - name?: pulumi.Input; + failurePolicy?: pulumi.Input; /** - * namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields. + * matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. * - * A per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty. - * - * - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error. + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. * - * - If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error. + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped */ - namespace?: pulumi.Input; + matchConditions?: pulumi.Input[]>; /** - * `parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy. - * - * Allowed values are `Allow` or `Deny` Default to `Deny` + * matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. */ - parameterNotFoundAction?: pulumi.Input; + matchConstraints?: pulumi.Input; /** - * selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind. + * mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + */ + mutations?: pulumi.Input[]>; + /** + * paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + */ + paramKind?: pulumi.Input; + /** + * reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". * - * If multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together. + * Never: These mutations will not be called more than once per binding in a single admission evaluation. * - * One of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset. + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. */ - selector?: pulumi.Input; + reinvocationPolicy?: pulumi.Input; + /** + * variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + */ + variables?: pulumi.Input[]>; } /** - * ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding. + * MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. */ - export interface ParamRefPatch { + export interface MutatingAdmissionPolicySpecPatch { /** - * `name` is the name of the resource being referenced. + * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. * - * `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset. + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. */ - name?: pulumi.Input; + failurePolicy?: pulumi.Input; /** - * namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields. + * matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. * - * A per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty. - * - * - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error. + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. * - * - If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error. + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped */ - namespace?: pulumi.Input; + matchConditions?: pulumi.Input[]>; /** - * `parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy. - * - * Allowed values are `Allow` or `Deny` Default to `Deny` + * matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + */ + matchConstraints?: pulumi.Input; + /** + * mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + */ + mutations?: pulumi.Input[]>; + /** + * paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + */ + paramKind?: pulumi.Input; + /** + * reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + */ + reinvocationPolicy?: pulumi.Input; + /** + * variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + */ + variables?: pulumi.Input[]>; + } + + /** + * Mutation specifies the CEL expression which is used to apply the Mutation. + */ + export interface Mutation { + /** + * applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + */ + applyConfiguration?: pulumi.Input; + /** + * jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + */ + jsonPatch?: pulumi.Input; + /** + * patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + */ + patchType: pulumi.Input; + } + + /** + * Mutation specifies the CEL expression which is used to apply the Mutation. + */ + export interface MutationPatch { + /** + * applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + */ + applyConfiguration?: pulumi.Input; + /** + * jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + */ + jsonPatch?: pulumi.Input; + /** + * patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + */ + patchType?: pulumi.Input; + } + + /** + * NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. + */ + export interface NamedRuleWithOperations { + /** + * APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. + */ + apiGroups?: pulumi.Input[]>; + /** + * APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. + */ + apiVersions?: pulumi.Input[]>; + /** + * Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required. + */ + operations?: pulumi.Input[]>; + /** + * ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. + */ + resourceNames?: pulumi.Input[]>; + /** + * Resources is a list of resources this rule applies to. + * + * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources. + * + * If wildcard is present, the validation rule will ensure resources do not overlap with each other. + * + * Depending on the enclosing object, subresources might not be allowed. Required. + */ + resources?: pulumi.Input[]>; + /** + * scope specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "*" "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "*" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "*". + */ + scope?: pulumi.Input; + } + + /** + * NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. + */ + export interface NamedRuleWithOperationsPatch { + /** + * APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. + */ + apiGroups?: pulumi.Input[]>; + /** + * APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. + */ + apiVersions?: pulumi.Input[]>; + /** + * Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required. + */ + operations?: pulumi.Input[]>; + /** + * ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. + */ + resourceNames?: pulumi.Input[]>; + /** + * Resources is a list of resources this rule applies to. + * + * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources. + * + * If wildcard is present, the validation rule will ensure resources do not overlap with each other. + * + * Depending on the enclosing object, subresources might not be allowed. Required. + */ + resources?: pulumi.Input[]>; + /** + * scope specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "*" "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "*" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "*". + */ + scope?: pulumi.Input; + } + + /** + * ParamKind is a tuple of Group Kind and Version. + */ + export interface ParamKind { + /** + * APIVersion is the API group version the resources belong to. In format of "group/version". Required. + */ + apiVersion?: pulumi.Input; + /** + * Kind is the API kind the resources belong to. Required. + */ + kind?: pulumi.Input; + } + + /** + * ParamKind is a tuple of Group Kind and Version. + */ + export interface ParamKindPatch { + /** + * APIVersion is the API group version the resources belong to. In format of "group/version". Required. + */ + apiVersion?: pulumi.Input; + /** + * Kind is the API kind the resources belong to. Required. + */ + kind?: pulumi.Input; + } + + /** + * ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding. + */ + export interface ParamRef { + /** + * `name` is the name of the resource being referenced. + * + * `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset. + */ + name?: pulumi.Input; + /** + * namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields. + * + * A per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty. + * + * - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error. + * + * - If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error. + */ + namespace?: pulumi.Input; + /** + * `parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy. + * + * Allowed values are `Allow` or `Deny` Default to `Deny` + */ + parameterNotFoundAction?: pulumi.Input; + /** + * selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind. + * + * If multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together. + * + * One of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset. + */ + selector?: pulumi.Input; + } + + /** + * ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding. + */ + export interface ParamRefPatch { + /** + * `name` is the name of the resource being referenced. + * + * `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset. + */ + name?: pulumi.Input; + /** + * namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields. + * + * A per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty. + * + * - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error. + * + * - If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error. + */ + namespace?: pulumi.Input; + /** + * `parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy. + * + * Allowed values are `Allow` or `Deny` Default to `Deny` */ parameterNotFoundAction?: pulumi.Input; /** @@ -1923,10 +2353,6 @@ export namespace admissionregistration { /** * ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - * - * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - * - * The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. */ export interface ValidatingAdmissionPolicyBinding { /** @@ -1956,7 +2382,7 @@ export namespace admissionregistration { */ matchResources?: pulumi.Input; /** - * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. */ paramRef?: pulumi.Input; /** @@ -1996,7 +2422,7 @@ export namespace admissionregistration { */ matchResources?: pulumi.Input; /** - * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. */ paramRef?: pulumi.Input; /** @@ -2036,15 +2462,7 @@ export namespace admissionregistration { */ auditAnnotations?: pulumi.Input[]>; /** - * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. */ failurePolicy?: pulumi.Input; /** @@ -2069,7 +2487,7 @@ export namespace admissionregistration { */ paramKind?: pulumi.Input; /** - * Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. */ validations: pulumi.Input[]>; /** @@ -2089,15 +2507,7 @@ export namespace admissionregistration { */ auditAnnotations?: pulumi.Input[]>; /** - * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. */ failurePolicy?: pulumi.Input; /** @@ -2122,7 +2532,7 @@ export namespace admissionregistration { */ paramKind?: pulumi.Input; /** - * Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. */ validations?: pulumi.Input[]>; /** @@ -2156,14 +2566,9 @@ export namespace admissionregistration { */ export interface Validation { /** - * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -2203,14 +2608,9 @@ export namespace admissionregistration { */ export interface ValidationPatch { /** - * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -3094,7 +3494,7 @@ export namespace admissionregistration { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -3134,7 +3534,7 @@ export namespace admissionregistration { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -4130,7 +4530,7 @@ export namespace apiextensions { /** * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. */ format?: pulumi.Input; id?: pulumi.Input; @@ -4242,7 +4642,7 @@ export namespace apiextensions { /** * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. */ format?: pulumi.Input; id?: pulumi.Input; @@ -6537,7 +6937,7 @@ export namespace apps { */ ordinals?: pulumi.Input; /** - * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. */ persistentVolumeClaimRetentionPolicy?: pulumi.Input; /** @@ -6587,7 +6987,7 @@ export namespace apps { */ ordinals?: pulumi.Input; /** - * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. */ persistentVolumeClaimRetentionPolicy?: pulumi.Input; /** @@ -8866,7 +9266,7 @@ export namespace autoscaling { */ export interface MetricSpec { /** - * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. */ containerResource?: pulumi.Input; /** @@ -8886,7 +9286,7 @@ export namespace autoscaling { */ resource?: pulumi.Input; /** - * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. */ type: pulumi.Input; } @@ -8896,7 +9296,7 @@ export namespace autoscaling { */ export interface MetricSpecPatch { /** - * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. */ containerResource?: pulumi.Input; /** @@ -8916,7 +9316,7 @@ export namespace autoscaling { */ resource?: pulumi.Input; /** - * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. */ type?: pulumi.Input; } @@ -8946,7 +9346,7 @@ export namespace autoscaling { */ resource?: pulumi.Input; /** - * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. */ type: pulumi.Input; } @@ -10646,7 +11046,7 @@ export namespace batch { /** * ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). */ managedBy?: pulumi.Input; /** @@ -10731,7 +11131,7 @@ export namespace batch { /** * ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). */ managedBy?: pulumi.Input; /** @@ -12063,31 +12463,115 @@ export namespace coordination { } } - export namespace v1beta1 { + export namespace v1alpha2 { /** - * Lease defines a lease concept. + * LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. */ - export interface Lease { + export interface LeaseCandidate { /** * 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 */ - apiVersion?: pulumi.Input<"coordination.k8s.io/v1beta1">; + apiVersion?: pulumi.Input<"coordination.k8s.io/v1alpha2">; /** * 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 */ - kind?: pulumi.Input<"Lease">; + kind?: pulumi.Input<"LeaseCandidate">; /** * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata */ metadata?: pulumi.Input; /** - * Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status */ - spec?: pulumi.Input; + spec?: pulumi.Input; } /** - * LeaseSpec is a specification of a Lease. + * LeaseCandidateSpec is a specification of a Lease. + */ + export interface LeaseCandidateSpec { + /** + * BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + */ + binaryVersion: pulumi.Input; + /** + * EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + */ + emulationVersion?: pulumi.Input; + /** + * LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + */ + leaseName: pulumi.Input; + /** + * PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + */ + pingTime?: pulumi.Input; + /** + * RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + */ + renewTime?: pulumi.Input; + /** + * Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + */ + strategy: pulumi.Input; + } + + /** + * LeaseCandidateSpec is a specification of a Lease. + */ + export interface LeaseCandidateSpecPatch { + /** + * BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + */ + binaryVersion?: pulumi.Input; + /** + * EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + */ + emulationVersion?: pulumi.Input; + /** + * LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + */ + leaseName?: pulumi.Input; + /** + * PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + */ + pingTime?: pulumi.Input; + /** + * RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + */ + renewTime?: pulumi.Input; + /** + * Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + */ + strategy?: pulumi.Input; + } + } + + export namespace v1beta1 { + /** + * Lease defines a lease concept. + */ + export interface Lease { + /** + * 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 + */ + apiVersion?: pulumi.Input<"coordination.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"Lease">; + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + metadata?: pulumi.Input; + /** + * Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + spec?: pulumi.Input; + } + + /** + * LeaseSpec is a specification of a Lease. */ export interface LeaseSpec { /** @@ -12415,7 +12899,7 @@ export namespace core { } /** - * Represents storage that is managed by an external CSI volume driver (Beta feature) + * Represents storage that is managed by an external CSI volume driver */ export interface CSIPersistentVolumeSource { /** @@ -12461,7 +12945,7 @@ export namespace core { } /** - * Represents storage that is managed by an external CSI volume driver (Beta feature) + * Represents storage that is managed by an external CSI volume driver */ export interface CSIPersistentVolumeSourcePatch { /** @@ -14688,6 +15172,9 @@ export namespace core { readOnly?: pulumi.Input; } + /** + * GRPCAction specifies an action involving a GRPC service. + */ export interface GRPCAction { /** * Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -14701,6 +15188,9 @@ export namespace core { service?: pulumi.Input; } + /** + * GRPCAction specifies an action involving a GRPC service. + */ export interface GRPCActionPatch { /** * Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -15263,19 +15753,19 @@ export namespace core { */ export interface LifecycleHandler { /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. */ exec?: pulumi.Input; /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. */ httpGet?: pulumi.Input; /** - * Sleep represents the duration that the container should sleep before being terminated. + * Sleep represents a duration that the container should sleep. */ sleep?: pulumi.Input; /** - * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. */ tcpSocket?: pulumi.Input; } @@ -15285,19 +15775,19 @@ export namespace core { */ export interface LifecycleHandlerPatch { /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. */ exec?: pulumi.Input; /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. */ httpGet?: pulumi.Input; /** - * Sleep represents the duration that the container should sleep before being terminated. + * Sleep represents a duration that the container should sleep. */ sleep?: pulumi.Input; /** - * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. */ tcpSocket?: pulumi.Input; } @@ -15489,7 +15979,7 @@ export namespace core { } /** - * Local represents directly-attached storage with node affinity (Beta feature) + * Local represents directly-attached storage with node affinity */ export interface LocalVolumeSource { /** @@ -15503,7 +15993,7 @@ export namespace core { } /** - * Local represents directly-attached storage with node affinity (Beta feature) + * Local represents directly-attached storage with node affinity */ export interface LocalVolumeSourcePatch { /** @@ -15628,8 +16118,17 @@ export namespace core { * NamespaceCondition contains details about state of namespace. */ export interface NamespaceCondition { + /** + * Last time the condition transitioned from one status to another. + */ lastTransitionTime?: pulumi.Input; + /** + * Human-readable message indicating details about last transition. + */ message?: pulumi.Input; + /** + * Unique, one-word, CamelCase reason for the condition's last transition. + */ reason?: pulumi.Input; /** * Status of the condition, one of True, False, Unknown. @@ -16020,7 +16519,7 @@ export namespace core { */ export interface NodeStatus { /** - * List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). */ addresses?: pulumi.Input[]>; /** @@ -16032,7 +16531,7 @@ export namespace core { */ capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition */ conditions?: pulumi.Input[]>; /** @@ -16052,7 +16551,7 @@ export namespace core { */ images?: pulumi.Input[]>; /** - * Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info */ nodeInfo?: pulumi.Input; /** @@ -16287,7 +16786,13 @@ export namespace core { * reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. */ reason?: pulumi.Input; + /** + * Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + */ status: pulumi.Input; + /** + * Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + */ type: pulumi.Input; } @@ -16311,7 +16816,13 @@ export namespace core { * reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. */ reason?: pulumi.Input; + /** + * Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + */ status?: pulumi.Input; + /** + * Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + */ type?: pulumi.Input; } @@ -16666,15 +17177,15 @@ export namespace core { */ accessModes?: pulumi.Input[]>; /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore */ awsElasticBlockStore?: pulumi.Input; /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. */ azureDisk?: pulumi.Input; /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. */ azureFile?: pulumi.Input; /** @@ -16682,11 +17193,11 @@ export namespace core { */ capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. */ cephfs?: pulumi.Input; /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md */ cinder?: pulumi.Input; /** @@ -16694,7 +17205,7 @@ export namespace core { */ claimRef?: pulumi.Input; /** - * csi represents storage that is handled by an external CSI driver (Beta feature). + * csi represents storage that is handled by an external CSI driver. */ csi?: pulumi.Input; /** @@ -16702,19 +17213,19 @@ export namespace core { */ fc?: pulumi.Input; /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. */ flexVolume?: pulumi.Input; /** - * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. */ flocker?: pulumi.Input; /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk */ gcePersistentDisk?: pulumi.Input; /** - * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md */ glusterfs?: pulumi.Input; /** @@ -16746,23 +17257,23 @@ export namespace core { */ persistentVolumeReclaimPolicy?: pulumi.Input; /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. */ photonPersistentDisk?: pulumi.Input; /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. */ portworxVolume?: pulumi.Input; /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. */ quobyte?: pulumi.Input; /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md */ rbd?: pulumi.Input; /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. */ scaleIO?: pulumi.Input; /** @@ -16770,7 +17281,7 @@ export namespace core { */ storageClassName?: pulumi.Input; /** - * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md */ storageos?: pulumi.Input; /** @@ -16782,7 +17293,7 @@ export namespace core { */ volumeMode?: pulumi.Input; /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. */ vsphereVolume?: pulumi.Input; } @@ -16796,15 +17307,15 @@ export namespace core { */ accessModes?: pulumi.Input[]>; /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore */ awsElasticBlockStore?: pulumi.Input; /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. */ azureDisk?: pulumi.Input; /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. */ azureFile?: pulumi.Input; /** @@ -16812,11 +17323,11 @@ export namespace core { */ capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. */ cephfs?: pulumi.Input; /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md */ cinder?: pulumi.Input; /** @@ -16824,7 +17335,7 @@ export namespace core { */ claimRef?: pulumi.Input; /** - * csi represents storage that is handled by an external CSI driver (Beta feature). + * csi represents storage that is handled by an external CSI driver. */ csi?: pulumi.Input; /** @@ -16832,19 +17343,19 @@ export namespace core { */ fc?: pulumi.Input; /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. */ flexVolume?: pulumi.Input; /** - * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. */ flocker?: pulumi.Input; /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk */ gcePersistentDisk?: pulumi.Input; /** - * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md */ glusterfs?: pulumi.Input; /** @@ -16876,23 +17387,23 @@ export namespace core { */ persistentVolumeReclaimPolicy?: pulumi.Input; /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. */ photonPersistentDisk?: pulumi.Input; /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. */ portworxVolume?: pulumi.Input; /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. */ quobyte?: pulumi.Input; /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md */ rbd?: pulumi.Input; /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. */ scaleIO?: pulumi.Input; /** @@ -16900,7 +17411,7 @@ export namespace core { */ storageClassName?: pulumi.Input; /** - * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md */ storageos?: pulumi.Input; /** @@ -16912,7 +17423,7 @@ export namespace core { */ volumeMode?: pulumi.Input; /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. */ vsphereVolume?: pulumi.Input; } @@ -17177,9 +17688,12 @@ export namespace core { */ export interface PodDNSConfigOption { /** - * Required. + * Name is this DNS resolver option's name. Required. */ name?: pulumi.Input; + /** + * Value is this DNS resolver option's value. + */ value?: pulumi.Input; } @@ -17188,9 +17702,12 @@ export namespace core { */ export interface PodDNSConfigOptionPatch { /** - * Required. + * Name is this DNS resolver option's name. Required. */ name?: pulumi.Input; + /** + * Value is this DNS resolver option's value. + */ value?: pulumi.Input; } @@ -17392,6 +17909,20 @@ export namespace core { * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. */ runAsUser?: pulumi.Input; + /** + * seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + */ + seLinuxChangePolicy?: pulumi.Input; /** * The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. */ @@ -17450,6 +17981,20 @@ export namespace core { * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. */ runAsUser?: pulumi.Input; + /** + * seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + */ + seLinuxChangePolicy?: pulumi.Input; /** * The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. */ @@ -17588,6 +18133,14 @@ export namespace core { * This field is immutable. */ resourceClaims?: pulumi.Input[]>; + /** + * Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + */ + resources?: pulumi.Input; /** * Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy */ @@ -17619,7 +18172,7 @@ export namespace core { */ serviceAccountName?: pulumi.Input; /** - * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. */ setHostnameAsFQDN?: pulumi.Input; /** @@ -17760,6 +18313,14 @@ export namespace core { * This field is immutable. */ resourceClaims?: pulumi.Input[]>; + /** + * Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + */ + resources?: pulumi.Input; /** * Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy */ @@ -17791,7 +18352,7 @@ export namespace core { */ serviceAccountName?: pulumi.Input; /** - * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. */ setHostnameAsFQDN?: pulumi.Input; /** @@ -17829,11 +18390,11 @@ export namespace core { */ conditions?: pulumi.Input[]>; /** - * The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status */ containerStatuses?: pulumi.Input[]>; /** - * Status for any ephemeral containers that have run in this pod. + * Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status */ ephemeralContainerStatuses?: pulumi.Input[]>; /** @@ -17845,7 +18406,7 @@ export namespace core { */ hostIPs?: pulumi.Input[]>; /** - * The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status */ initContainerStatuses?: pulumi.Input[]>; /** @@ -17944,6 +18505,9 @@ export namespace core { spec?: pulumi.Input; } + /** + * PortStatus represents the error condition of a service port + */ export interface PortStatus { /** * Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use @@ -18031,7 +18595,7 @@ export namespace core { */ export interface Probe { /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. */ exec?: pulumi.Input; /** @@ -18039,11 +18603,11 @@ export namespace core { */ failureThreshold?: pulumi.Input; /** - * GRPC specifies an action involving a GRPC port. + * GRPC specifies a GRPC HealthCheckRequest. */ grpc?: pulumi.Input; /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. */ httpGet?: pulumi.Input; /** @@ -18059,7 +18623,7 @@ export namespace core { */ successThreshold?: pulumi.Input; /** - * TCPSocket specifies an action involving a TCP port. + * TCPSocket specifies a connection to a TCP port. */ tcpSocket?: pulumi.Input; /** @@ -18077,7 +18641,7 @@ export namespace core { */ export interface ProbePatch { /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. */ exec?: pulumi.Input; /** @@ -18085,11 +18649,11 @@ export namespace core { */ failureThreshold?: pulumi.Input; /** - * GRPC specifies an action involving a GRPC port. + * GRPC specifies a GRPC HealthCheckRequest. */ grpc?: pulumi.Input; /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. */ httpGet?: pulumi.Input; /** @@ -18105,7 +18669,7 @@ export namespace core { */ successThreshold?: pulumi.Input; /** - * TCPSocket specifies an action involving a TCP port. + * TCPSocket specifies a connection to a TCP port. */ tcpSocket?: pulumi.Input; /** @@ -18549,7 +19113,7 @@ export namespace core { } /** - * ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + * ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. */ export interface ResourceHealth { /** @@ -18690,13 +19254,16 @@ export namespace core { requests?: pulumi.Input<{[key: string]: pulumi.Input}>; } + /** + * ResourceStatus represents the status of a single resource allocated to a Pod. + */ export interface ResourceStatus { /** - * Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. */ name: pulumi.Input; /** - * List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. */ resources?: pulumi.Input[]>; } @@ -19421,7 +19988,7 @@ export namespace core { */ metadata?: pulumi.Input; /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret */ secrets?: pulumi.Input[]>; } @@ -19629,7 +20196,7 @@ export namespace core { */ topologyKeys?: pulumi.Input[]>; /** - * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. */ trafficDistribution?: pulumi.Input; /** @@ -19727,7 +20294,7 @@ export namespace core { */ topologyKeys?: pulumi.Input[]>; /** - * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. */ trafficDistribution?: pulumi.Input; /** @@ -20228,6 +20795,9 @@ export namespace core { name?: pulumi.Input; } + /** + * TypedObjectReference contains enough information to let you locate the typed referenced object + */ export interface TypedObjectReference { /** * APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. @@ -20247,6 +20817,9 @@ export namespace core { namespace?: pulumi.Input; } + /** + * TypedObjectReference contains enough information to let you locate the typed referenced object + */ export interface TypedObjectReferencePatch { /** * APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. @@ -20271,23 +20844,23 @@ export namespace core { */ export interface Volume { /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore */ awsElasticBlockStore?: pulumi.Input; /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. */ azureDisk?: pulumi.Input; /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. */ azureFile?: pulumi.Input; /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. */ cephfs?: pulumi.Input; /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md */ cinder?: pulumi.Input; /** @@ -20295,7 +20868,7 @@ export namespace core { */ configMap?: pulumi.Input; /** - * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. */ csi?: pulumi.Input; /** @@ -20328,23 +20901,23 @@ export namespace core { */ fc?: pulumi.Input; /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. */ flexVolume?: pulumi.Input; /** - * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. */ flocker?: pulumi.Input; /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk */ gcePersistentDisk?: pulumi.Input; /** - * gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. */ gitRepo?: pulumi.Input; /** - * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md */ glusterfs?: pulumi.Input; /** @@ -20376,11 +20949,11 @@ export namespace core { */ persistentVolumeClaim?: pulumi.Input; /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. */ photonPersistentDisk?: pulumi.Input; /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. */ portworxVolume?: pulumi.Input; /** @@ -20388,15 +20961,15 @@ export namespace core { */ projected?: pulumi.Input; /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. */ quobyte?: pulumi.Input; /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md */ rbd?: pulumi.Input; /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. */ scaleIO?: pulumi.Input; /** @@ -20404,11 +20977,11 @@ export namespace core { */ secret?: pulumi.Input; /** - * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. */ storageos?: pulumi.Input; /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. */ vsphereVolume?: pulumi.Input; } @@ -20572,23 +21145,23 @@ export namespace core { */ export interface VolumePatch { /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore */ awsElasticBlockStore?: pulumi.Input; /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. */ azureDisk?: pulumi.Input; /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. */ azureFile?: pulumi.Input; /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. */ cephfs?: pulumi.Input; /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md */ cinder?: pulumi.Input; /** @@ -20596,7 +21169,7 @@ export namespace core { */ configMap?: pulumi.Input; /** - * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. */ csi?: pulumi.Input; /** @@ -20629,23 +21202,23 @@ export namespace core { */ fc?: pulumi.Input; /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. */ flexVolume?: pulumi.Input; /** - * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. */ flocker?: pulumi.Input; /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk */ gcePersistentDisk?: pulumi.Input; /** - * gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. */ gitRepo?: pulumi.Input; /** - * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md */ glusterfs?: pulumi.Input; /** @@ -20677,11 +21250,11 @@ export namespace core { */ persistentVolumeClaim?: pulumi.Input; /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. */ photonPersistentDisk?: pulumi.Input; /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. */ portworxVolume?: pulumi.Input; /** @@ -20689,15 +21262,15 @@ export namespace core { */ projected?: pulumi.Input; /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. */ quobyte?: pulumi.Input; /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md */ rbd?: pulumi.Input; /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. */ scaleIO?: pulumi.Input; /** @@ -20705,11 +21278,11 @@ export namespace core { */ secret?: pulumi.Input; /** - * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. */ storageos?: pulumi.Input; /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. */ vsphereVolume?: pulumi.Input; } @@ -25891,9 +26464,9 @@ export namespace flowcontrol { /** * `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. */ nominalConcurrencyShares?: pulumi.Input; } @@ -25925,9 +26498,9 @@ export namespace flowcontrol { /** * `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. */ nominalConcurrencyShares?: pulumi.Input; } @@ -31410,41 +31983,1167 @@ export namespace resource { /** * Parameters can be arbitrary setup parameters. They are ignored while allocating a claim. */ - parameters?: any; - } - - /** - * VendorParameters are opaque parameters for one particular driver. - */ - export interface VendorParametersPatch { + parameters?: any; + } + + /** + * VendorParameters are opaque parameters for one particular driver. + */ + export interface VendorParametersPatch { + /** + * DriverName is the name used by the DRA driver kubelet plugin. + */ + driverName?: pulumi.Input; + /** + * Parameters can be arbitrary setup parameters. They are ignored while allocating a claim. + */ + parameters?: any; + } + } + + export namespace v1alpha3 { + /** + * AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + */ + export interface AllocatedDeviceStatus { + /** + * 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. + */ + conditions?: pulumi.Input[]>; + /** + * Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + data?: any; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: pulumi.Input; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: pulumi.Input; + /** + * NetworkData contains network-related information specific to the device. + */ + networkData?: pulumi.Input; + /** + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + */ + pool: pulumi.Input; + } + + /** + * AllocationResult contains attributes of an allocated resource. + */ + export interface AllocationResult { + /** + * Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver. + * + * A driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + controller?: pulumi.Input; + /** + * Devices is the result of allocating devices. + */ + devices?: pulumi.Input; + /** + * NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + */ + nodeSelector?: pulumi.Input; + } + + /** + * BasicDevice defines one device instance. + */ + export interface BasicDevice { + /** + * Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + */ + attributes?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + */ + capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; + } + + /** + * BasicDevice defines one device instance. + */ + export interface BasicDevicePatch { + /** + * Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + */ + attributes?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + */ + capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; + } + + /** + * CELDeviceSelector contains a CEL expression for selecting a device. + */ + export interface CELDeviceSelector { + /** + * 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + */ + expression: pulumi.Input; + } + + /** + * CELDeviceSelector contains a CEL expression for selecting a device. + */ + export interface CELDeviceSelectorPatch { + /** + * 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + */ + expression?: pulumi.Input; + } + + /** + * Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + */ + export interface Device { + /** + * Basic defines one device instance. + */ + basic?: pulumi.Input; + /** + * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + */ + name: pulumi.Input; + } + + /** + * DeviceAllocationConfiguration gets embedded in an AllocationResult. + */ + export interface DeviceAllocationConfiguration { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque?: pulumi.Input; + /** + * Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + */ + requests?: pulumi.Input[]>; + /** + * 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. + */ + source: pulumi.Input; + } + + /** + * DeviceAllocationResult is the result of allocating devices. + */ + export interface DeviceAllocationResult { + /** + * This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + */ + config?: pulumi.Input[]>; + /** + * Results lists all allocated devices. + */ + results?: pulumi.Input[]>; + } + + /** + * DeviceAttribute must have exactly one field set. + */ + export interface DeviceAttribute { + /** + * BoolValue is a true/false value. + */ + bool?: pulumi.Input; + /** + * IntValue is a number. + */ + int?: pulumi.Input; + /** + * StringValue is a string. Must not be longer than 64 characters. + */ + string?: pulumi.Input; + /** + * VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + */ + version?: pulumi.Input; + } + + /** + * DeviceClaim defines how to request devices with a ResourceClaim. + */ + export interface DeviceClaim { + /** + * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + */ + config?: pulumi.Input[]>; + /** + * These constraints must be satisfied by the set of devices that get allocated for the claim. + */ + constraints?: pulumi.Input[]>; + /** + * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + */ + requests?: pulumi.Input[]>; + } + + /** + * DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + */ + export interface DeviceClaimConfiguration { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque?: pulumi.Input; + /** + * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + */ + requests?: pulumi.Input[]>; + } + + /** + * DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + */ + export interface DeviceClaimConfigurationPatch { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque?: pulumi.Input; + /** + * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + */ + requests?: pulumi.Input[]>; + } + + /** + * DeviceClaim defines how to request devices with a ResourceClaim. + */ + export interface DeviceClaimPatch { + /** + * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + */ + config?: pulumi.Input[]>; + /** + * These constraints must be satisfied by the set of devices that get allocated for the claim. + */ + constraints?: pulumi.Input[]>; + /** + * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + */ + requests?: pulumi.Input[]>; + } + + /** + * 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. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface DeviceClass { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + /** + * 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 + */ + kind?: pulumi.Input<"DeviceClass">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec: pulumi.Input; + } + + /** + * DeviceClassConfiguration is used in DeviceClass. + */ + export interface DeviceClassConfiguration { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque?: pulumi.Input; + } + + /** + * DeviceClassConfiguration is used in DeviceClass. + */ + export interface DeviceClassConfigurationPatch { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque?: pulumi.Input; + } + + /** + * DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + */ + export interface DeviceClassSpec { + /** + * Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + */ + config?: pulumi.Input[]>; + /** + * Each selector must be satisfied by a device which is claimed via this class. + */ + selectors?: pulumi.Input[]>; + /** + * Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. + * + * Setting this field is optional. If unset, all Nodes are candidates. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + suitableNodes?: pulumi.Input; + } + + /** + * DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + */ + export interface DeviceClassSpecPatch { + /** + * Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + */ + config?: pulumi.Input[]>; + /** + * Each selector must be satisfied by a device which is claimed via this class. + */ + selectors?: pulumi.Input[]>; + /** + * Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. + * + * Setting this field is optional. If unset, all Nodes are candidates. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + suitableNodes?: pulumi.Input; + } + + /** + * DeviceConstraint must have exactly one field set besides Requests. + */ + export interface DeviceConstraint { + /** + * MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + */ + matchAttribute?: pulumi.Input; + /** + * 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. + */ + requests?: pulumi.Input[]>; + } + + /** + * DeviceConstraint must have exactly one field set besides Requests. + */ + export interface DeviceConstraintPatch { + /** + * MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + */ + matchAttribute?: pulumi.Input; + /** + * 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. + */ + requests?: pulumi.Input[]>; + } + + /** + * Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + */ + export interface DevicePatch { + /** + * Basic defines one device instance. + */ + basic?: pulumi.Input; + /** + * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + */ + name?: pulumi.Input; + } + + /** + * 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. + * + * 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. + */ + export interface DeviceRequest { + /** + * 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. + * + * 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. + */ + adminAccess?: pulumi.Input; + /** + * AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + */ + allocationMode?: pulumi.Input; + /** + * 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. + */ + count?: pulumi.Input; + /** + * DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + */ + deviceClassName: pulumi.Input; + /** + * Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + */ + name: pulumi.Input; + /** + * 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. + */ + selectors?: pulumi.Input[]>; + } + + /** + * DeviceRequestAllocationResult contains the allocation result for one request. + */ + export interface DeviceRequestAllocationResult { + /** + * AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + */ + adminAccess?: pulumi.Input; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: pulumi.Input; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: pulumi.Input; + /** + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + */ + pool: pulumi.Input; + /** + * 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. + */ + request: pulumi.Input; + } + + /** + * 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. + * + * 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. + */ + export interface DeviceRequestPatch { + /** + * 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. + * + * 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. + */ + adminAccess?: pulumi.Input; + /** + * AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + */ + allocationMode?: pulumi.Input; + /** + * 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. + */ + count?: pulumi.Input; + /** + * DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + */ + deviceClassName?: pulumi.Input; + /** + * Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + */ + name?: pulumi.Input; + /** + * 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. + */ + selectors?: pulumi.Input[]>; + } + + /** + * DeviceSelector must have exactly one field set. + */ + export interface DeviceSelector { + /** + * CEL contains a CEL expression for selecting a device. + */ + cel?: pulumi.Input; + } + + /** + * DeviceSelector must have exactly one field set. + */ + export interface DeviceSelectorPatch { + /** + * CEL contains a CEL expression for selecting a device. + */ + cel?: pulumi.Input; + } + + /** + * 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. + */ + export interface NetworkDeviceData { + /** + * HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + */ + hardwareAddress?: pulumi.Input; + /** + * 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. + * + * Must not be longer than 256 characters. + */ + interfaceName?: pulumi.Input; + /** + * 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. + */ + ips?: pulumi.Input[]>; + } + + /** + * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + */ + export interface OpaqueDeviceConfiguration { + /** + * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: pulumi.Input; + /** + * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + parameters: any; + } + + /** + * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + */ + export interface OpaqueDeviceConfigurationPatch { + /** + * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver?: pulumi.Input; + /** + * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + parameters?: any; + } + + /** + * PodSchedulingContext objects hold information that is needed to schedule a Pod with ResourceClaims that use "WaitForFirstConsumer" allocation mode. + * + * This is an alpha type and requires enabling the DRAControlPlaneController feature gate. + */ + export interface PodSchedulingContext { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + /** + * 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 + */ + kind?: pulumi.Input<"PodSchedulingContext">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Spec describes where resources for the Pod are needed. + */ + spec: pulumi.Input; + /** + * Status describes where resources for the Pod can be allocated. + */ + status?: pulumi.Input; + } + + /** + * PodSchedulingContextSpec describes where resources for the Pod are needed. + */ + export interface PodSchedulingContextSpec { + /** + * PotentialNodes lists nodes where the Pod might be able to run. + * + * The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. + */ + potentialNodes?: pulumi.Input[]>; + /** + * SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. + */ + selectedNode?: pulumi.Input; + } + + /** + * PodSchedulingContextSpec describes where resources for the Pod are needed. + */ + export interface PodSchedulingContextSpecPatch { + /** + * PotentialNodes lists nodes where the Pod might be able to run. + * + * The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. + */ + potentialNodes?: pulumi.Input[]>; + /** + * SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. + */ + selectedNode?: pulumi.Input; + } + + /** + * PodSchedulingContextStatus describes where resources for the Pod can be allocated. + */ + export interface PodSchedulingContextStatus { + /** + * ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses "WaitForFirstConsumer" allocation mode. + */ + resourceClaims?: pulumi.Input[]>; + } + + /** + * ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface ResourceClaim { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceClaim">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + */ + spec: pulumi.Input; + /** + * Status describes whether the claim is ready to use and what has been allocated. + */ + status?: pulumi.Input; + } + + /** + * 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. + */ + export interface ResourceClaimConsumerReference { + /** + * 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. + */ + apiGroup?: pulumi.Input; + /** + * Name is the name of resource being referenced. + */ + name: pulumi.Input; + /** + * Resource is the type of resource being referenced, for example "pods". + */ + resource: pulumi.Input; + /** + * UID identifies exactly one incarnation of the resource. + */ + uid: pulumi.Input; + } + + /** + * ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode. + */ + export interface ResourceClaimSchedulingStatus { + /** + * Name matches the pod.spec.resourceClaims[*].Name field. + */ + name: pulumi.Input; + /** + * UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for. + * + * The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced. + */ + unsuitableNodes?: pulumi.Input[]>; + } + + /** + * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + */ + export interface ResourceClaimSpec { + /** + * Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + controller?: pulumi.Input; + /** + * Devices defines how to request devices. + */ + devices?: pulumi.Input; + } + + /** + * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + */ + export interface ResourceClaimSpecPatch { + /** + * Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + controller?: pulumi.Input; + /** + * Devices defines how to request devices. + */ + devices?: pulumi.Input; + } + + /** + * ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + */ + export interface ResourceClaimStatus { + /** + * Allocation is set once the claim has been allocated successfully. + */ + allocation?: pulumi.Input; + /** + * Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor. + * + * This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + deallocationRequested?: pulumi.Input; + /** + * Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + */ + devices?: pulumi.Input[]>; + /** + * ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + */ + reservedFor?: pulumi.Input[]>; + } + + /** + * ResourceClaimTemplate is used to produce ResourceClaim objects. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface ResourceClaimTemplate { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceClaimTemplate">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + */ + spec: pulumi.Input; + } + + /** + * ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + */ + export interface ResourceClaimTemplateSpec { + /** + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + */ + metadata?: pulumi.Input; + /** + * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + */ + spec: pulumi.Input; + } + + /** + * ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + */ + export interface ResourceClaimTemplateSpecPatch { + /** + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + */ + metadata?: pulumi.Input; + /** + * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + */ + spec?: pulumi.Input; + } + + /** + * ResourcePool describes the pool that ResourceSlices belong to. + */ + export interface ResourcePool { + /** + * 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + */ + generation: pulumi.Input; + /** + * Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + */ + name: pulumi.Input; + /** + * ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + */ + resourceSliceCount: pulumi.Input; + } + + /** + * ResourcePool describes the pool that ResourceSlices belong to. + */ + export interface ResourcePoolPatch { + /** + * 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + */ + generation?: pulumi.Input; + /** + * Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + */ + name?: pulumi.Input; + /** + * ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + */ + resourceSliceCount?: pulumi.Input; + } + + /** + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface ResourceSlice { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceSlice">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec: pulumi.Input; + } + + /** + * ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + */ + export interface ResourceSliceSpec { + /** + * AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + */ + allNodes?: pulumi.Input; + /** + * Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + */ + devices?: pulumi.Input[]>; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + */ + driver: pulumi.Input; + /** + * 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + */ + nodeName?: pulumi.Input; + /** + * NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + */ + nodeSelector?: pulumi.Input; + /** + * Pool describes the pool that this ResourceSlice belongs to. + */ + pool: pulumi.Input; + } + + /** + * ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + */ + export interface ResourceSliceSpecPatch { + /** + * AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + */ + allNodes?: pulumi.Input; + /** + * Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + */ + devices?: pulumi.Input[]>; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + */ + driver?: pulumi.Input; + /** + * 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + */ + nodeName?: pulumi.Input; + /** + * NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + */ + nodeSelector?: pulumi.Input; + /** + * Pool describes the pool that this ResourceSlice belongs to. + */ + pool?: pulumi.Input; + } + } + + export namespace v1beta1 { + /** + * AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + */ + export interface AllocatedDeviceStatus { + /** + * 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. + */ + conditions?: pulumi.Input[]>; + /** + * Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + data?: any; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: pulumi.Input; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: pulumi.Input; /** - * DriverName is the name used by the DRA driver kubelet plugin. + * NetworkData contains network-related information specific to the device. */ - driverName?: pulumi.Input; + networkData?: pulumi.Input; /** - * Parameters can be arbitrary setup parameters. They are ignored while allocating a claim. + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. */ - parameters?: any; + pool: pulumi.Input; } - } - export namespace v1alpha3 { /** * AllocationResult contains attributes of an allocated resource. */ export interface AllocationResult { - /** - * Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver. - * - * A driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - controller?: pulumi.Input; /** * Devices is the result of allocating devices. */ - devices?: pulumi.Input; + devices?: pulumi.Input; /** * NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. */ @@ -31460,13 +33159,13 @@ export namespace resource { * * The maximum number of attributes and capacities combined is 32. */ - attributes?: pulumi.Input<{[key: string]: pulumi.Input}>; + attributes?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. * * The maximum number of attributes and capacities combined is 32. */ - capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; + capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; } /** @@ -31478,13 +33177,13 @@ export namespace resource { * * The maximum number of attributes and capacities combined is 32. */ - attributes?: pulumi.Input<{[key: string]: pulumi.Input}>; + attributes?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. * * The maximum number of attributes and capacities combined is 32. */ - capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; + capacity?: pulumi.Input<{[key: string]: pulumi.Input}>; } /** @@ -31519,6 +33218,8 @@ export namespace resource { * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. */ expression: pulumi.Input; } @@ -31555,6 +33256,8 @@ export namespace resource { * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. */ expression?: pulumi.Input; } @@ -31566,7 +33269,7 @@ export namespace resource { /** * Basic defines one device instance. */ - basic?: pulumi.Input; + basic?: pulumi.Input; /** * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. */ @@ -31580,7 +33283,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque?: pulumi.Input; + opaque?: pulumi.Input; /** * Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. */ @@ -31600,11 +33303,11 @@ export namespace resource { * * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. */ - config?: pulumi.Input[]>; + config?: pulumi.Input[]>; /** * Results lists all allocated devices. */ - results?: pulumi.Input[]>; + results?: pulumi.Input[]>; } /** @@ -31629,6 +33332,16 @@ export namespace resource { version?: pulumi.Input; } + /** + * DeviceCapacity describes a quantity associated with a device. + */ + export interface DeviceCapacity { + /** + * Value defines how much of a certain device capacity is available. + */ + value: pulumi.Input; + } + /** * DeviceClaim defines how to request devices with a ResourceClaim. */ @@ -31636,15 +33349,15 @@ export namespace resource { /** * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. */ - config?: pulumi.Input[]>; + config?: pulumi.Input[]>; /** * These constraints must be satisfied by the set of devices that get allocated for the claim. */ - constraints?: pulumi.Input[]>; + constraints?: pulumi.Input[]>; /** * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. */ - requests?: pulumi.Input[]>; + requests?: pulumi.Input[]>; } /** @@ -31654,7 +33367,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque?: pulumi.Input; + opaque?: pulumi.Input; /** * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. */ @@ -31668,7 +33381,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque?: pulumi.Input; + opaque?: pulumi.Input; /** * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. */ @@ -31682,15 +33395,15 @@ export namespace resource { /** * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. */ - config?: pulumi.Input[]>; + config?: pulumi.Input[]>; /** * These constraints must be satisfied by the set of devices that get allocated for the claim. */ - constraints?: pulumi.Input[]>; + constraints?: pulumi.Input[]>; /** * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. */ - requests?: pulumi.Input[]>; + requests?: pulumi.Input[]>; } /** @@ -31702,7 +33415,7 @@ export namespace resource { /** * 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 */ - apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; /** * 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 */ @@ -31718,7 +33431,7 @@ export namespace resource { * * Changing the spec automatically increments the metadata.generation number. */ - spec: pulumi.Input; + spec: pulumi.Input; } /** @@ -31728,7 +33441,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque?: pulumi.Input; + opaque?: pulumi.Input; } /** @@ -31738,7 +33451,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque?: pulumi.Input; + opaque?: pulumi.Input; } /** @@ -31750,19 +33463,11 @@ export namespace resource { * * They are passed to the driver, but are not considered while allocating the claim. */ - config?: pulumi.Input[]>; + config?: pulumi.Input[]>; /** * Each selector must be satisfied by a device which is claimed via this class. */ - selectors?: pulumi.Input[]>; - /** - * Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. - * - * Setting this field is optional. If unset, all Nodes are candidates. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - suitableNodes?: pulumi.Input; + selectors?: pulumi.Input[]>; } /** @@ -31774,19 +33479,11 @@ export namespace resource { * * They are passed to the driver, but are not considered while allocating the claim. */ - config?: pulumi.Input[]>; + config?: pulumi.Input[]>; /** * Each selector must be satisfied by a device which is claimed via this class. */ - selectors?: pulumi.Input[]>; - /** - * Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. - * - * Setting this field is optional. If unset, all Nodes are candidates. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - suitableNodes?: pulumi.Input; + selectors?: pulumi.Input[]>; } /** @@ -31832,7 +33529,7 @@ export namespace resource { /** * Basic defines one device instance. */ - basic?: pulumi.Input; + basic?: pulumi.Input; /** * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. */ @@ -31847,6 +33544,8 @@ export namespace resource { export interface DeviceRequest { /** * 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. + * + * 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. */ adminAccess?: pulumi.Input; /** @@ -31886,13 +33585,19 @@ export namespace resource { /** * 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. */ - selectors?: pulumi.Input[]>; + selectors?: pulumi.Input[]>; } /** * DeviceRequestAllocationResult contains the allocation result for one request. */ export interface DeviceRequestAllocationResult { + /** + * AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + */ + adminAccess?: pulumi.Input; /** * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. */ @@ -31923,6 +33628,8 @@ export namespace resource { export interface DeviceRequestPatch { /** * 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. + * + * 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. */ adminAccess?: pulumi.Input; /** @@ -31962,7 +33669,7 @@ export namespace resource { /** * 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. */ - selectors?: pulumi.Input[]>; + selectors?: pulumi.Input[]>; } /** @@ -31972,7 +33679,7 @@ export namespace resource { /** * CEL contains a CEL expression for selecting a device. */ - cel?: pulumi.Input; + cel?: pulumi.Input; } /** @@ -31982,7 +33689,29 @@ export namespace resource { /** * CEL contains a CEL expression for selecting a device. */ - cel?: pulumi.Input; + cel?: pulumi.Input; + } + + /** + * 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. + */ + export interface NetworkDeviceData { + /** + * HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + */ + hardwareAddress?: pulumi.Input; + /** + * 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. + * + * Must not be longer than 256 characters. + */ + interfaceName?: pulumi.Input; + /** + * 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. + */ + ips?: pulumi.Input[]>; } /** @@ -31999,6 +33728,8 @@ export namespace resource { driver: pulumi.Input; /** * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. */ parameters: any; } @@ -32017,78 +33748,10 @@ export namespace resource { driver?: pulumi.Input; /** * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. - */ - parameters?: any; - } - - /** - * PodSchedulingContext objects hold information that is needed to schedule a Pod with ResourceClaims that use "WaitForFirstConsumer" allocation mode. - * - * This is an alpha type and requires enabling the DRAControlPlaneController feature gate. - */ - export interface PodSchedulingContext { - /** - * 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 - */ - apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; - /** - * 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 - */ - kind?: pulumi.Input<"PodSchedulingContext">; - /** - * Standard object metadata - */ - metadata?: pulumi.Input; - /** - * Spec describes where resources for the Pod are needed. - */ - spec: pulumi.Input; - /** - * Status describes where resources for the Pod can be allocated. - */ - status?: pulumi.Input; - } - - /** - * PodSchedulingContextSpec describes where resources for the Pod are needed. - */ - export interface PodSchedulingContextSpec { - /** - * PotentialNodes lists nodes where the Pod might be able to run. - * - * The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. - */ - potentialNodes?: pulumi.Input[]>; - /** - * SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. - */ - selectedNode?: pulumi.Input; - } - - /** - * PodSchedulingContextSpec describes where resources for the Pod are needed. - */ - export interface PodSchedulingContextSpecPatch { - /** - * PotentialNodes lists nodes where the Pod might be able to run. * - * The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. - */ - potentialNodes?: pulumi.Input[]>; - /** - * SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. - */ - selectedNode?: pulumi.Input; - } - - /** - * PodSchedulingContextStatus describes where resources for the Pod can be allocated. - */ - export interface PodSchedulingContextStatus { - /** - * ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses "WaitForFirstConsumer" allocation mode. + * The length of the raw data must be smaller or equal to 10 Ki. */ - resourceClaims?: pulumi.Input[]>; + parameters?: any; } /** @@ -32100,7 +33763,7 @@ export namespace resource { /** * 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 */ - apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; /** * 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 */ @@ -32112,11 +33775,11 @@ export namespace resource { /** * Spec describes what is being requested and how to configure it. The spec is immutable. */ - spec: pulumi.Input; + spec: pulumi.Input; /** * Status describes whether the claim is ready to use and what has been allocated. */ - status?: pulumi.Input; + status?: pulumi.Input; } /** @@ -32141,56 +33804,24 @@ export namespace resource { uid: pulumi.Input; } - /** - * ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode. - */ - export interface ResourceClaimSchedulingStatus { - /** - * Name matches the pod.spec.resourceClaims[*].Name field. - */ - name: pulumi.Input; - /** - * UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for. - * - * The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced. - */ - unsuitableNodes?: pulumi.Input[]>; - } - /** * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. */ export interface ResourceClaimSpec { - /** - * Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. - * - * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - controller?: pulumi.Input; /** * Devices defines how to request devices. */ - devices?: pulumi.Input; + devices?: pulumi.Input; } /** * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. */ export interface ResourceClaimSpecPatch { - /** - * Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. - * - * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - controller?: pulumi.Input; /** * Devices defines how to request devices. */ - devices?: pulumi.Input; + devices?: pulumi.Input; } /** @@ -32200,15 +33831,11 @@ export namespace resource { /** * Allocation is set once the claim has been allocated successfully. */ - allocation?: pulumi.Input; + allocation?: pulumi.Input; /** - * Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor. - * - * This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + * Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. */ - deallocationRequested?: pulumi.Input; + devices?: pulumi.Input[]>; /** * ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * @@ -32218,7 +33845,7 @@ export namespace resource { * * There can be at most 32 such reservations. This may get increased in the future, but not reduced. */ - reservedFor?: pulumi.Input[]>; + reservedFor?: pulumi.Input[]>; } /** @@ -32230,7 +33857,7 @@ export namespace resource { /** * 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 */ - apiVersion?: pulumi.Input<"resource.k8s.io/v1alpha3">; + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; /** * 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 */ @@ -32244,7 +33871,7 @@ export namespace resource { * * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. */ - spec: pulumi.Input; + spec: pulumi.Input; } /** @@ -32252,13 +33879,13 @@ export namespace resource { */ export interface ResourceClaimTemplateSpec { /** - * ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. */ metadata?: pulumi.Input; /** * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. */ - spec: pulumi.Input; + spec: pulumi.Input; } /** @@ -32266,13 +33893,13 @@ export namespace resource { */ export interface ResourceClaimTemplateSpecPatch { /** - * ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. */ metadata?: pulumi.Input; /** * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. */ - spec?: pulumi.Input; + spec?: pulumi.Input; } /** @@ -32323,6 +33950,40 @@ export namespace resource { resourceSliceCount?: pulumi.Input; } + /** + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface ResourceSlice { + /** + * 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 + */ + apiVersion?: pulumi.Input<"resource.k8s.io/v1beta1">; + /** + * 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 + */ + kind?: pulumi.Input<"ResourceSlice">; + /** + * Standard object metadata + */ + metadata?: pulumi.Input; + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec: pulumi.Input; + } + /** * ResourceSliceSpec contains the information published by the driver in one ResourceSlice. */ @@ -32338,7 +33999,7 @@ export namespace resource { * * Must not have more than 128 entries. */ - devices?: pulumi.Input[]>; + devices?: pulumi.Input[]>; /** * 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. * @@ -32364,7 +34025,7 @@ export namespace resource { /** * Pool describes the pool that this ResourceSlice belongs to. */ - pool: pulumi.Input; + pool: pulumi.Input; } /** @@ -32382,7 +34043,7 @@ export namespace resource { * * Must not have more than 128 entries. */ - devices?: pulumi.Input[]>; + devices?: pulumi.Input[]>; /** * 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. * @@ -32408,7 +34069,7 @@ export namespace resource { /** * Pool describes the pool that this ResourceSlice belongs to. */ - pool?: pulumi.Input; + pool?: pulumi.Input; } } } @@ -33025,7 +34686,7 @@ export namespace storage { } /** - * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. */ export interface VolumeAttachmentSource { /** @@ -33039,7 +34700,7 @@ export namespace storage { } /** - * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. */ export interface VolumeAttachmentSourcePatch { /** diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 7876566b03..556234b9ff 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -875,7 +875,7 @@ export namespace admissionregistration { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -915,7 +915,7 @@ export namespace admissionregistration { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -1461,6 +1461,80 @@ export namespace admissionregistration { } export namespace v1alpha1 { + /** + * ApplyConfiguration defines the desired configuration values of an object. + */ + export interface ApplyConfiguration { + /** + * expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + */ + expression: string; + } + + /** + * ApplyConfiguration defines the desired configuration values of an object. + */ + export interface ApplyConfigurationPatch { + /** + * expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + * + * Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + * + * Object{ + * spec: Object.spec{ + * serviceAccountName: "example" + * } + * } + * + * Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + * + * CEL expressions have access to the object types needed to create apply configurations: + * + * - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + */ + expression: string; + } + /** * AuditAnnotation describes how to produce an audit annotation for an API request. */ @@ -1537,6 +1611,132 @@ export namespace admissionregistration { warning: string; } + /** + * JSONPatch defines a JSON Patch. + */ + export interface JSONPatch { + /** + * expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + */ + expression: string; + } + + /** + * JSONPatch defines a JSON Patch. + */ + export interface JSONPatchPatch { + /** + * expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + * + * expression must return an array of JSONPatch values. + * + * For example, this CEL expression returns a JSON patch to conditionally modify a value: + * + * [ + * JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + * JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + * ] + * + * To define an object for the patch value, use Object types. For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/spec/selector", + * value: Object.spec.selector{matchLabels: {"environment": "test"}} + * } + * ] + * + * To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + * + * [ + * JSONPatch{ + * op: "add", + * path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + * value: "test" + * }, + * ] + * + * CEL expressions have access to the types needed to create JSON patches and objects: + * + * - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + * See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + * integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + * [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + * function may be used to escape path keys containing '/' and '~'. + * - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + * + * CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + * + * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + * For example, a variable named 'foo' can be accessed as 'variables.foo'. + * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + * request resource. + * + * CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + * + * - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + * + * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + */ + expression: string; + } + export interface MatchCondition { /** * Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: @@ -1703,6 +1903,236 @@ export namespace admissionregistration { resourceRules: outputs.admissionregistration.v1alpha1.NamedRuleWithOperationsPatch[]; } + /** + * MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + */ + export interface MutatingAdmissionPolicy { + /** + * 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 + */ + apiVersion: "admissionregistration.k8s.io/v1alpha1"; + /** + * 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 + */ + kind: "MutatingAdmissionPolicy"; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicy. + */ + spec: outputs.admissionregistration.v1alpha1.MutatingAdmissionPolicySpec; + } + + /** + * MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + * + * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + * + * Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + */ + export interface MutatingAdmissionPolicyBinding { + /** + * 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 + */ + apiVersion: "admissionregistration.k8s.io/v1alpha1"; + /** + * 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 + */ + kind: "MutatingAdmissionPolicyBinding"; + /** + * Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + */ + spec: outputs.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingSpec; + } + + /** + * MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + */ + export interface MutatingAdmissionPolicyBindingSpec { + /** + * matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + */ + matchResources: outputs.admissionregistration.v1alpha1.MatchResources; + /** + * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + */ + paramRef: outputs.admissionregistration.v1alpha1.ParamRef; + /** + * policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + */ + policyName: string; + } + + /** + * MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + */ + export interface MutatingAdmissionPolicyBindingSpecPatch { + /** + * matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + */ + matchResources: outputs.admissionregistration.v1alpha1.MatchResourcesPatch; + /** + * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + */ + paramRef: outputs.admissionregistration.v1alpha1.ParamRefPatch; + /** + * policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + */ + policyName: string; + } + + /** + * MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + */ + export interface MutatingAdmissionPolicySpec { + /** + * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + */ + failurePolicy: string; + /** + * matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + */ + matchConditions: outputs.admissionregistration.v1alpha1.MatchCondition[]; + /** + * matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + */ + matchConstraints: outputs.admissionregistration.v1alpha1.MatchResources; + /** + * mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + */ + mutations: outputs.admissionregistration.v1alpha1.Mutation[]; + /** + * paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + */ + paramKind: outputs.admissionregistration.v1alpha1.ParamKind; + /** + * reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + */ + reinvocationPolicy: string; + /** + * variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + */ + variables: outputs.admissionregistration.v1alpha1.Variable[]; + } + + /** + * MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + */ + export interface MutatingAdmissionPolicySpecPatch { + /** + * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + * + * A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + * + * failurePolicy does not define how validations that evaluate to false are handled. + * + * Allowed values are Ignore or Fail. Defaults to Fail. + */ + failurePolicy: string; + /** + * matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + * + * If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + * + * The exact matching logic is (in order): + * 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + * 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + * 3. If any matchCondition evaluates to an error (but none are FALSE): + * - If failurePolicy=Fail, reject the request + * - If failurePolicy=Ignore, the policy is skipped + */ + matchConditions: outputs.admissionregistration.v1alpha1.MatchConditionPatch[]; + /** + * matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + */ + matchConstraints: outputs.admissionregistration.v1alpha1.MatchResourcesPatch; + /** + * mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + */ + mutations: outputs.admissionregistration.v1alpha1.MutationPatch[]; + /** + * paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + */ + paramKind: outputs.admissionregistration.v1alpha1.ParamKindPatch; + /** + * reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + * + * Never: These mutations will not be called more than once per binding in a single admission evaluation. + * + * IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + */ + reinvocationPolicy: string; + /** + * variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + * + * The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + */ + variables: outputs.admissionregistration.v1alpha1.VariablePatch[]; + } + + /** + * Mutation specifies the CEL expression which is used to apply the Mutation. + */ + export interface Mutation { + /** + * applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + */ + applyConfiguration: outputs.admissionregistration.v1alpha1.ApplyConfiguration; + /** + * jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + */ + jsonPatch: outputs.admissionregistration.v1alpha1.JSONPatch; + /** + * patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + */ + patchType: string; + } + + /** + * Mutation specifies the CEL expression which is used to apply the Mutation. + */ + export interface MutationPatch { + /** + * applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + */ + applyConfiguration: outputs.admissionregistration.v1alpha1.ApplyConfigurationPatch; + /** + * jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + */ + jsonPatch: outputs.admissionregistration.v1alpha1.JSONPatchPatch; + /** + * patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + */ + patchType: string; + } + /** * NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. */ @@ -1923,10 +2353,6 @@ export namespace admissionregistration { /** * ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - * - * For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - * - * The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. */ export interface ValidatingAdmissionPolicyBinding { /** @@ -1956,7 +2382,7 @@ export namespace admissionregistration { */ matchResources: outputs.admissionregistration.v1alpha1.MatchResources; /** - * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. */ paramRef: outputs.admissionregistration.v1alpha1.ParamRef; /** @@ -1996,7 +2422,7 @@ export namespace admissionregistration { */ matchResources: outputs.admissionregistration.v1alpha1.MatchResourcesPatch; /** - * paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + * ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. */ paramRef: outputs.admissionregistration.v1alpha1.ParamRefPatch; /** @@ -2036,15 +2462,7 @@ export namespace admissionregistration { */ auditAnnotations: outputs.admissionregistration.v1alpha1.AuditAnnotation[]; /** - * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. */ failurePolicy: string; /** @@ -2069,7 +2487,7 @@ export namespace admissionregistration { */ paramKind: outputs.admissionregistration.v1alpha1.ParamKind; /** - * Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. */ validations: outputs.admissionregistration.v1alpha1.Validation[]; /** @@ -2089,15 +2507,7 @@ export namespace admissionregistration { */ auditAnnotations: outputs.admissionregistration.v1alpha1.AuditAnnotationPatch[]; /** - * failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - * - * A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - * - * failurePolicy does not define how validations that evaluate to false are handled. - * - * When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - * - * Allowed values are Ignore or Fail. Defaults to Fail. + * FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. */ failurePolicy: string; /** @@ -2122,7 +2532,7 @@ export namespace admissionregistration { */ paramKind: outputs.admissionregistration.v1alpha1.ParamKindPatch; /** - * Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + * Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. */ validations: outputs.admissionregistration.v1alpha1.ValidationPatch[]; /** @@ -2174,14 +2584,9 @@ export namespace admissionregistration { */ export interface Validation { /** - * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -2221,14 +2626,9 @@ export namespace admissionregistration { */ export interface ValidationPatch { /** - * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + * Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: * - * - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - * For example, a variable named 'foo' can be accessed as 'variables.foo'. - * - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - * See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - * - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - * request resource. + * 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. * * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. * @@ -3137,7 +3537,7 @@ export namespace admissionregistration { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -3177,7 +3577,7 @@ export namespace admissionregistration { * * "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. * - * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + * "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` * * Clients should expect to handle additional values by ignoring any values not recognized. * @@ -4236,7 +4636,7 @@ export namespace apiextensions { /** * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. */ format: string; id: string; @@ -4348,7 +4748,7 @@ export namespace apiextensions { /** * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: * - * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. */ format: string; id: string; @@ -6985,7 +7385,7 @@ export namespace apps { */ ordinals: outputs.apps.v1.StatefulSetOrdinals; /** - * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. */ persistentVolumeClaimRetentionPolicy: outputs.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy; /** @@ -7035,7 +7435,7 @@ export namespace apps { */ ordinals: outputs.apps.v1.StatefulSetOrdinalsPatch; /** - * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. */ persistentVolumeClaimRetentionPolicy: outputs.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicyPatch; /** @@ -9878,7 +10278,7 @@ export namespace autoscaling { */ export interface MetricSpec { /** - * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. */ containerResource: outputs.autoscaling.v2.ContainerResourceMetricSource; /** @@ -9898,7 +10298,7 @@ export namespace autoscaling { */ resource: outputs.autoscaling.v2.ResourceMetricSource; /** - * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. */ type: string; } @@ -9908,7 +10308,7 @@ export namespace autoscaling { */ export interface MetricSpecPatch { /** - * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. */ containerResource: outputs.autoscaling.v2.ContainerResourceMetricSourcePatch; /** @@ -9928,7 +10328,7 @@ export namespace autoscaling { */ resource: outputs.autoscaling.v2.ResourceMetricSourcePatch; /** - * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. */ type: string; } @@ -9958,7 +10358,7 @@ export namespace autoscaling { */ resource: outputs.autoscaling.v2.ResourceMetricStatus; /** - * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. */ type: string; } @@ -9988,7 +10388,7 @@ export namespace autoscaling { */ resource: outputs.autoscaling.v2.ResourceMetricStatusPatch; /** - * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. */ type: string; } @@ -12171,7 +12571,7 @@ export namespace batch { /** * ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). */ managedBy: string; /** @@ -12256,7 +12656,7 @@ export namespace batch { /** * ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. * - * This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + * This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). */ managedBy: string; /** @@ -13815,6 +14215,91 @@ export namespace coordination { } + export namespace v1alpha2 { + /** + * LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + */ + export interface LeaseCandidate { + /** + * 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 + */ + apiVersion: "coordination.k8s.io/v1alpha2"; + /** + * 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 + */ + kind: "LeaseCandidate"; + /** + * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + spec: outputs.coordination.v1alpha2.LeaseCandidateSpec; + } + + /** + * LeaseCandidateSpec is a specification of a Lease. + */ + export interface LeaseCandidateSpec { + /** + * BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + */ + binaryVersion: string; + /** + * EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + */ + emulationVersion: string; + /** + * LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + */ + leaseName: string; + /** + * PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + */ + pingTime: string; + /** + * RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + */ + renewTime: string; + /** + * Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + */ + strategy: string; + } + + /** + * LeaseCandidateSpec is a specification of a Lease. + */ + export interface LeaseCandidateSpecPatch { + /** + * BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + */ + binaryVersion: string; + /** + * EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + */ + emulationVersion: string; + /** + * LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + */ + leaseName: string; + /** + * PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + */ + pingTime: string; + /** + * RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + */ + renewTime: string; + /** + * Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + */ + strategy: string; + } + + } + export namespace v1beta1 { /** * Lease defines a lease concept. @@ -14182,7 +14667,7 @@ export namespace core { } /** - * Represents storage that is managed by an external CSI volume driver (Beta feature) + * Represents storage that is managed by an external CSI volume driver */ export interface CSIPersistentVolumeSource { /** @@ -14228,7 +14713,7 @@ export namespace core { } /** - * Represents storage that is managed by an external CSI volume driver (Beta feature) + * Represents storage that is managed by an external CSI volume driver */ export interface CSIPersistentVolumeSourcePatch { /** @@ -16629,6 +17114,9 @@ export namespace core { readOnly: boolean; } + /** + * GRPCAction specifies an action involving a GRPC service. + */ export interface GRPCAction { /** * Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -16642,6 +17130,9 @@ export namespace core { service: string; } + /** + * GRPCAction specifies an action involving a GRPC service. + */ export interface GRPCActionPatch { /** * Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -17214,19 +17705,19 @@ export namespace core { */ export interface LifecycleHandler { /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. */ exec: outputs.core.v1.ExecAction; /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. */ httpGet: outputs.core.v1.HTTPGetAction; /** - * Sleep represents the duration that the container should sleep before being terminated. + * Sleep represents a duration that the container should sleep. */ sleep: outputs.core.v1.SleepAction; /** - * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. */ tcpSocket: outputs.core.v1.TCPSocketAction; } @@ -17236,19 +17727,19 @@ export namespace core { */ export interface LifecycleHandlerPatch { /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. */ exec: outputs.core.v1.ExecActionPatch; /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. */ httpGet: outputs.core.v1.HTTPGetActionPatch; /** - * Sleep represents the duration that the container should sleep before being terminated. + * Sleep represents a duration that the container should sleep. */ sleep: outputs.core.v1.SleepActionPatch; /** - * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. */ tcpSocket: outputs.core.v1.TCPSocketActionPatch; } @@ -17490,7 +17981,7 @@ export namespace core { } /** - * Local represents directly-attached storage with node affinity (Beta feature) + * Local represents directly-attached storage with node affinity */ export interface LocalVolumeSource { /** @@ -17504,7 +17995,7 @@ export namespace core { } /** - * Local represents directly-attached storage with node affinity (Beta feature) + * Local represents directly-attached storage with node affinity */ export interface LocalVolumeSourcePatch { /** @@ -17629,8 +18120,17 @@ export namespace core { * NamespaceCondition contains details about state of namespace. */ export interface NamespaceCondition { + /** + * Last time the condition transitioned from one status to another. + */ lastTransitionTime: string; + /** + * Human-readable message indicating details about last transition. + */ message: string; + /** + * Unique, one-word, CamelCase reason for the condition's last transition. + */ reason: string; /** * Status of the condition, one of True, False, Unknown. @@ -17646,8 +18146,17 @@ export namespace core { * NamespaceCondition contains details about state of namespace. */ export interface NamespaceConditionPatch { + /** + * Last time the condition transitioned from one status to another. + */ lastTransitionTime: string; + /** + * Human-readable message indicating details about last transition. + */ message: string; + /** + * Unique, one-word, CamelCase reason for the condition's last transition. + */ reason: string; /** * Status of the condition, one of True, False, Unknown. @@ -18166,7 +18675,7 @@ export namespace core { */ export interface NodeStatus { /** - * List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). */ addresses: outputs.core.v1.NodeAddress[]; /** @@ -18178,7 +18687,7 @@ export namespace core { */ capacity: {[key: string]: string}; /** - * Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition */ conditions: outputs.core.v1.NodeCondition[]; /** @@ -18198,7 +18707,7 @@ export namespace core { */ images: outputs.core.v1.ContainerImage[]; /** - * Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info */ nodeInfo: outputs.core.v1.NodeSystemInfo; /** @@ -18224,7 +18733,7 @@ export namespace core { */ export interface NodeStatusPatch { /** - * List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + * List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). */ addresses: outputs.core.v1.NodeAddressPatch[]; /** @@ -18236,7 +18745,7 @@ export namespace core { */ capacity: {[key: string]: string}; /** - * Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + * Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition */ conditions: outputs.core.v1.NodeConditionPatch[]; /** @@ -18256,7 +18765,7 @@ export namespace core { */ images: outputs.core.v1.ContainerImagePatch[]; /** - * Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + * Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info */ nodeInfo: outputs.core.v1.NodeSystemInfoPatch; /** @@ -18537,7 +19046,13 @@ export namespace core { * reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. */ reason: string; + /** + * Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + */ status: string; + /** + * Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + */ type: string; } @@ -18561,7 +19076,13 @@ export namespace core { * reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. */ reason: string; + /** + * Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + */ status: string; + /** + * Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + */ type: string; } @@ -18916,15 +19437,15 @@ export namespace core { */ accessModes: string[]; /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore */ awsElasticBlockStore: outputs.core.v1.AWSElasticBlockStoreVolumeSource; /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. */ azureDisk: outputs.core.v1.AzureDiskVolumeSource; /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. */ azureFile: outputs.core.v1.AzureFilePersistentVolumeSource; /** @@ -18932,11 +19453,11 @@ export namespace core { */ capacity: {[key: string]: string}; /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. */ cephfs: outputs.core.v1.CephFSPersistentVolumeSource; /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md */ cinder: outputs.core.v1.CinderPersistentVolumeSource; /** @@ -18944,7 +19465,7 @@ export namespace core { */ claimRef: outputs.core.v1.ObjectReference; /** - * csi represents storage that is handled by an external CSI driver (Beta feature). + * csi represents storage that is handled by an external CSI driver. */ csi: outputs.core.v1.CSIPersistentVolumeSource; /** @@ -18952,19 +19473,19 @@ export namespace core { */ fc: outputs.core.v1.FCVolumeSource; /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. */ flexVolume: outputs.core.v1.FlexPersistentVolumeSource; /** - * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. */ flocker: outputs.core.v1.FlockerVolumeSource; /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk */ gcePersistentDisk: outputs.core.v1.GCEPersistentDiskVolumeSource; /** - * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md */ glusterfs: outputs.core.v1.GlusterfsPersistentVolumeSource; /** @@ -18996,23 +19517,23 @@ export namespace core { */ persistentVolumeReclaimPolicy: string; /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. */ photonPersistentDisk: outputs.core.v1.PhotonPersistentDiskVolumeSource; /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. */ portworxVolume: outputs.core.v1.PortworxVolumeSource; /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. */ quobyte: outputs.core.v1.QuobyteVolumeSource; /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md */ rbd: outputs.core.v1.RBDPersistentVolumeSource; /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. */ scaleIO: outputs.core.v1.ScaleIOPersistentVolumeSource; /** @@ -19020,7 +19541,7 @@ export namespace core { */ storageClassName: string; /** - * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md */ storageos: outputs.core.v1.StorageOSPersistentVolumeSource; /** @@ -19032,7 +19553,7 @@ export namespace core { */ volumeMode: string; /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. */ vsphereVolume: outputs.core.v1.VsphereVirtualDiskVolumeSource; } @@ -19046,15 +19567,15 @@ export namespace core { */ accessModes: string[]; /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore */ awsElasticBlockStore: outputs.core.v1.AWSElasticBlockStoreVolumeSourcePatch; /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. */ azureDisk: outputs.core.v1.AzureDiskVolumeSourcePatch; /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. */ azureFile: outputs.core.v1.AzureFilePersistentVolumeSourcePatch; /** @@ -19062,11 +19583,11 @@ export namespace core { */ capacity: {[key: string]: string}; /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. */ cephfs: outputs.core.v1.CephFSPersistentVolumeSourcePatch; /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md */ cinder: outputs.core.v1.CinderPersistentVolumeSourcePatch; /** @@ -19074,7 +19595,7 @@ export namespace core { */ claimRef: outputs.core.v1.ObjectReferencePatch; /** - * csi represents storage that is handled by an external CSI driver (Beta feature). + * csi represents storage that is handled by an external CSI driver. */ csi: outputs.core.v1.CSIPersistentVolumeSourcePatch; /** @@ -19082,19 +19603,19 @@ export namespace core { */ fc: outputs.core.v1.FCVolumeSourcePatch; /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. */ flexVolume: outputs.core.v1.FlexPersistentVolumeSourcePatch; /** - * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. */ flocker: outputs.core.v1.FlockerVolumeSourcePatch; /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk */ gcePersistentDisk: outputs.core.v1.GCEPersistentDiskVolumeSourcePatch; /** - * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md */ glusterfs: outputs.core.v1.GlusterfsPersistentVolumeSourcePatch; /** @@ -19126,23 +19647,23 @@ export namespace core { */ persistentVolumeReclaimPolicy: string; /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. */ photonPersistentDisk: outputs.core.v1.PhotonPersistentDiskVolumeSourcePatch; /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. */ portworxVolume: outputs.core.v1.PortworxVolumeSourcePatch; /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. */ quobyte: outputs.core.v1.QuobyteVolumeSourcePatch; /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md */ rbd: outputs.core.v1.RBDPersistentVolumeSourcePatch; /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. */ scaleIO: outputs.core.v1.ScaleIOPersistentVolumeSourcePatch; /** @@ -19150,7 +19671,7 @@ export namespace core { */ storageClassName: string; /** - * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + * storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md */ storageos: outputs.core.v1.StorageOSPersistentVolumeSourcePatch; /** @@ -19162,7 +19683,7 @@ export namespace core { */ volumeMode: string; /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. */ vsphereVolume: outputs.core.v1.VsphereVirtualDiskVolumeSourcePatch; } @@ -19479,9 +20000,12 @@ export namespace core { */ export interface PodDNSConfigOption { /** - * Required. + * Name is this DNS resolver option's name. Required. */ name: string; + /** + * Value is this DNS resolver option's value. + */ value: string; } @@ -19490,9 +20014,12 @@ export namespace core { */ export interface PodDNSConfigOptionPatch { /** - * Required. + * Name is this DNS resolver option's name. Required. */ name: string; + /** + * Value is this DNS resolver option's value. + */ value: string; } @@ -19718,6 +20245,20 @@ export namespace core { * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. */ runAsUser: number; + /** + * seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + */ + seLinuxChangePolicy: string; /** * The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. */ @@ -19776,6 +20317,20 @@ export namespace core { * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. */ runAsUser: number; + /** + * seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + * + * "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + * + * "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + * + * If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + * + * This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + * + * All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + */ + seLinuxChangePolicy: string; /** * The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. */ @@ -19915,177 +20470,13 @@ export namespace core { */ resourceClaims: outputs.core.v1.PodResourceClaim[]; /** - * Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy - */ - restartPolicy: string; - /** - * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class - */ - runtimeClassName: string; - /** - * If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. - */ - schedulerName: string; - /** - * SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - * - * SchedulingGates can only be set at pod creation time, and be removed only afterwards. - */ - schedulingGates: outputs.core.v1.PodSchedulingGate[]; - /** - * SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. - */ - securityContext: outputs.core.v1.PodSecurityContext; - /** - * DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. - */ - serviceAccount: string; - /** - * ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ - */ - serviceAccountName: string; - /** - * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. - */ - setHostnameAsFQDN: boolean; - /** - * Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. - */ - shareProcessNamespace: boolean; - /** - * If specified, the fully qualified Pod hostname will be "...svc.". If not specified, the pod will not have a domainname at all. - */ - subdomain: string; - /** - * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds. - */ - terminationGracePeriodSeconds: number; - /** - * If specified, the pod's tolerations. - */ - tolerations: outputs.core.v1.Toleration[]; - /** - * TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed. - */ - topologySpreadConstraints: outputs.core.v1.TopologySpreadConstraint[]; - /** - * List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes - */ - volumes: outputs.core.v1.Volume[]; - } - - /** - * PodSpec is a description of a pod. - */ - export interface PodSpecPatch { - /** - * Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer. - */ - activeDeadlineSeconds: number; - /** - * If specified, the pod's scheduling constraints - */ - affinity: outputs.core.v1.AffinityPatch; - /** - * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted. - */ - automountServiceAccountToken: boolean; - /** - * List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. - */ - containers: outputs.core.v1.ContainerPatch[]; - /** - * Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy. - */ - dnsConfig: outputs.core.v1.PodDNSConfigPatch; - /** - * Set DNS policy for the pod. Defaults to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'. - */ - dnsPolicy: string; - /** - * EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true. - */ - enableServiceLinks: boolean; - /** - * List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. - */ - ephemeralContainers: outputs.core.v1.EphemeralContainerPatch[]; - /** - * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. - */ - hostAliases: outputs.core.v1.HostAliasPatch[]; - /** - * Use the host's ipc namespace. Optional: Default to false. - */ - hostIPC: boolean; - /** - * Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. - */ - hostNetwork: boolean; - /** - * Use the host's pid namespace. Optional: Default to false. - */ - hostPID: boolean; - /** - * Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature. - */ - hostUsers: boolean; - /** - * Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value. - */ - hostname: string; - /** - * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - */ - imagePullSecrets: outputs.core.v1.LocalObjectReferencePatch[]; - /** - * List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ - */ - initContainers: outputs.core.v1.ContainerPatch[]; - /** - * NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename - */ - nodeName: string; - /** - * NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ - */ - nodeSelector: {[key: string]: string}; - /** - * Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. + * Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. * - * If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. * - * If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup - */ - os: outputs.core.v1.PodOSPatch; - /** - * Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md - */ - overhead: {[key: string]: string}; - /** - * PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. + * This is an alpha field and requires enabling the PodLevelResources feature gate. */ - preemptionPolicy: string; - /** - * The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority. - */ - priority: number; - /** - * If specified, indicates the pod's priority. "system-node-critical" and "system-cluster-critical" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. - */ - priorityClassName: string; - /** - * If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to "True" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates - */ - readinessGates: outputs.core.v1.PodReadinessGatePatch[]; - /** - * ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. - * - * This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - * - * This field is immutable. - */ - resourceClaims: outputs.core.v1.PodResourceClaimPatch[]; + resources: outputs.core.v1.ResourceRequirements; /** * Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy */ @@ -20103,11 +20494,11 @@ export namespace core { * * SchedulingGates can only be set at pod creation time, and be removed only afterwards. */ - schedulingGates: outputs.core.v1.PodSchedulingGatePatch[]; + schedulingGates: outputs.core.v1.PodSchedulingGate[]; /** * SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. */ - securityContext: outputs.core.v1.PodSecurityContextPatch; + securityContext: outputs.core.v1.PodSecurityContext; /** * DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. */ @@ -20117,7 +20508,187 @@ export namespace core { */ serviceAccountName: string; /** - * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + */ + setHostnameAsFQDN: boolean; + /** + * Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. + */ + shareProcessNamespace: boolean; + /** + * If specified, the fully qualified Pod hostname will be "...svc.". If not specified, the pod will not have a domainname at all. + */ + subdomain: string; + /** + * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds. + */ + terminationGracePeriodSeconds: number; + /** + * If specified, the pod's tolerations. + */ + tolerations: outputs.core.v1.Toleration[]; + /** + * TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed. + */ + topologySpreadConstraints: outputs.core.v1.TopologySpreadConstraint[]; + /** + * List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes + */ + volumes: outputs.core.v1.Volume[]; + } + + /** + * PodSpec is a description of a pod. + */ + export interface PodSpecPatch { + /** + * Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer. + */ + activeDeadlineSeconds: number; + /** + * If specified, the pod's scheduling constraints + */ + affinity: outputs.core.v1.AffinityPatch; + /** + * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted. + */ + automountServiceAccountToken: boolean; + /** + * List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. + */ + containers: outputs.core.v1.ContainerPatch[]; + /** + * Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy. + */ + dnsConfig: outputs.core.v1.PodDNSConfigPatch; + /** + * Set DNS policy for the pod. Defaults to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'. + */ + dnsPolicy: string; + /** + * EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true. + */ + enableServiceLinks: boolean; + /** + * List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. + */ + ephemeralContainers: outputs.core.v1.EphemeralContainerPatch[]; + /** + * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. + */ + hostAliases: outputs.core.v1.HostAliasPatch[]; + /** + * Use the host's ipc namespace. Optional: Default to false. + */ + hostIPC: boolean; + /** + * Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. + */ + hostNetwork: boolean; + /** + * Use the host's pid namespace. Optional: Default to false. + */ + hostPID: boolean; + /** + * Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature. + */ + hostUsers: boolean; + /** + * Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value. + */ + hostname: string; + /** + * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod + */ + imagePullSecrets: outputs.core.v1.LocalObjectReferencePatch[]; + /** + * List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ + */ + initContainers: outputs.core.v1.ContainerPatch[]; + /** + * NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename + */ + nodeName: string; + /** + * NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ + */ + nodeSelector: {[key: string]: string}; + /** + * Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. + * + * If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions + * + * If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup + */ + os: outputs.core.v1.PodOSPatch; + /** + * Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md + */ + overhead: {[key: string]: string}; + /** + * PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. + */ + preemptionPolicy: string; + /** + * The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority. + */ + priority: number; + /** + * If specified, indicates the pod's priority. "system-node-critical" and "system-cluster-critical" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. + */ + priorityClassName: string; + /** + * If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to "True" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates + */ + readinessGates: outputs.core.v1.PodReadinessGatePatch[]; + /** + * ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. + * + * This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + * + * This field is immutable. + */ + resourceClaims: outputs.core.v1.PodResourceClaimPatch[]; + /** + * Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + * + * This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + * + * This is an alpha field and requires enabling the PodLevelResources feature gate. + */ + resources: outputs.core.v1.ResourceRequirementsPatch; + /** + * Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy + */ + restartPolicy: string; + /** + * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class + */ + runtimeClassName: string; + /** + * If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. + */ + schedulerName: string; + /** + * SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. + * + * SchedulingGates can only be set at pod creation time, and be removed only afterwards. + */ + schedulingGates: outputs.core.v1.PodSchedulingGatePatch[]; + /** + * SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. + */ + securityContext: outputs.core.v1.PodSecurityContextPatch; + /** + * DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. + */ + serviceAccount: string; + /** + * ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ + */ + serviceAccountName: string; + /** + * If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. */ setHostnameAsFQDN: boolean; /** @@ -20155,11 +20726,11 @@ export namespace core { */ conditions: outputs.core.v1.PodCondition[]; /** - * The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status */ containerStatuses: outputs.core.v1.ContainerStatus[]; /** - * Status for any ephemeral containers that have run in this pod. + * Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status */ ephemeralContainerStatuses: outputs.core.v1.ContainerStatus[]; /** @@ -20171,7 +20742,7 @@ export namespace core { */ hostIPs: outputs.core.v1.HostIP[]; /** - * The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status */ initContainerStatuses: outputs.core.v1.ContainerStatus[]; /** @@ -20229,11 +20800,11 @@ export namespace core { */ conditions: outputs.core.v1.PodConditionPatch[]; /** - * The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status */ containerStatuses: outputs.core.v1.ContainerStatusPatch[]; /** - * Status for any ephemeral containers that have run in this pod. + * Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status */ ephemeralContainerStatuses: outputs.core.v1.ContainerStatusPatch[]; /** @@ -20245,7 +20816,7 @@ export namespace core { */ hostIPs: outputs.core.v1.HostIPPatch[]; /** - * The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + * Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status */ initContainerStatuses: outputs.core.v1.ContainerStatusPatch[]; /** @@ -20344,6 +20915,9 @@ export namespace core { spec: outputs.core.v1.PodSpecPatch; } + /** + * PortStatus represents the error condition of a service port + */ export interface PortStatus { /** * Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use @@ -20362,6 +20936,9 @@ export namespace core { protocol: string; } + /** + * PortStatus represents the error condition of a service port + */ export interface PortStatusPatch { /** * Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use @@ -20449,7 +21026,7 @@ export namespace core { */ export interface Probe { /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. */ exec: outputs.core.v1.ExecAction; /** @@ -20457,11 +21034,11 @@ export namespace core { */ failureThreshold: number; /** - * GRPC specifies an action involving a GRPC port. + * GRPC specifies a GRPC HealthCheckRequest. */ grpc: outputs.core.v1.GRPCAction; /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. */ httpGet: outputs.core.v1.HTTPGetAction; /** @@ -20477,7 +21054,7 @@ export namespace core { */ successThreshold: number; /** - * TCPSocket specifies an action involving a TCP port. + * TCPSocket specifies a connection to a TCP port. */ tcpSocket: outputs.core.v1.TCPSocketAction; /** @@ -20495,7 +21072,7 @@ export namespace core { */ export interface ProbePatch { /** - * Exec specifies the action to take. + * Exec specifies a command to execute in the container. */ exec: outputs.core.v1.ExecActionPatch; /** @@ -20503,11 +21080,11 @@ export namespace core { */ failureThreshold: number; /** - * GRPC specifies an action involving a GRPC port. + * GRPC specifies a GRPC HealthCheckRequest. */ grpc: outputs.core.v1.GRPCActionPatch; /** - * HTTPGet specifies the http request to perform. + * HTTPGet specifies an HTTP GET request to perform. */ httpGet: outputs.core.v1.HTTPGetActionPatch; /** @@ -20523,7 +21100,7 @@ export namespace core { */ successThreshold: number; /** - * TCPSocket specifies an action involving a TCP port. + * TCPSocket specifies a connection to a TCP port. */ tcpSocket: outputs.core.v1.TCPSocketActionPatch; /** @@ -21023,7 +21600,7 @@ export namespace core { } /** - * ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + * ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. */ export interface ResourceHealth { /** @@ -21045,7 +21622,7 @@ export namespace core { } /** - * ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + * ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. */ export interface ResourceHealthPatch { /** @@ -21200,24 +21777,30 @@ export namespace core { requests: {[key: string]: string}; } + /** + * ResourceStatus represents the status of a single resource allocated to a Pod. + */ export interface ResourceStatus { /** - * Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. */ name: string; /** - * List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. */ resources: outputs.core.v1.ResourceHealth[]; } + /** + * ResourceStatus represents the status of a single resource allocated to a Pod. + */ export interface ResourceStatusPatch { /** - * Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + * Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. */ name: string; /** - * List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + * List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. */ resources: outputs.core.v1.ResourceHealthPatch[]; } @@ -21942,7 +22525,7 @@ export namespace core { */ metadata: outputs.meta.v1.ObjectMeta; /** - * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + * Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret */ secrets: outputs.core.v1.ObjectReference[]; } @@ -22150,7 +22733,7 @@ export namespace core { */ topologyKeys: string[]; /** - * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. */ trafficDistribution: string; /** @@ -22248,7 +22831,7 @@ export namespace core { */ topologyKeys: string[]; /** - * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + * TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. */ trafficDistribution: string; /** @@ -22763,6 +23346,9 @@ export namespace core { name: string; } + /** + * TypedObjectReference contains enough information to let you locate the typed referenced object + */ export interface TypedObjectReference { /** * APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. @@ -22782,6 +23368,9 @@ export namespace core { namespace: string; } + /** + * TypedObjectReference contains enough information to let you locate the typed referenced object + */ export interface TypedObjectReferencePatch { /** * APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. @@ -22806,23 +23395,23 @@ export namespace core { */ export interface Volume { /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore */ awsElasticBlockStore: outputs.core.v1.AWSElasticBlockStoreVolumeSource; /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. */ azureDisk: outputs.core.v1.AzureDiskVolumeSource; /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. */ azureFile: outputs.core.v1.AzureFileVolumeSource; /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. */ cephfs: outputs.core.v1.CephFSVolumeSource; /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md */ cinder: outputs.core.v1.CinderVolumeSource; /** @@ -22830,7 +23419,7 @@ export namespace core { */ configMap: outputs.core.v1.ConfigMapVolumeSource; /** - * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. */ csi: outputs.core.v1.CSIVolumeSource; /** @@ -22863,23 +23452,23 @@ export namespace core { */ fc: outputs.core.v1.FCVolumeSource; /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. */ flexVolume: outputs.core.v1.FlexVolumeSource; /** - * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. */ flocker: outputs.core.v1.FlockerVolumeSource; /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk */ gcePersistentDisk: outputs.core.v1.GCEPersistentDiskVolumeSource; /** - * gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. */ gitRepo: outputs.core.v1.GitRepoVolumeSource; /** - * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md */ glusterfs: outputs.core.v1.GlusterfsVolumeSource; /** @@ -22911,11 +23500,11 @@ export namespace core { */ persistentVolumeClaim: outputs.core.v1.PersistentVolumeClaimVolumeSource; /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. */ photonPersistentDisk: outputs.core.v1.PhotonPersistentDiskVolumeSource; /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. */ portworxVolume: outputs.core.v1.PortworxVolumeSource; /** @@ -22923,15 +23512,15 @@ export namespace core { */ projected: outputs.core.v1.ProjectedVolumeSource; /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. */ quobyte: outputs.core.v1.QuobyteVolumeSource; /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md */ rbd: outputs.core.v1.RBDVolumeSource; /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. */ scaleIO: outputs.core.v1.ScaleIOVolumeSource; /** @@ -22939,11 +23528,11 @@ export namespace core { */ secret: outputs.core.v1.SecretVolumeSource; /** - * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. */ storageos: outputs.core.v1.StorageOSVolumeSource; /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. */ vsphereVolume: outputs.core.v1.VsphereVirtualDiskVolumeSource; } @@ -23129,23 +23718,23 @@ export namespace core { */ export interface VolumePatch { /** - * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + * awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore */ awsElasticBlockStore: outputs.core.v1.AWSElasticBlockStoreVolumeSourcePatch; /** - * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. */ azureDisk: outputs.core.v1.AzureDiskVolumeSourcePatch; /** - * azureFile represents an Azure File Service mount on the host and bind mount to the pod. + * azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. */ azureFile: outputs.core.v1.AzureFileVolumeSourcePatch; /** - * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + * cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. */ cephfs: outputs.core.v1.CephFSVolumeSourcePatch; /** - * cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + * cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md */ cinder: outputs.core.v1.CinderVolumeSourcePatch; /** @@ -23153,7 +23742,7 @@ export namespace core { */ configMap: outputs.core.v1.ConfigMapVolumeSourcePatch; /** - * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + * csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. */ csi: outputs.core.v1.CSIVolumeSourcePatch; /** @@ -23186,23 +23775,23 @@ export namespace core { */ fc: outputs.core.v1.FCVolumeSourcePatch; /** - * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. */ flexVolume: outputs.core.v1.FlexVolumeSourcePatch; /** - * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + * flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. */ flocker: outputs.core.v1.FlockerVolumeSourcePatch; /** - * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + * gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk */ gcePersistentDisk: outputs.core.v1.GCEPersistentDiskVolumeSourcePatch; /** - * gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. */ gitRepo: outputs.core.v1.GitRepoVolumeSourcePatch; /** - * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + * glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md */ glusterfs: outputs.core.v1.GlusterfsVolumeSourcePatch; /** @@ -23234,11 +23823,11 @@ export namespace core { */ persistentVolumeClaim: outputs.core.v1.PersistentVolumeClaimVolumeSourcePatch; /** - * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + * photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. */ photonPersistentDisk: outputs.core.v1.PhotonPersistentDiskVolumeSourcePatch; /** - * portworxVolume represents a portworx volume attached and mounted on kubelets host machine + * portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. */ portworxVolume: outputs.core.v1.PortworxVolumeSourcePatch; /** @@ -23246,15 +23835,15 @@ export namespace core { */ projected: outputs.core.v1.ProjectedVolumeSourcePatch; /** - * quobyte represents a Quobyte mount on the host that shares a pod's lifetime + * quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. */ quobyte: outputs.core.v1.QuobyteVolumeSourcePatch; /** - * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + * rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md */ rbd: outputs.core.v1.RBDVolumeSourcePatch; /** - * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + * scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. */ scaleIO: outputs.core.v1.ScaleIOVolumeSourcePatch; /** @@ -23262,11 +23851,11 @@ export namespace core { */ secret: outputs.core.v1.SecretVolumeSourcePatch; /** - * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + * storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. */ storageos: outputs.core.v1.StorageOSVolumeSourcePatch; /** - * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + * vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. */ vsphereVolume: outputs.core.v1.VsphereVirtualDiskVolumeSourcePatch; } @@ -28987,9 +29576,9 @@ export namespace flowcontrol { /** * `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. */ nominalConcurrencyShares: number; } @@ -29021,9 +29610,9 @@ export namespace flowcontrol { /** * `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: * - * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + * NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) * - * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + * Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. */ nominalConcurrencyShares: number; } @@ -35023,6 +35612,78 @@ export namespace resource { } export namespace v1alpha3 { + /** + * AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + */ + export interface AllocatedDeviceStatus { + /** + * 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. + */ + conditions: outputs.meta.v1.Condition[]; + /** + * Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + data: any; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: string; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: string; + /** + * NetworkData contains network-related information specific to the device. + */ + networkData: outputs.resource.v1alpha3.NetworkDeviceData; + /** + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + */ + pool: string; + } + + /** + * AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + */ + export interface AllocatedDeviceStatusPatch { + /** + * 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. + */ + conditions: outputs.meta.v1.ConditionPatch[]; + /** + * Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + data: any; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: string; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: string; + /** + * NetworkData contains network-related information specific to the device. + */ + networkData: outputs.resource.v1alpha3.NetworkDeviceDataPatch; + /** + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + */ + pool: string; + } + /** * AllocationResult contains attributes of an allocated resource. */ @@ -35135,6 +35796,8 @@ export namespace resource { * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. */ expression: string; } @@ -35171,6 +35834,8 @@ export namespace resource { * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: * * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. */ expression: string; } @@ -35286,15 +35951,1334 @@ export namespace resource { /** * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. */ - config: outputs.resource.v1alpha3.DeviceClaimConfiguration[]; + config: outputs.resource.v1alpha3.DeviceClaimConfiguration[]; + /** + * These constraints must be satisfied by the set of devices that get allocated for the claim. + */ + constraints: outputs.resource.v1alpha3.DeviceConstraint[]; + /** + * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + */ + requests: outputs.resource.v1alpha3.DeviceRequest[]; + } + + /** + * DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + */ + export interface DeviceClaimConfiguration { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque: outputs.resource.v1alpha3.OpaqueDeviceConfiguration; + /** + * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + */ + requests: string[]; + } + + /** + * DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + */ + export interface DeviceClaimConfigurationPatch { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque: outputs.resource.v1alpha3.OpaqueDeviceConfigurationPatch; + /** + * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + */ + requests: string[]; + } + + /** + * DeviceClaim defines how to request devices with a ResourceClaim. + */ + export interface DeviceClaimPatch { + /** + * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + */ + config: outputs.resource.v1alpha3.DeviceClaimConfigurationPatch[]; + /** + * These constraints must be satisfied by the set of devices that get allocated for the claim. + */ + constraints: outputs.resource.v1alpha3.DeviceConstraintPatch[]; + /** + * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + */ + requests: outputs.resource.v1alpha3.DeviceRequestPatch[]; + } + + /** + * 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. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface DeviceClass { + /** + * 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 + */ + apiVersion: "resource.k8s.io/v1alpha3"; + /** + * 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 + */ + kind: "DeviceClass"; + /** + * Standard object metadata + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Spec defines what can be allocated and how to configure it. + * + * 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. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec: outputs.resource.v1alpha3.DeviceClassSpec; + } + + /** + * DeviceClassConfiguration is used in DeviceClass. + */ + export interface DeviceClassConfiguration { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque: outputs.resource.v1alpha3.OpaqueDeviceConfiguration; + } + + /** + * DeviceClassConfiguration is used in DeviceClass. + */ + export interface DeviceClassConfigurationPatch { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque: outputs.resource.v1alpha3.OpaqueDeviceConfigurationPatch; + } + + /** + * DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + */ + export interface DeviceClassSpec { + /** + * Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + */ + config: outputs.resource.v1alpha3.DeviceClassConfiguration[]; + /** + * Each selector must be satisfied by a device which is claimed via this class. + */ + selectors: outputs.resource.v1alpha3.DeviceSelector[]; + /** + * Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. + * + * Setting this field is optional. If unset, all Nodes are candidates. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + suitableNodes: outputs.core.v1.NodeSelector; + } + + /** + * DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + */ + export interface DeviceClassSpecPatch { + /** + * Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + * + * They are passed to the driver, but are not considered while allocating the claim. + */ + config: outputs.resource.v1alpha3.DeviceClassConfigurationPatch[]; + /** + * Each selector must be satisfied by a device which is claimed via this class. + */ + selectors: outputs.resource.v1alpha3.DeviceSelectorPatch[]; + /** + * Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. + * + * Setting this field is optional. If unset, all Nodes are candidates. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + suitableNodes: outputs.core.v1.NodeSelectorPatch; + } + + /** + * DeviceConstraint must have exactly one field set besides Requests. + */ + export interface DeviceConstraint { + /** + * MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + */ + matchAttribute: string; + /** + * 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. + */ + requests: string[]; + } + + /** + * DeviceConstraint must have exactly one field set besides Requests. + */ + export interface DeviceConstraintPatch { + /** + * MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + * + * 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. + * + * Must include the domain qualifier. + */ + matchAttribute: string; + /** + * 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. + */ + requests: string[]; + } + + /** + * Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + */ + export interface DevicePatch { + /** + * Basic defines one device instance. + */ + basic: outputs.resource.v1alpha3.BasicDevicePatch; + /** + * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + */ + name: string; + } + + /** + * 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. + * + * 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. + */ + export interface DeviceRequest { + /** + * 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. + * + * 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. + */ + adminAccess: boolean; + /** + * AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + */ + allocationMode: string; + /** + * 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. + */ + count: number; + /** + * DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + */ + deviceClassName: string; + /** + * Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + */ + name: string; + /** + * 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. + */ + selectors: outputs.resource.v1alpha3.DeviceSelector[]; + } + + /** + * DeviceRequestAllocationResult contains the allocation result for one request. + */ + export interface DeviceRequestAllocationResult { + /** + * AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + */ + adminAccess: boolean; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: string; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: string; + /** + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + */ + pool: string; + /** + * 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. + */ + request: string; + } + + /** + * DeviceRequestAllocationResult contains the allocation result for one request. + */ + export interface DeviceRequestAllocationResultPatch { + /** + * AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + */ + adminAccess: boolean; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: string; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: string; + /** + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + */ + pool: string; + /** + * 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. + */ + request: string; + } + + /** + * 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. + * + * 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. + */ + export interface DeviceRequestPatch { + /** + * 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. + * + * 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. + */ + adminAccess: boolean; + /** + * AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + * + * - ExactCount: This request is for a specific number of devices. + * This is the default. The exact number is provided in the + * count field. + * + * - All: This request is for all of the matching devices in a pool. + * Allocation will fail if some devices are already allocated, + * unless adminAccess is requested. + * + * 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. + * + * More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + */ + allocationMode: string; + /** + * 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. + */ + count: number; + /** + * DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + * + * A class is required. Which classes are available depends on the cluster. + * + * 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. + */ + deviceClassName: string; + /** + * Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + * + * Must be a DNS label. + */ + name: string; + /** + * 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. + */ + selectors: outputs.resource.v1alpha3.DeviceSelectorPatch[]; + } + + /** + * DeviceSelector must have exactly one field set. + */ + export interface DeviceSelector { + /** + * CEL contains a CEL expression for selecting a device. + */ + cel: outputs.resource.v1alpha3.CELDeviceSelector; + } + + /** + * DeviceSelector must have exactly one field set. + */ + export interface DeviceSelectorPatch { + /** + * CEL contains a CEL expression for selecting a device. + */ + cel: outputs.resource.v1alpha3.CELDeviceSelectorPatch; + } + + /** + * 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. + */ + export interface NetworkDeviceData { + /** + * HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + */ + hardwareAddress: string; + /** + * 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. + * + * Must not be longer than 256 characters. + */ + interfaceName: string; + /** + * 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. + */ + ips: string[]; + } + + /** + * 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. + */ + export interface NetworkDeviceDataPatch { + /** + * HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. + */ + hardwareAddress: string; + /** + * 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. + * + * Must not be longer than 256 characters. + */ + interfaceName: string; + /** + * 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. + */ + ips: string[]; + } + + /** + * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + */ + export interface OpaqueDeviceConfiguration { + /** + * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: string; + /** + * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + parameters: any; + } + + /** + * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + */ + export interface OpaqueDeviceConfigurationPatch { + /** + * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: string; + /** + * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + parameters: any; + } + + /** + * PodSchedulingContext objects hold information that is needed to schedule a Pod with ResourceClaims that use "WaitForFirstConsumer" allocation mode. + * + * This is an alpha type and requires enabling the DRAControlPlaneController feature gate. + */ + export interface PodSchedulingContext { + /** + * 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 + */ + apiVersion: "resource.k8s.io/v1alpha3"; + /** + * 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 + */ + kind: "PodSchedulingContext"; + /** + * Standard object metadata + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Spec describes where resources for the Pod are needed. + */ + spec: outputs.resource.v1alpha3.PodSchedulingContextSpec; + /** + * Status describes where resources for the Pod can be allocated. + */ + status: outputs.resource.v1alpha3.PodSchedulingContextStatus; + } + + /** + * PodSchedulingContextSpec describes where resources for the Pod are needed. + */ + export interface PodSchedulingContextSpec { + /** + * PotentialNodes lists nodes where the Pod might be able to run. + * + * The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. + */ + potentialNodes: string[]; + /** + * SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. + */ + selectedNode: string; + } + + /** + * PodSchedulingContextSpec describes where resources for the Pod are needed. + */ + export interface PodSchedulingContextSpecPatch { + /** + * PotentialNodes lists nodes where the Pod might be able to run. + * + * The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. + */ + potentialNodes: string[]; + /** + * SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. + */ + selectedNode: string; + } + + /** + * PodSchedulingContextStatus describes where resources for the Pod can be allocated. + */ + export interface PodSchedulingContextStatus { + /** + * ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses "WaitForFirstConsumer" allocation mode. + */ + resourceClaims: outputs.resource.v1alpha3.ResourceClaimSchedulingStatus[]; + } + + /** + * PodSchedulingContextStatus describes where resources for the Pod can be allocated. + */ + export interface PodSchedulingContextStatusPatch { + /** + * ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses "WaitForFirstConsumer" allocation mode. + */ + resourceClaims: outputs.resource.v1alpha3.ResourceClaimSchedulingStatusPatch[]; + } + + /** + * ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface ResourceClaim { + /** + * 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 + */ + apiVersion: "resource.k8s.io/v1alpha3"; + /** + * 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 + */ + kind: "ResourceClaim"; + /** + * Standard object metadata + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Spec describes what is being requested and how to configure it. The spec is immutable. + */ + spec: outputs.resource.v1alpha3.ResourceClaimSpec; + /** + * Status describes whether the claim is ready to use and what has been allocated. + */ + status: outputs.resource.v1alpha3.ResourceClaimStatus; + } + + /** + * 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. + */ + export interface ResourceClaimConsumerReference { + /** + * 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. + */ + apiGroup: string; + /** + * Name is the name of resource being referenced. + */ + name: string; + /** + * Resource is the type of resource being referenced, for example "pods". + */ + resource: string; + /** + * UID identifies exactly one incarnation of the resource. + */ + uid: string; + } + + /** + * 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. + */ + export interface ResourceClaimConsumerReferencePatch { + /** + * 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. + */ + apiGroup: string; + /** + * Name is the name of resource being referenced. + */ + name: string; + /** + * Resource is the type of resource being referenced, for example "pods". + */ + resource: string; + /** + * UID identifies exactly one incarnation of the resource. + */ + uid: string; + } + + /** + * ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode. + */ + export interface ResourceClaimSchedulingStatus { + /** + * Name matches the pod.spec.resourceClaims[*].Name field. + */ + name: string; + /** + * UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for. + * + * The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced. + */ + unsuitableNodes: string[]; + } + + /** + * ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode. + */ + export interface ResourceClaimSchedulingStatusPatch { + /** + * Name matches the pod.spec.resourceClaims[*].Name field. + */ + name: string; + /** + * UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for. + * + * The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced. + */ + unsuitableNodes: string[]; + } + + /** + * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + */ + export interface ResourceClaimSpec { + /** + * Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + controller: string; + /** + * Devices defines how to request devices. + */ + devices: outputs.resource.v1alpha3.DeviceClaim; + } + + /** + * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + */ + export interface ResourceClaimSpecPatch { + /** + * Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + controller: string; + /** + * Devices defines how to request devices. + */ + devices: outputs.resource.v1alpha3.DeviceClaimPatch; + } + + /** + * ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + */ + export interface ResourceClaimStatus { + /** + * Allocation is set once the claim has been allocated successfully. + */ + allocation: outputs.resource.v1alpha3.AllocationResult; + /** + * Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor. + * + * This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + deallocationRequested: boolean; + /** + * Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + */ + devices: outputs.resource.v1alpha3.AllocatedDeviceStatus[]; + /** + * ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + */ + reservedFor: outputs.resource.v1alpha3.ResourceClaimConsumerReference[]; + } + + /** + * ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + */ + export interface ResourceClaimStatusPatch { + /** + * Allocation is set once the claim has been allocated successfully. + */ + allocation: outputs.resource.v1alpha3.AllocationResultPatch; + /** + * Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor. + * + * This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. + * + * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + */ + deallocationRequested: boolean; + /** + * Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + */ + devices: outputs.resource.v1alpha3.AllocatedDeviceStatusPatch[]; + /** + * ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + * + * In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + * + * 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. + * + * There can be at most 32 such reservations. This may get increased in the future, but not reduced. + */ + reservedFor: outputs.resource.v1alpha3.ResourceClaimConsumerReferencePatch[]; + } + + /** + * ResourceClaimTemplate is used to produce ResourceClaim objects. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface ResourceClaimTemplate { + /** + * 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 + */ + apiVersion: "resource.k8s.io/v1alpha3"; + /** + * 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 + */ + kind: "ResourceClaimTemplate"; + /** + * Standard object metadata + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Describes the ResourceClaim that is to be generated. + * + * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + */ + spec: outputs.resource.v1alpha3.ResourceClaimTemplateSpec; + } + + /** + * ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + */ + export interface ResourceClaimTemplateSpec { + /** + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + */ + spec: outputs.resource.v1alpha3.ResourceClaimSpec; + } + + /** + * ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + */ + export interface ResourceClaimTemplateSpecPatch { + /** + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + */ + metadata: outputs.meta.v1.ObjectMetaPatch; + /** + * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + */ + spec: outputs.resource.v1alpha3.ResourceClaimSpecPatch; + } + + /** + * ResourcePool describes the pool that ResourceSlices belong to. + */ + export interface ResourcePool { + /** + * 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + */ + generation: number; + /** + * Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + */ + name: string; + /** + * ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + */ + resourceSliceCount: number; + } + + /** + * ResourcePool describes the pool that ResourceSlices belong to. + */ + export interface ResourcePoolPatch { + /** + * 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. + * + * Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + */ + generation: number; + /** + * Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + * + * 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. + */ + name: string; + /** + * ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + * + * Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + */ + resourceSliceCount: number; + } + + /** + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface ResourceSlice { + /** + * 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 + */ + apiVersion: "resource.k8s.io/v1alpha3"; + /** + * 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 + */ + kind: "ResourceSlice"; + /** + * Standard object metadata + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec: outputs.resource.v1alpha3.ResourceSliceSpec; + } + + /** + * ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + */ + export interface ResourceSliceSpec { + /** + * AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + */ + allNodes: boolean; + /** + * Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + */ + devices: outputs.resource.v1alpha3.Device[]; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + */ + driver: string; + /** + * 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + */ + nodeName: string; + /** + * NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + */ + nodeSelector: outputs.core.v1.NodeSelector; + /** + * Pool describes the pool that this ResourceSlice belongs to. + */ + pool: outputs.resource.v1alpha3.ResourcePool; + } + + /** + * ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + */ + export interface ResourceSliceSpecPatch { + /** + * AllNodes indicates that all nodes have access to the resources in the pool. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + */ + allNodes: boolean; + /** + * Devices lists some or all of the devices in this pool. + * + * Must not have more than 128 entries. + */ + devices: outputs.resource.v1alpha3.DevicePatch[]; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + */ + driver: string; + /** + * 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. + * + * 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. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + */ + nodeName: string; + /** + * NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + * + * Must use exactly one term. + * + * Exactly one of NodeName, NodeSelector and AllNodes must be set. + */ + nodeSelector: outputs.core.v1.NodeSelectorPatch; + /** + * Pool describes the pool that this ResourceSlice belongs to. + */ + pool: outputs.resource.v1alpha3.ResourcePoolPatch; + } + + } + + export namespace v1beta1 { + /** + * AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + */ + export interface AllocatedDeviceStatus { + /** + * 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. + */ + conditions: outputs.meta.v1.Condition[]; + /** + * Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + data: any; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: string; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: string; + /** + * NetworkData contains network-related information specific to the device. + */ + networkData: outputs.resource.v1beta1.NetworkDeviceData; + /** + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + */ + pool: string; + } + + /** + * AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + */ + export interface AllocatedDeviceStatusPatch { + /** + * 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. + */ + conditions: outputs.meta.v1.ConditionPatch[]; + /** + * Data contains arbitrary driver-specific data. + * + * The length of the raw data must be smaller or equal to 10 Ki. + */ + data: any; + /** + * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + */ + device: string; + /** + * 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. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + */ + driver: string; + /** + * NetworkData contains network-related information specific to the device. + */ + networkData: outputs.resource.v1beta1.NetworkDeviceDataPatch; + /** + * This name together with the driver name and the device name field identify which device was allocated (`//`). + * + * Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + */ + pool: string; + } + + /** + * AllocationResult contains attributes of an allocated resource. + */ + export interface AllocationResult { + /** + * Devices is the result of allocating devices. + */ + devices: outputs.resource.v1beta1.DeviceAllocationResult; + /** + * NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + */ + nodeSelector: outputs.core.v1.NodeSelector; + } + + /** + * AllocationResult contains attributes of an allocated resource. + */ + export interface AllocationResultPatch { + /** + * Devices is the result of allocating devices. + */ + devices: outputs.resource.v1beta1.DeviceAllocationResultPatch; + /** + * NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + */ + nodeSelector: outputs.core.v1.NodeSelectorPatch; + } + + /** + * BasicDevice defines one device instance. + */ + export interface BasicDevice { + /** + * Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + */ + attributes: {[key: string]: outputs.resource.v1beta1.DeviceAttribute}; + /** + * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + */ + capacity: {[key: string]: outputs.resource.v1beta1.DeviceCapacity}; + } + + /** + * BasicDevice defines one device instance. + */ + export interface BasicDevicePatch { + /** + * Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + */ + attributes: {[key: string]: outputs.resource.v1beta1.DeviceAttribute}; + /** + * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + * + * The maximum number of attributes and capacities combined is 32. + */ + capacity: {[key: string]: outputs.resource.v1beta1.DeviceCapacity}; + } + + /** + * CELDeviceSelector contains a CEL expression for selecting a device. + */ + export interface CELDeviceSelector { + /** + * 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + */ + expression: string; + } + + /** + * CELDeviceSelector contains a CEL expression for selecting a device. + */ + export interface CELDeviceSelectorPatch { + /** + * 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. + * + * The expression's input is an object named "device", which carries the following properties: + * - driver (string): the name of the driver which defines this device. + * - attributes (map[string]object): the device's attributes, grouped by prefix + * (e.g. device.attributes["dra.example.com"] evaluates to an object with all + * of the attributes which were prefixed by "dra.example.com". + * - capacity (map[string]object): the device's capacities, grouped by prefix. + * + * Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + * + * device.driver + * device.attributes["dra.example.com"].model + * device.attributes["ext.example.com"].family + * device.capacity["dra.example.com"].modules + * + * The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + * + * The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + * + * If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + * + * A robust expression should check for the existence of attributes before referencing them. + * + * For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + * + * cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + * + * The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + */ + expression: string; + } + + /** + * Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + */ + export interface Device { + /** + * Basic defines one device instance. + */ + basic: outputs.resource.v1beta1.BasicDevice; + /** + * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + */ + name: string; + } + + /** + * DeviceAllocationConfiguration gets embedded in an AllocationResult. + */ + export interface DeviceAllocationConfiguration { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque: outputs.resource.v1beta1.OpaqueDeviceConfiguration; + /** + * Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + */ + requests: string[]; + /** + * 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. + */ + source: string; + } + + /** + * DeviceAllocationConfiguration gets embedded in an AllocationResult. + */ + export interface DeviceAllocationConfigurationPatch { + /** + * Opaque provides driver-specific configuration parameters. + */ + opaque: outputs.resource.v1beta1.OpaqueDeviceConfigurationPatch; + /** + * Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + */ + requests: string[]; + /** + * 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. + */ + source: string; + } + + /** + * DeviceAllocationResult is the result of allocating devices. + */ + export interface DeviceAllocationResult { + /** + * This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + */ + config: outputs.resource.v1beta1.DeviceAllocationConfiguration[]; + /** + * Results lists all allocated devices. + */ + results: outputs.resource.v1beta1.DeviceRequestAllocationResult[]; + } + + /** + * DeviceAllocationResult is the result of allocating devices. + */ + export interface DeviceAllocationResultPatch { + /** + * This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + * + * This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + */ + config: outputs.resource.v1beta1.DeviceAllocationConfigurationPatch[]; + /** + * Results lists all allocated devices. + */ + results: outputs.resource.v1beta1.DeviceRequestAllocationResultPatch[]; + } + + /** + * DeviceAttribute must have exactly one field set. + */ + export interface DeviceAttribute { + /** + * BoolValue is a true/false value. + */ + bool: boolean; + /** + * IntValue is a number. + */ + int: number; + /** + * StringValue is a string. Must not be longer than 64 characters. + */ + string: string; + /** + * VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + */ + version: string; + } + + /** + * DeviceCapacity describes a quantity associated with a device. + */ + export interface DeviceCapacity { + /** + * Value defines how much of a certain device capacity is available. + */ + value: string; + } + + /** + * DeviceClaim defines how to request devices with a ResourceClaim. + */ + export interface DeviceClaim { + /** + * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + */ + config: outputs.resource.v1beta1.DeviceClaimConfiguration[]; /** * These constraints must be satisfied by the set of devices that get allocated for the claim. */ - constraints: outputs.resource.v1alpha3.DeviceConstraint[]; + constraints: outputs.resource.v1beta1.DeviceConstraint[]; /** * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. */ - requests: outputs.resource.v1alpha3.DeviceRequest[]; + requests: outputs.resource.v1beta1.DeviceRequest[]; } /** @@ -35304,7 +37288,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque: outputs.resource.v1alpha3.OpaqueDeviceConfiguration; + opaque: outputs.resource.v1beta1.OpaqueDeviceConfiguration; /** * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. */ @@ -35318,7 +37302,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque: outputs.resource.v1alpha3.OpaqueDeviceConfigurationPatch; + opaque: outputs.resource.v1beta1.OpaqueDeviceConfigurationPatch; /** * Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. */ @@ -35332,15 +37316,15 @@ export namespace resource { /** * This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. */ - config: outputs.resource.v1alpha3.DeviceClaimConfigurationPatch[]; + config: outputs.resource.v1beta1.DeviceClaimConfigurationPatch[]; /** * These constraints must be satisfied by the set of devices that get allocated for the claim. */ - constraints: outputs.resource.v1alpha3.DeviceConstraintPatch[]; + constraints: outputs.resource.v1beta1.DeviceConstraintPatch[]; /** * Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. */ - requests: outputs.resource.v1alpha3.DeviceRequestPatch[]; + requests: outputs.resource.v1beta1.DeviceRequestPatch[]; } /** @@ -35352,7 +37336,7 @@ export namespace resource { /** * 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 */ - apiVersion: "resource.k8s.io/v1alpha3"; + apiVersion: "resource.k8s.io/v1beta1"; /** * 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 */ @@ -35368,7 +37352,7 @@ export namespace resource { * * Changing the spec automatically increments the metadata.generation number. */ - spec: outputs.resource.v1alpha3.DeviceClassSpec; + spec: outputs.resource.v1beta1.DeviceClassSpec; } /** @@ -35378,7 +37362,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque: outputs.resource.v1alpha3.OpaqueDeviceConfiguration; + opaque: outputs.resource.v1beta1.OpaqueDeviceConfiguration; } /** @@ -35388,7 +37372,7 @@ export namespace resource { /** * Opaque provides driver-specific configuration parameters. */ - opaque: outputs.resource.v1alpha3.OpaqueDeviceConfigurationPatch; + opaque: outputs.resource.v1beta1.OpaqueDeviceConfigurationPatch; } /** @@ -35400,19 +37384,11 @@ export namespace resource { * * They are passed to the driver, but are not considered while allocating the claim. */ - config: outputs.resource.v1alpha3.DeviceClassConfiguration[]; + config: outputs.resource.v1beta1.DeviceClassConfiguration[]; /** * Each selector must be satisfied by a device which is claimed via this class. */ - selectors: outputs.resource.v1alpha3.DeviceSelector[]; - /** - * Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. - * - * Setting this field is optional. If unset, all Nodes are candidates. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - suitableNodes: outputs.core.v1.NodeSelector; + selectors: outputs.resource.v1beta1.DeviceSelector[]; } /** @@ -35424,19 +37400,11 @@ export namespace resource { * * They are passed to the driver, but are not considered while allocating the claim. */ - config: outputs.resource.v1alpha3.DeviceClassConfigurationPatch[]; + config: outputs.resource.v1beta1.DeviceClassConfigurationPatch[]; /** * Each selector must be satisfied by a device which is claimed via this class. */ - selectors: outputs.resource.v1alpha3.DeviceSelectorPatch[]; - /** - * Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. - * - * Setting this field is optional. If unset, all Nodes are candidates. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - suitableNodes: outputs.core.v1.NodeSelectorPatch; + selectors: outputs.resource.v1beta1.DeviceSelectorPatch[]; } /** @@ -35482,7 +37450,7 @@ export namespace resource { /** * Basic defines one device instance. */ - basic: outputs.resource.v1alpha3.BasicDevicePatch; + basic: outputs.resource.v1beta1.BasicDevicePatch; /** * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. */ @@ -35497,6 +37465,8 @@ export namespace resource { export interface DeviceRequest { /** * 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. + * + * 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. */ adminAccess: boolean; /** @@ -35536,13 +37506,19 @@ export namespace resource { /** * 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. */ - selectors: outputs.resource.v1alpha3.DeviceSelector[]; + selectors: outputs.resource.v1beta1.DeviceSelector[]; } /** * DeviceRequestAllocationResult contains the allocation result for one request. */ export interface DeviceRequestAllocationResult { + /** + * AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + */ + adminAccess: boolean; /** * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. */ @@ -35569,6 +37545,12 @@ export namespace resource { * DeviceRequestAllocationResult contains the allocation result for one request. */ export interface DeviceRequestAllocationResultPatch { + /** + * AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + * + * 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. + */ + adminAccess: boolean; /** * Device references one device instance via its name in the driver's resource pool. It must be a DNS label. */ @@ -35599,6 +37581,8 @@ export namespace resource { export interface DeviceRequestPatch { /** * 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. + * + * 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. */ adminAccess: boolean; /** @@ -35638,7 +37622,7 @@ export namespace resource { /** * 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. */ - selectors: outputs.resource.v1alpha3.DeviceSelectorPatch[]; + selectors: outputs.resource.v1beta1.DeviceSelectorPatch[]; } /** @@ -35648,7 +37632,7 @@ export namespace resource { /** * CEL contains a CEL expression for selecting a device. */ - cel: outputs.resource.v1alpha3.CELDeviceSelector; + cel: outputs.resource.v1beta1.CELDeviceSelector; } /** @@ -35658,123 +37642,91 @@ export namespace resource { /** * CEL contains a CEL expression for selecting a device. */ - cel: outputs.resource.v1alpha3.CELDeviceSelectorPatch; + cel: outputs.resource.v1beta1.CELDeviceSelectorPatch; } /** - * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + * 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. */ - export interface OpaqueDeviceConfiguration { + export interface NetworkDeviceData { /** - * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. * - * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. - * - * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. - */ - driver: string; - /** - * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * Must not be longer than 128 characters. */ - parameters: any; - } - - /** - * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. - */ - export interface OpaqueDeviceConfigurationPatch { + hardwareAddress: string; /** - * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. - * - * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * 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. * - * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + * Must not be longer than 256 characters. */ - driver: string; + interfaceName: string; /** - * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * 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. */ - parameters: any; + ips: string[]; } /** - * PodSchedulingContext objects hold information that is needed to schedule a Pod with ResourceClaims that use "WaitForFirstConsumer" allocation mode. - * - * This is an alpha type and requires enabling the DRAControlPlaneController feature gate. + * 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. */ - export interface PodSchedulingContext { - /** - * 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 - */ - apiVersion: "resource.k8s.io/v1alpha3"; - /** - * 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 - */ - kind: "PodSchedulingContext"; - /** - * Standard object metadata - */ - metadata: outputs.meta.v1.ObjectMeta; - /** - * Spec describes where resources for the Pod are needed. - */ - spec: outputs.resource.v1alpha3.PodSchedulingContextSpec; + export interface NetworkDeviceDataPatch { /** - * Status describes where resources for the Pod can be allocated. + * HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + * + * Must not be longer than 128 characters. */ - status: outputs.resource.v1alpha3.PodSchedulingContextStatus; - } - - /** - * PodSchedulingContextSpec describes where resources for the Pod are needed. - */ - export interface PodSchedulingContextSpec { + hardwareAddress: string; /** - * PotentialNodes lists nodes where the Pod might be able to run. + * 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. * - * The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. + * Must not be longer than 256 characters. */ - potentialNodes: string[]; + interfaceName: string; /** - * SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. + * 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. */ - selectedNode: string; + ips: string[]; } /** - * PodSchedulingContextSpec describes where resources for the Pod are needed. + * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. */ - export interface PodSchedulingContextSpecPatch { + export interface OpaqueDeviceConfiguration { /** - * PotentialNodes lists nodes where the Pod might be able to run. + * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. * - * The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. */ - potentialNodes: string[]; + driver: string; /** - * SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. + * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. */ - selectedNode: string; + parameters: any; } /** - * PodSchedulingContextStatus describes where resources for the Pod can be allocated. + * OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. */ - export interface PodSchedulingContextStatus { + export interface OpaqueDeviceConfigurationPatch { /** - * ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses "WaitForFirstConsumer" allocation mode. + * Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + * + * An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + * + * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. */ - resourceClaims: outputs.resource.v1alpha3.ResourceClaimSchedulingStatus[]; - } - - /** - * PodSchedulingContextStatus describes where resources for the Pod can be allocated. - */ - export interface PodSchedulingContextStatusPatch { + driver: string; /** - * ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses "WaitForFirstConsumer" allocation mode. + * Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + * + * The length of the raw data must be smaller or equal to 10 Ki. */ - resourceClaims: outputs.resource.v1alpha3.ResourceClaimSchedulingStatusPatch[]; + parameters: any; } /** @@ -35786,7 +37738,7 @@ export namespace resource { /** * 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 */ - apiVersion: "resource.k8s.io/v1alpha3"; + apiVersion: "resource.k8s.io/v1beta1"; /** * 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 */ @@ -35798,11 +37750,11 @@ export namespace resource { /** * Spec describes what is being requested and how to configure it. The spec is immutable. */ - spec: outputs.resource.v1alpha3.ResourceClaimSpec; + spec: outputs.resource.v1beta1.ResourceClaimSpec; /** * Status describes whether the claim is ready to use and what has been allocated. */ - status: outputs.resource.v1alpha3.ResourceClaimStatus; + status: outputs.resource.v1beta1.ResourceClaimStatus; } /** @@ -35849,72 +37801,24 @@ export namespace resource { uid: string; } - /** - * ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode. - */ - export interface ResourceClaimSchedulingStatus { - /** - * Name matches the pod.spec.resourceClaims[*].Name field. - */ - name: string; - /** - * UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for. - * - * The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced. - */ - unsuitableNodes: string[]; - } - - /** - * ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode. - */ - export interface ResourceClaimSchedulingStatusPatch { - /** - * Name matches the pod.spec.resourceClaims[*].Name field. - */ - name: string; - /** - * UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for. - * - * The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced. - */ - unsuitableNodes: string[]; - } - /** * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. */ export interface ResourceClaimSpec { - /** - * Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. - * - * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - controller: string; /** * Devices defines how to request devices. */ - devices: outputs.resource.v1alpha3.DeviceClaim; + devices: outputs.resource.v1beta1.DeviceClaim; } /** * ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. */ export interface ResourceClaimSpecPatch { - /** - * Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. - * - * Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. - */ - controller: string; /** * Devices defines how to request devices. */ - devices: outputs.resource.v1alpha3.DeviceClaimPatch; + devices: outputs.resource.v1beta1.DeviceClaimPatch; } /** @@ -35924,15 +37828,11 @@ export namespace resource { /** * Allocation is set once the claim has been allocated successfully. */ - allocation: outputs.resource.v1alpha3.AllocationResult; + allocation: outputs.resource.v1beta1.AllocationResult; /** - * Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor. - * - * This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + * Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. */ - deallocationRequested: boolean; + devices: outputs.resource.v1beta1.AllocatedDeviceStatus[]; /** * ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * @@ -35942,7 +37842,7 @@ export namespace resource { * * There can be at most 32 such reservations. This may get increased in the future, but not reduced. */ - reservedFor: outputs.resource.v1alpha3.ResourceClaimConsumerReference[]; + reservedFor: outputs.resource.v1beta1.ResourceClaimConsumerReference[]; } /** @@ -35952,15 +37852,11 @@ export namespace resource { /** * Allocation is set once the claim has been allocated successfully. */ - allocation: outputs.resource.v1alpha3.AllocationResultPatch; + allocation: outputs.resource.v1beta1.AllocationResultPatch; /** - * Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor. - * - * This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. - * - * This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + * Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. */ - deallocationRequested: boolean; + devices: outputs.resource.v1beta1.AllocatedDeviceStatusPatch[]; /** * ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. * @@ -35970,7 +37866,7 @@ export namespace resource { * * There can be at most 32 such reservations. This may get increased in the future, but not reduced. */ - reservedFor: outputs.resource.v1alpha3.ResourceClaimConsumerReferencePatch[]; + reservedFor: outputs.resource.v1beta1.ResourceClaimConsumerReferencePatch[]; } /** @@ -35982,7 +37878,7 @@ export namespace resource { /** * 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 */ - apiVersion: "resource.k8s.io/v1alpha3"; + apiVersion: "resource.k8s.io/v1beta1"; /** * 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 */ @@ -35996,7 +37892,7 @@ export namespace resource { * * This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. */ - spec: outputs.resource.v1alpha3.ResourceClaimTemplateSpec; + spec: outputs.resource.v1beta1.ResourceClaimTemplateSpec; } /** @@ -36004,13 +37900,13 @@ export namespace resource { */ export interface ResourceClaimTemplateSpec { /** - * ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. */ metadata: outputs.meta.v1.ObjectMeta; /** * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. */ - spec: outputs.resource.v1alpha3.ResourceClaimSpec; + spec: outputs.resource.v1beta1.ResourceClaimSpec; } /** @@ -36018,13 +37914,13 @@ export namespace resource { */ export interface ResourceClaimTemplateSpecPatch { /** - * ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + * ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. */ metadata: outputs.meta.v1.ObjectMetaPatch; /** * Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. */ - spec: outputs.resource.v1alpha3.ResourceClaimSpecPatch; + spec: outputs.resource.v1beta1.ResourceClaimSpecPatch; } /** @@ -36075,6 +37971,40 @@ export namespace resource { resourceSliceCount: number; } + /** + * 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. + * + * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + * + * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + * + * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + * + * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + * + * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + */ + export interface ResourceSlice { + /** + * 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 + */ + apiVersion: "resource.k8s.io/v1beta1"; + /** + * 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 + */ + kind: "ResourceSlice"; + /** + * Standard object metadata + */ + metadata: outputs.meta.v1.ObjectMeta; + /** + * Contains the information published by the driver. + * + * Changing the spec automatically increments the metadata.generation number. + */ + spec: outputs.resource.v1beta1.ResourceSliceSpec; + } + /** * ResourceSliceSpec contains the information published by the driver in one ResourceSlice. */ @@ -36090,7 +38020,7 @@ export namespace resource { * * Must not have more than 128 entries. */ - devices: outputs.resource.v1alpha3.Device[]; + devices: outputs.resource.v1beta1.Device[]; /** * 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. * @@ -36116,7 +38046,7 @@ export namespace resource { /** * Pool describes the pool that this ResourceSlice belongs to. */ - pool: outputs.resource.v1alpha3.ResourcePool; + pool: outputs.resource.v1beta1.ResourcePool; } /** @@ -36134,7 +38064,7 @@ export namespace resource { * * Must not have more than 128 entries. */ - devices: outputs.resource.v1alpha3.DevicePatch[]; + devices: outputs.resource.v1beta1.DevicePatch[]; /** * 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. * @@ -36160,7 +38090,7 @@ export namespace resource { /** * Pool describes the pool that this ResourceSlice belongs to. */ - pool: outputs.resource.v1alpha3.ResourcePoolPatch; + pool: outputs.resource.v1beta1.ResourcePoolPatch; } } @@ -36779,7 +38709,7 @@ export namespace storage { } /** - * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. */ export interface VolumeAttachmentSource { /** @@ -36793,7 +38723,7 @@ export namespace storage { } /** - * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + * VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. */ export interface VolumeAttachmentSourcePatch { /** diff --git a/sdk/nodejs/yaml/yaml.ts b/sdk/nodejs/yaml/yaml.ts index b845a2de84..7aeb017b9c 100644 --- a/sdk/nodejs/yaml/yaml.ts +++ b/sdk/nodejs/yaml/yaml.ts @@ -78,6 +78,14 @@ export abstract class CollectionComponentResource extends pulumi.ComponentResour public getResource(groupVersionKind: "admissionregistration.k8s.io/v1/ValidatingWebhookConfiguration", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList", name: string): pulumi.Output; public getResource(groupVersionKind: "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", name: string): pulumi.Output; + public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", name: string): pulumi.Output; + public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", name: string): pulumi.Output; + public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", name: string): pulumi.Output; + public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy", name: string): pulumi.Output; public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyBinding", name: string): pulumi.Output; @@ -226,6 +234,10 @@ export abstract class CollectionComponentResource extends pulumi.ComponentResour public getResource(groupVersionKind: "coordination.k8s.io/v1alpha1/LeaseCandidate", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "coordination.k8s.io/v1alpha1/LeaseCandidateList", name: string): pulumi.Output; public getResource(groupVersionKind: "coordination.k8s.io/v1alpha1/LeaseCandidateList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", name: string): pulumi.Output; + public getResource(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", name: string): pulumi.Output; + public getResource(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "coordination.k8s.io/v1beta1/Lease", name: string): pulumi.Output; public getResource(groupVersionKind: "coordination.k8s.io/v1beta1/Lease", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "coordination.k8s.io/v1beta1/LeaseList", name: string): pulumi.Output; @@ -548,6 +560,24 @@ export abstract class CollectionComponentResource extends pulumi.ComponentResour public getResource(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceClaimTemplateList", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSlice", name: string): pulumi.Output; public getResource(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSlice", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", name: string): pulumi.Output; + public getResource(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "scheduling.k8s.io/v1/PriorityClass", name: string): pulumi.Output; public getResource(groupVersionKind: "scheduling.k8s.io/v1/PriorityClass", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "scheduling.k8s.io/v1/PriorityClassList", name: string): pulumi.Output; @@ -696,6 +726,38 @@ export abstract class CollectionComponentResource extends pulumi.ComponentResour public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList", namespace: string, name: string, property: "kind"): pulumi.Output<"ValidatingWebhookConfigurationList">; public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList", name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", name: string, property: "kind"): pulumi.Output<"MutatingAdmissionPolicy">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", namespace: string, name: string, property: "kind"): pulumi.Output<"MutatingAdmissionPolicy">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", name: string, property: "kind"): pulumi.Output<"MutatingAdmissionPolicyBinding">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", namespace: string, name: string, property: "kind"): pulumi.Output<"MutatingAdmissionPolicyBinding">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", name: string, property: "kind"): pulumi.Output<"MutatingAdmissionPolicyBindingList">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", namespace: string, name: string, property: "kind"): pulumi.Output<"MutatingAdmissionPolicyBindingList">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", name: string, property: "kind"): pulumi.Output<"MutatingAdmissionPolicyList">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", namespace: string, name: string, property: "kind"): pulumi.Output<"MutatingAdmissionPolicyList">; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList", namespace: string, name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy", name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"admissionregistration.k8s.io/v1alpha1">; public getResourceProperty(groupVersionKind: "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy", name: string, property: "kind"): pulumi.Output<"ValidatingAdmissionPolicy">; @@ -1346,6 +1408,22 @@ export abstract class CollectionComponentResource extends pulumi.ComponentResour public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha1/LeaseCandidateList", namespace: string, name: string, property: "kind"): pulumi.Output<"LeaseCandidateList">; public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha1/LeaseCandidateList", name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha1/LeaseCandidateList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", name: string, property: "apiVersion"): pulumi.Output<"coordination.k8s.io/v1alpha2">; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"coordination.k8s.io/v1alpha2">; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", name: string, property: "kind"): pulumi.Output<"LeaseCandidate">; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", namespace: string, name: string, property: "kind"): pulumi.Output<"LeaseCandidate">; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidate", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", name: string, property: "apiVersion"): pulumi.Output<"coordination.k8s.io/v1alpha2">; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"coordination.k8s.io/v1alpha2">; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", name: string, property: "kind"): pulumi.Output<"LeaseCandidateList">; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", namespace: string, name: string, property: "kind"): pulumi.Output<"LeaseCandidateList">; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1alpha2/LeaseCandidateList", namespace: string, name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1beta1/Lease", name: string, property: "apiVersion"): pulumi.Output<"coordination.k8s.io/v1beta1">; public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1beta1/Lease", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"coordination.k8s.io/v1beta1">; public getResourceProperty(groupVersionKind: "coordination.k8s.io/v1beta1/Lease", name: string, property: "kind"): pulumi.Output<"Lease">; @@ -2860,6 +2938,82 @@ export abstract class CollectionComponentResource extends pulumi.ComponentResour public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSlice", namespace: string, name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSlice", name: string, property: "spec"): pulumi.Output; public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSlice", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1alpha3">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1alpha3">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", name: string, property: "kind"): pulumi.Output<"ResourceSliceList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", namespace: string, name: string, property: "kind"): pulumi.Output<"ResourceSliceList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", name: string, property: "listMeta"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", namespace: string, name: string, property: "listMeta"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1alpha3/ResourceSliceList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", name: string, property: "kind"): pulumi.Output<"DeviceClass">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", namespace: string, name: string, property: "kind"): pulumi.Output<"DeviceClass">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClass", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", name: string, property: "kind"): pulumi.Output<"DeviceClassList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", namespace: string, name: string, property: "kind"): pulumi.Output<"DeviceClassList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/DeviceClassList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", name: string, property: "kind"): pulumi.Output<"ResourceClaim">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", namespace: string, name: string, property: "kind"): pulumi.Output<"ResourceClaim">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", name: string, property: "status"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaim", namespace: string, name: string, property: "status"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", name: string, property: "kind"): pulumi.Output<"ResourceClaimList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", namespace: string, name: string, property: "kind"): pulumi.Output<"ResourceClaimList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", name: string, property: "kind"): pulumi.Output<"ResourceClaimTemplate">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", namespace: string, name: string, property: "kind"): pulumi.Output<"ResourceClaimTemplate">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplate", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", name: string, property: "kind"): pulumi.Output<"ResourceClaimTemplateList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", namespace: string, name: string, property: "kind"): pulumi.Output<"ResourceClaimTemplateList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceClaimTemplateList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", name: string, property: "kind"): pulumi.Output<"ResourceSlice">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", namespace: string, name: string, property: "kind"): pulumi.Output<"ResourceSlice">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSlice", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"resource.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", name: string, property: "kind"): pulumi.Output<"ResourceSliceList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", namespace: string, name: string, property: "kind"): pulumi.Output<"ResourceSliceList">; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "resource.k8s.io/v1beta1/ResourceSliceList", namespace: string, name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "scheduling.k8s.io/v1/PriorityClass", name: string, property: "apiVersion"): pulumi.Output<"scheduling.k8s.io/v1">; public getResourceProperty(groupVersionKind: "scheduling.k8s.io/v1/PriorityClass", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"scheduling.k8s.io/v1">; public getResourceProperty(groupVersionKind: "scheduling.k8s.io/v1/PriorityClass", name: string, property: "description"): pulumi.Output; @@ -3703,6 +3857,8 @@ export interface ConfigOpts { || (gvk === "admissionregistration.k8s.io/v1/ValidatingAdmissionPolicyBindingList") || (gvk === "admissionregistration.k8s.io/v1/ValidatingAdmissionPolicyList") || (gvk === "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList") + || (gvk === "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList") + || (gvk === "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList") || (gvk === "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyBindingList") || (gvk === "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyList") || (gvk === "admissionregistration.k8s.io/v1beta1/MutatingWebhookConfigurationList") @@ -3740,6 +3896,7 @@ export interface ConfigOpts { || (gvk === "certificates.k8s.io/v1beta1/CertificateSigningRequestList") || (gvk === "coordination.k8s.io/v1/LeaseList") || (gvk === "coordination.k8s.io/v1alpha1/LeaseCandidateList") + || (gvk === "coordination.k8s.io/v1alpha2/LeaseCandidateList") || (gvk === "coordination.k8s.io/v1beta1/LeaseList") || (gvk === "v1/ConfigMapList") || (gvk === "v1/EndpointsList") @@ -3819,6 +3976,11 @@ export interface ConfigOpts { || (gvk === "resource.k8s.io/v1alpha3/PodSchedulingContextList") || (gvk === "resource.k8s.io/v1alpha3/ResourceClaimList") || (gvk === "resource.k8s.io/v1alpha3/ResourceClaimTemplateList") + || (gvk === "resource.k8s.io/v1alpha3/ResourceSliceList") + || (gvk === "resource.k8s.io/v1beta1/DeviceClassList") + || (gvk === "resource.k8s.io/v1beta1/ResourceClaimList") + || (gvk === "resource.k8s.io/v1beta1/ResourceClaimTemplateList") + || (gvk === "resource.k8s.io/v1beta1/ResourceSliceList") || (gvk === "scheduling.k8s.io/v1/PriorityClassList") || (gvk === "scheduling.k8s.io/v1alpha1/PriorityClassList") || (gvk === "scheduling.k8s.io/v1beta1/PriorityClassList") @@ -3880,6 +4042,16 @@ export interface ConfigOpts { name: `admissionregistration.k8s.io/v1/ValidatingWebhookConfiguration::${id}`, resource: new admissionregistration.v1.ValidatingWebhookConfiguration(id, obj, opts), }))]; + case "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy": + return [id.apply(id => ({ + name: `admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy::${id}`, + resource: new admissionregistration.v1alpha1.MutatingAdmissionPolicy(id, obj, opts), + }))]; + case "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding": + return [id.apply(id => ({ + name: `admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding::${id}`, + resource: new admissionregistration.v1alpha1.MutatingAdmissionPolicyBinding(id, obj, opts), + }))]; case "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy": return [id.apply(id => ({ name: `admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy::${id}`, @@ -4065,6 +4237,11 @@ export interface ConfigOpts { name: `coordination.k8s.io/v1alpha1/LeaseCandidate::${id}`, resource: new coordination.v1alpha1.LeaseCandidate(id, obj, opts), }))]; + case "coordination.k8s.io/v1alpha2/LeaseCandidate": + return [id.apply(id => ({ + name: `coordination.k8s.io/v1alpha2/LeaseCandidate::${id}`, + resource: new coordination.v1alpha2.LeaseCandidate(id, obj, opts), + }))]; case "coordination.k8s.io/v1beta1/Lease": return [id.apply(id => ({ name: `coordination.k8s.io/v1beta1/Lease::${id}`, @@ -4475,6 +4652,26 @@ export interface ConfigOpts { name: `resource.k8s.io/v1alpha3/ResourceSlice::${id}`, resource: new resource.v1alpha3.ResourceSlice(id, obj, opts), }))]; + case "resource.k8s.io/v1beta1/DeviceClass": + return [id.apply(id => ({ + name: `resource.k8s.io/v1beta1/DeviceClass::${id}`, + resource: new resource.v1beta1.DeviceClass(id, obj, opts), + }))]; + case "resource.k8s.io/v1beta1/ResourceClaim": + return [id.apply(id => ({ + name: `resource.k8s.io/v1beta1/ResourceClaim::${id}`, + resource: new resource.v1beta1.ResourceClaim(id, obj, opts), + }))]; + case "resource.k8s.io/v1beta1/ResourceClaimTemplate": + return [id.apply(id => ({ + name: `resource.k8s.io/v1beta1/ResourceClaimTemplate::${id}`, + resource: new resource.v1beta1.ResourceClaimTemplate(id, obj, opts), + }))]; + case "resource.k8s.io/v1beta1/ResourceSlice": + return [id.apply(id => ({ + name: `resource.k8s.io/v1beta1/ResourceSlice::${id}`, + resource: new resource.v1beta1.ResourceSlice(id, obj, opts), + }))]; case "scheduling.k8s.io/v1/PriorityClass": return [id.apply(id => ({ name: `scheduling.k8s.io/v1/PriorityClass::${id}`, diff --git a/sdk/python/pulumi_kubernetes/__init__.py b/sdk/python/pulumi_kubernetes/__init__.py index ff4376482c..29d30dec9d 100644 --- a/sdk/python/pulumi_kubernetes/__init__.py +++ b/sdk/python/pulumi_kubernetes/__init__.py @@ -120,6 +120,12 @@ "mod": "admissionregistration.k8s.io/v1alpha1", "fqn": "pulumi_kubernetes.admissionregistration.v1alpha1", "classes": { + "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy": "MutatingAdmissionPolicy", + "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding": "MutatingAdmissionPolicyBinding", + "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList": "MutatingAdmissionPolicyBindingList", + "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch": "MutatingAdmissionPolicyBindingPatch", + "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList": "MutatingAdmissionPolicyList", + "kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch": "MutatingAdmissionPolicyPatch", "kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicy": "ValidatingAdmissionPolicy", "kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBinding": "ValidatingAdmissionPolicyBinding", "kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBindingList": "ValidatingAdmissionPolicyBindingList", @@ -380,6 +386,16 @@ "kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidatePatch": "LeaseCandidatePatch" } }, + { + "pkg": "kubernetes", + "mod": "coordination.k8s.io/v1alpha2", + "fqn": "pulumi_kubernetes.coordination.v1alpha2", + "classes": { + "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate": "LeaseCandidate", + "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList": "LeaseCandidateList", + "kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch": "LeaseCandidatePatch" + } + }, { "pkg": "kubernetes", "mod": "coordination.k8s.io/v1beta1", @@ -833,9 +849,29 @@ "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplateList": "ResourceClaimTemplateList", "kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch": "ResourceClaimTemplatePatch", "kubernetes:resource.k8s.io/v1alpha3:ResourceSlice": "ResourceSlice", + "kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList": "ResourceSliceList", "kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch": "ResourceSlicePatch" } }, + { + "pkg": "kubernetes", + "mod": "resource.k8s.io/v1beta1", + "fqn": "pulumi_kubernetes.resource.v1beta1", + "classes": { + "kubernetes:resource.k8s.io/v1beta1:DeviceClass": "DeviceClass", + "kubernetes:resource.k8s.io/v1beta1:DeviceClassList": "DeviceClassList", + "kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch": "DeviceClassPatch", + "kubernetes:resource.k8s.io/v1beta1:ResourceClaim": "ResourceClaim", + "kubernetes:resource.k8s.io/v1beta1:ResourceClaimList": "ResourceClaimList", + "kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch": "ResourceClaimPatch", + "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate": "ResourceClaimTemplate", + "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList": "ResourceClaimTemplateList", + "kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch": "ResourceClaimTemplatePatch", + "kubernetes:resource.k8s.io/v1beta1:ResourceSlice": "ResourceSlice", + "kubernetes:resource.k8s.io/v1beta1:ResourceSliceList": "ResourceSliceList", + "kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch": "ResourceSlicePatch" + } + }, { "pkg": "kubernetes", "mod": "scheduling.k8s.io/v1", diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1/_inputs.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1/_inputs.py index 1914b44dee..2e97d6ee81 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1/_inputs.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1/_inputs.py @@ -3079,7 +3079,7 @@ class ValidatingAdmissionPolicyBindingSpecPatchArgsDict(TypedDict): "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3114,7 +3114,7 @@ def __init__(__self__, *, "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3183,7 +3183,7 @@ def validation_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str] "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3229,7 +3229,7 @@ class ValidatingAdmissionPolicyBindingSpecArgsDict(TypedDict): "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3264,7 +3264,7 @@ def __init__(__self__, *, "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3333,7 +3333,7 @@ def validation_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str] "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1/outputs.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1/outputs.py index f3ed8d6752..e0a051e06e 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1/outputs.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1/outputs.py @@ -2577,7 +2577,7 @@ def __init__(__self__, *, "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -2634,7 +2634,7 @@ def validation_actions(self) -> Optional[Sequence[str]]: "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -2695,7 +2695,7 @@ def __init__(__self__, *, "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -2752,7 +2752,7 @@ def validation_actions(self) -> Optional[Sequence[str]]: "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.py new file mode 100644 index 0000000000..42c30244cb --- /dev/null +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.py @@ -0,0 +1,214 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['MutatingAdmissionPolicyInitArgs', 'MutatingAdmissionPolicy'] + +@pulumi.input_type +class MutatingAdmissionPolicyInitArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None, + spec: Optional[pulumi.Input['MutatingAdmissionPolicySpecArgs']] = None): + """ + The set of arguments for constructing a MutatingAdmissionPolicy resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input['MutatingAdmissionPolicySpecArgs'] spec: Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicy') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['MutatingAdmissionPolicySpecArgs']]: + """ + Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['MutatingAdmissionPolicySpecArgs']]): + pulumi.set(self, "spec", value) + + +class MutatingAdmissionPolicy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['MutatingAdmissionPolicySpecArgs', 'MutatingAdmissionPolicySpecArgsDict']]] = None, + __props__=None): + """ + MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input[Union['MutatingAdmissionPolicySpecArgs', 'MutatingAdmissionPolicySpecArgsDict']] spec: Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[MutatingAdmissionPolicyInitArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + + :param str resource_name: The name of the resource. + :param MutatingAdmissionPolicyInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MutatingAdmissionPolicyInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['MutatingAdmissionPolicySpecArgs', 'MutatingAdmissionPolicySpecArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MutatingAdmissionPolicyInitArgs.__new__(MutatingAdmissionPolicyInitArgs) + + __props__.__dict__["api_version"] = 'admissionregistration.k8s.io/v1alpha1' + __props__.__dict__["kind"] = 'MutatingAdmissionPolicy' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + super(MutatingAdmissionPolicy, __self__).__init__( + 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MutatingAdmissionPolicy': + """ + Get an existing MutatingAdmissionPolicy resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = MutatingAdmissionPolicyInitArgs.__new__(MutatingAdmissionPolicyInitArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return MutatingAdmissionPolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.MutatingAdmissionPolicySpec']: + """ + Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.py new file mode 100644 index 0000000000..07b6b799e8 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.py @@ -0,0 +1,222 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['MutatingAdmissionPolicyBindingInitArgs', 'MutatingAdmissionPolicyBinding'] + +@pulumi.input_type +class MutatingAdmissionPolicyBindingInitArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None, + spec: Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecArgs']] = None): + """ + The set of arguments for constructing a MutatingAdmissionPolicyBinding resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input['MutatingAdmissionPolicyBindingSpecArgs'] spec: Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicyBinding') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecArgs']]: + """ + Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecArgs']]): + pulumi.set(self, "spec", value) + + +class MutatingAdmissionPolicyBinding(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['MutatingAdmissionPolicyBindingSpecArgs', 'MutatingAdmissionPolicyBindingSpecArgsDict']]] = None, + __props__=None): + """ + MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + + For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + + Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input[Union['MutatingAdmissionPolicyBindingSpecArgs', 'MutatingAdmissionPolicyBindingSpecArgsDict']] spec: Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[MutatingAdmissionPolicyBindingInitArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + + For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + + Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + + :param str resource_name: The name of the resource. + :param MutatingAdmissionPolicyBindingInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MutatingAdmissionPolicyBindingInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['MutatingAdmissionPolicyBindingSpecArgs', 'MutatingAdmissionPolicyBindingSpecArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MutatingAdmissionPolicyBindingInitArgs.__new__(MutatingAdmissionPolicyBindingInitArgs) + + __props__.__dict__["api_version"] = 'admissionregistration.k8s.io/v1alpha1' + __props__.__dict__["kind"] = 'MutatingAdmissionPolicyBinding' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + super(MutatingAdmissionPolicyBinding, __self__).__init__( + 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MutatingAdmissionPolicyBinding': + """ + Get an existing MutatingAdmissionPolicyBinding resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = MutatingAdmissionPolicyBindingInitArgs.__new__(MutatingAdmissionPolicyBindingInitArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return MutatingAdmissionPolicyBinding(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.MutatingAdmissionPolicyBindingSpec']: + """ + Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.py new file mode 100644 index 0000000000..8a45d96fcc --- /dev/null +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.py @@ -0,0 +1,215 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['MutatingAdmissionPolicyBindingListArgs', 'MutatingAdmissionPolicyBindingList'] + +@pulumi.input_type +class MutatingAdmissionPolicyBindingListArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input['MutatingAdmissionPolicyBindingArgs']]], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None): + """ + The set of arguments for constructing a MutatingAdmissionPolicyBindingList resource. + :param pulumi.Input[Sequence[pulumi.Input['MutatingAdmissionPolicyBindingArgs']]] items: List of PolicyBinding. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ListMetaArgs'] metadata: Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + pulumi.set(__self__, "items", items) + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicyBindingList') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input['MutatingAdmissionPolicyBindingArgs']]]: + """ + List of PolicyBinding. + """ + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input['MutatingAdmissionPolicyBindingArgs']]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class MutatingAdmissionPolicyBindingList(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['MutatingAdmissionPolicyBindingArgs', 'MutatingAdmissionPolicyBindingArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + """ + MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[Sequence[pulumi.Input[Union['MutatingAdmissionPolicyBindingArgs', 'MutatingAdmissionPolicyBindingArgsDict']]]] items: List of PolicyBinding. + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] metadata: Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MutatingAdmissionPolicyBindingListArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. + + :param str resource_name: The name of the resource. + :param MutatingAdmissionPolicyBindingListArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MutatingAdmissionPolicyBindingListArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['MutatingAdmissionPolicyBindingArgs', 'MutatingAdmissionPolicyBindingArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MutatingAdmissionPolicyBindingListArgs.__new__(MutatingAdmissionPolicyBindingListArgs) + + __props__.__dict__["api_version"] = 'admissionregistration.k8s.io/v1alpha1' + if items is None and not opts.urn: + raise TypeError("Missing required property 'items'") + __props__.__dict__["items"] = items + __props__.__dict__["kind"] = 'MutatingAdmissionPolicyBindingList' + __props__.__dict__["metadata"] = metadata + super(MutatingAdmissionPolicyBindingList, __self__).__init__( + 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingList', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MutatingAdmissionPolicyBindingList': + """ + Get an existing MutatingAdmissionPolicyBindingList resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = MutatingAdmissionPolicyBindingListArgs.__new__(MutatingAdmissionPolicyBindingListArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["items"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + return MutatingAdmissionPolicyBindingList(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def items(self) -> pulumi.Output[Sequence['outputs.MutatingAdmissionPolicyBinding']]: + """ + List of PolicyBinding. + """ + return pulumi.get(self, "items") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + return pulumi.get(self, "metadata") + diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.py new file mode 100644 index 0000000000..423d889192 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.py @@ -0,0 +1,234 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['MutatingAdmissionPolicyBindingPatchArgs', 'MutatingAdmissionPolicyBindingPatch'] + +@pulumi.input_type +class MutatingAdmissionPolicyBindingPatchArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] = None, + spec: Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecPatchArgs']] = None): + """ + The set of arguments for constructing a MutatingAdmissionPolicyBindingPatch resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input['MutatingAdmissionPolicyBindingSpecPatchArgs'] spec: Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicyBinding') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecPatchArgs']]: + """ + Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecPatchArgs']]): + pulumi.set(self, "spec", value) + + +class MutatingAdmissionPolicyBindingPatch(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['MutatingAdmissionPolicyBindingSpecPatchArgs', 'MutatingAdmissionPolicyBindingSpecPatchArgsDict']]] = None, + __props__=None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + + For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + + Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input[Union['MutatingAdmissionPolicyBindingSpecPatchArgs', 'MutatingAdmissionPolicyBindingSpecPatchArgsDict']] spec: Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[MutatingAdmissionPolicyBindingPatchArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + + For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + + Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + + :param str resource_name: The name of the resource. + :param MutatingAdmissionPolicyBindingPatchArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MutatingAdmissionPolicyBindingPatchArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['MutatingAdmissionPolicyBindingSpecPatchArgs', 'MutatingAdmissionPolicyBindingSpecPatchArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MutatingAdmissionPolicyBindingPatchArgs.__new__(MutatingAdmissionPolicyBindingPatchArgs) + + __props__.__dict__["api_version"] = 'admissionregistration.k8s.io/v1alpha1' + __props__.__dict__["kind"] = 'MutatingAdmissionPolicyBinding' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + super(MutatingAdmissionPolicyBindingPatch, __self__).__init__( + 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MutatingAdmissionPolicyBindingPatch': + """ + Get an existing MutatingAdmissionPolicyBindingPatch resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = MutatingAdmissionPolicyBindingPatchArgs.__new__(MutatingAdmissionPolicyBindingPatchArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return MutatingAdmissionPolicyBindingPatch(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output[Optional['_meta.v1.outputs.ObjectMetaPatch']]: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output[Optional['outputs.MutatingAdmissionPolicyBindingSpecPatch']]: + """ + Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.py new file mode 100644 index 0000000000..7519fcfaeb --- /dev/null +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.py @@ -0,0 +1,215 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['MutatingAdmissionPolicyListArgs', 'MutatingAdmissionPolicyList'] + +@pulumi.input_type +class MutatingAdmissionPolicyListArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input['MutatingAdmissionPolicyArgs']]], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None): + """ + The set of arguments for constructing a MutatingAdmissionPolicyList resource. + :param pulumi.Input[Sequence[pulumi.Input['MutatingAdmissionPolicyArgs']]] items: List of ValidatingAdmissionPolicy. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ListMetaArgs'] metadata: Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + pulumi.set(__self__, "items", items) + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicyList') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input['MutatingAdmissionPolicyArgs']]]: + """ + List of ValidatingAdmissionPolicy. + """ + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input['MutatingAdmissionPolicyArgs']]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class MutatingAdmissionPolicyList(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['MutatingAdmissionPolicyArgs', 'MutatingAdmissionPolicyArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + """ + MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[Sequence[pulumi.Input[Union['MutatingAdmissionPolicyArgs', 'MutatingAdmissionPolicyArgsDict']]]] items: List of ValidatingAdmissionPolicy. + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] metadata: Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MutatingAdmissionPolicyListArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. + + :param str resource_name: The name of the resource. + :param MutatingAdmissionPolicyListArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MutatingAdmissionPolicyListArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['MutatingAdmissionPolicyArgs', 'MutatingAdmissionPolicyArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MutatingAdmissionPolicyListArgs.__new__(MutatingAdmissionPolicyListArgs) + + __props__.__dict__["api_version"] = 'admissionregistration.k8s.io/v1alpha1' + if items is None and not opts.urn: + raise TypeError("Missing required property 'items'") + __props__.__dict__["items"] = items + __props__.__dict__["kind"] = 'MutatingAdmissionPolicyList' + __props__.__dict__["metadata"] = metadata + super(MutatingAdmissionPolicyList, __self__).__init__( + 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyList', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MutatingAdmissionPolicyList': + """ + Get an existing MutatingAdmissionPolicyList resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = MutatingAdmissionPolicyListArgs.__new__(MutatingAdmissionPolicyListArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["items"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + return MutatingAdmissionPolicyList(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def items(self) -> pulumi.Output[Sequence['outputs.MutatingAdmissionPolicy']]: + """ + List of ValidatingAdmissionPolicy. + """ + return pulumi.get(self, "items") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + return pulumi.get(self, "metadata") + diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.py new file mode 100644 index 0000000000..3b9d86bfeb --- /dev/null +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.py @@ -0,0 +1,226 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['MutatingAdmissionPolicyPatchArgs', 'MutatingAdmissionPolicyPatch'] + +@pulumi.input_type +class MutatingAdmissionPolicyPatchArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] = None, + spec: Optional[pulumi.Input['MutatingAdmissionPolicySpecPatchArgs']] = None): + """ + The set of arguments for constructing a MutatingAdmissionPolicyPatch resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input['MutatingAdmissionPolicySpecPatchArgs'] spec: Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicy') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['MutatingAdmissionPolicySpecPatchArgs']]: + """ + Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['MutatingAdmissionPolicySpecPatchArgs']]): + pulumi.set(self, "spec", value) + + +class MutatingAdmissionPolicyPatch(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['MutatingAdmissionPolicySpecPatchArgs', 'MutatingAdmissionPolicySpecPatchArgsDict']]] = None, + __props__=None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input[Union['MutatingAdmissionPolicySpecPatchArgs', 'MutatingAdmissionPolicySpecPatchArgsDict']] spec: Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[MutatingAdmissionPolicyPatchArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + + :param str resource_name: The name of the resource. + :param MutatingAdmissionPolicyPatchArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MutatingAdmissionPolicyPatchArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['MutatingAdmissionPolicySpecPatchArgs', 'MutatingAdmissionPolicySpecPatchArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MutatingAdmissionPolicyPatchArgs.__new__(MutatingAdmissionPolicyPatchArgs) + + __props__.__dict__["api_version"] = 'admissionregistration.k8s.io/v1alpha1' + __props__.__dict__["kind"] = 'MutatingAdmissionPolicy' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + super(MutatingAdmissionPolicyPatch, __self__).__init__( + 'kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MutatingAdmissionPolicyPatch': + """ + Get an existing MutatingAdmissionPolicyPatch resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = MutatingAdmissionPolicyPatchArgs.__new__(MutatingAdmissionPolicyPatchArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return MutatingAdmissionPolicyPatch(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output[Optional['_meta.v1.outputs.ObjectMetaPatch']]: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output[Optional['outputs.MutatingAdmissionPolicySpecPatch']]: + """ + Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.py index 764e94f3e8..fb7f1a2cb6 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.py @@ -104,10 +104,6 @@ def __init__(__self__, """ ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - - The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. - :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources @@ -124,10 +120,6 @@ def __init__(__self__, """ ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - - The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. - :param str resource_name: The name of the resource. :param ValidatingAdmissionPolicyBindingInitArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.py index b53a22a5da..9f7c1fc20b 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.py @@ -110,10 +110,6 @@ def __init__(__self__, additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - - The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. - :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources @@ -136,10 +132,6 @@ def __init__(__self__, additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - - The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. - :param str resource_name: The name of the resource. :param ValidatingAdmissionPolicyBindingPatchArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/__init__.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/__init__.py index b24f03fb75..d22ca544a4 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/__init__.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/__init__.py @@ -5,6 +5,12 @@ from ... import _utilities import typing # Export this package's modules as members: +from .MutatingAdmissionPolicy import * +from .MutatingAdmissionPolicyBinding import * +from .MutatingAdmissionPolicyBindingList import * +from .MutatingAdmissionPolicyBindingPatch import * +from .MutatingAdmissionPolicyList import * +from .MutatingAdmissionPolicyPatch import * from .ValidatingAdmissionPolicy import * from .ValidatingAdmissionPolicyBinding import * from .ValidatingAdmissionPolicyBindingList import * diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/_inputs.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/_inputs.py index b10814ec3b..0d1ff15d79 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/_inputs.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/_inputs.py @@ -16,12 +16,20 @@ from ... import meta as _meta __all__ = [ + 'ApplyConfigurationPatchArgs', + 'ApplyConfigurationPatchArgsDict', + 'ApplyConfigurationArgs', + 'ApplyConfigurationArgsDict', 'AuditAnnotationPatchArgs', 'AuditAnnotationPatchArgsDict', 'AuditAnnotationArgs', 'AuditAnnotationArgsDict', 'ExpressionWarningArgs', 'ExpressionWarningArgsDict', + 'JSONPatchPatchArgs', + 'JSONPatchPatchArgsDict', + 'JSONPatchArgs', + 'JSONPatchArgsDict', 'MatchConditionPatchArgs', 'MatchConditionPatchArgsDict', 'MatchConditionArgs', @@ -30,6 +38,22 @@ 'MatchResourcesPatchArgsDict', 'MatchResourcesArgs', 'MatchResourcesArgsDict', + 'MutatingAdmissionPolicyBindingSpecPatchArgs', + 'MutatingAdmissionPolicyBindingSpecPatchArgsDict', + 'MutatingAdmissionPolicyBindingSpecArgs', + 'MutatingAdmissionPolicyBindingSpecArgsDict', + 'MutatingAdmissionPolicyBindingArgs', + 'MutatingAdmissionPolicyBindingArgsDict', + 'MutatingAdmissionPolicySpecPatchArgs', + 'MutatingAdmissionPolicySpecPatchArgsDict', + 'MutatingAdmissionPolicySpecArgs', + 'MutatingAdmissionPolicySpecArgsDict', + 'MutatingAdmissionPolicyArgs', + 'MutatingAdmissionPolicyArgsDict', + 'MutationPatchArgs', + 'MutationPatchArgsDict', + 'MutationArgs', + 'MutationArgsDict', 'NamedRuleWithOperationsPatchArgs', 'NamedRuleWithOperationsPatchArgsDict', 'NamedRuleWithOperationsArgs', @@ -70,6 +94,240 @@ MYPY = False +if not MYPY: + class ApplyConfigurationPatchArgsDict(TypedDict): + """ + ApplyConfiguration defines the desired configuration values of an object. + """ + expression: NotRequired[pulumi.Input[str]] + """ + expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ +elif False: + ApplyConfigurationPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApplyConfigurationPatchArgs: + def __init__(__self__, *, + expression: Optional[pulumi.Input[str]] = None): + """ + ApplyConfiguration defines the desired configuration values of an object. + :param pulumi.Input[str] expression: expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[pulumi.Input[str]]: + """ + expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expression", value) + + +if not MYPY: + class ApplyConfigurationArgsDict(TypedDict): + """ + ApplyConfiguration defines the desired configuration values of an object. + """ + expression: NotRequired[pulumi.Input[str]] + """ + expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ +elif False: + ApplyConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApplyConfigurationArgs: + def __init__(__self__, *, + expression: Optional[pulumi.Input[str]] = None): + """ + ApplyConfiguration defines the desired configuration values of an object. + :param pulumi.Input[str] expression: expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[pulumi.Input[str]]: + """ + expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expression", value) + + if not MYPY: class AuditAnnotationPatchArgsDict(TypedDict): """ @@ -295,65 +553,192 @@ def warning(self, value: pulumi.Input[str]): if not MYPY: - class MatchConditionPatchArgsDict(TypedDict): + class JSONPatchPatchArgsDict(TypedDict): + """ + JSONPatch defines a JSON Patch. + """ expression: NotRequired[pulumi.Input[str]] """ - Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec - 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the request resource. - Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - Required. - """ - name: NotRequired[pulumi.Input[str]] - """ - Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: - Required. + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. """ elif False: - MatchConditionPatchArgsDict: TypeAlias = Mapping[str, Any] + JSONPatchPatchArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class MatchConditionPatchArgs: +class JSONPatchPatchArgs: def __init__(__self__, *, - expression: Optional[pulumi.Input[str]] = None, - name: Optional[pulumi.Input[str]] = None): + expression: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] expression: Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + JSONPatch defines a JSON Patch. + :param pulumi.Input[str] expression: expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec - 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the request resource. - Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - Required. - :param pulumi.Input[str] name: Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: - Required. + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. """ if expression is not None: pulumi.set(__self__, "expression", expression) - if name is not None: - pulumi.set(__self__, "name", name) @property @pulumi.getter def expression(self) -> Optional[pulumi.Input[str]]: """ - Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec - 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the request resource. - Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - Required. + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. """ return pulumi.get(self, "expression") @@ -361,38 +746,301 @@ def expression(self) -> Optional[pulumi.Input[str]]: def expression(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "expression", value) - @property - @pulumi.getter - def name(self) -> Optional[pulumi.Input[str]]: - """ - Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - Required. +if not MYPY: + class JSONPatchArgsDict(TypedDict): """ - return pulumi.get(self, "name") + JSONPatch defines a JSON Patch. + """ + expression: NotRequired[pulumi.Input[str]] + """ + expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec - @name.setter - def name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "name", value) + expression must return an array of JSONPatch values. + For example, this CEL expression returns a JSON patch to conditionally modify a value: -if not MYPY: - class MatchConditionArgsDict(TypedDict): - expression: pulumi.Input[str] - """ - Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] - 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. - Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + To define an object for the patch value, use Object types. For example: - Required. - """ - name: pulumi.Input[str] - """ - Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ +elif False: + JSONPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class JSONPatchArgs: + def __init__(__self__, *, + expression: Optional[pulumi.Input[str]] = None): + """ + JSONPatch defines a JSON Patch. + :param pulumi.Input[str] expression: expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[pulumi.Input[str]]: + """ + expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expression", value) + + +if not MYPY: + class MatchConditionPatchArgsDict(TypedDict): + expression: NotRequired[pulumi.Input[str]] + """ + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + Required. + """ + name: NotRequired[pulumi.Input[str]] + """ + Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + Required. + """ +elif False: + MatchConditionPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MatchConditionPatchArgs: + def __init__(__self__, *, + expression: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] expression: Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + Required. + :param pulumi.Input[str] name: Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + Required. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def expression(self) -> Optional[pulumi.Input[str]]: + """ + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + Required. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expression", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + Required. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +if not MYPY: + class MatchConditionArgsDict(TypedDict): + expression: pulumi.Input[str] + """ + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + Required. + """ + name: pulumi.Input[str] + """ + Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') Required. """ @@ -716,192 +1364,1133 @@ class MatchResourcesArgsDict(TypedDict): ] } - If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "environment", - "operator": "In", - "values": [ - "prod", - "staging" - ] - } - ] - } + If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "environment", + "operator": "In", + "values": [ + "prod", + "staging" + ] + } + ] + } + + See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + + Default to the empty LabelSelector, which matches everything. + """ + object_selector: NotRequired[pulumi.Input['_meta.v1.LabelSelectorArgsDict']] + """ + ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + """ + resource_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgsDict']]]] + """ + ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + """ +elif False: + MatchResourcesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MatchResourcesArgs: + def __init__(__self__, *, + exclude_resource_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]] = None, + match_policy: Optional[pulumi.Input[str]] = None, + namespace_selector: Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']] = None, + object_selector: Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']] = None, + resource_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]] = None): + """ + MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + :param pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]] exclude_resource_rules: ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + :param pulumi.Input[str] match_policy: matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + + - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + + - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + + Defaults to "Equivalent" + :param pulumi.Input['_meta.v1.LabelSelectorArgs'] namespace_selector: NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + + For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "runlevel", + "operator": "NotIn", + "values": [ + "0", + "1" + ] + } + ] + } + + If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "environment", + "operator": "In", + "values": [ + "prod", + "staging" + ] + } + ] + } + + See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + + Default to the empty LabelSelector, which matches everything. + :param pulumi.Input['_meta.v1.LabelSelectorArgs'] object_selector: ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + :param pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]] resource_rules: ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + """ + if exclude_resource_rules is not None: + pulumi.set(__self__, "exclude_resource_rules", exclude_resource_rules) + if match_policy is not None: + pulumi.set(__self__, "match_policy", match_policy) + if namespace_selector is not None: + pulumi.set(__self__, "namespace_selector", namespace_selector) + if object_selector is not None: + pulumi.set(__self__, "object_selector", object_selector) + if resource_rules is not None: + pulumi.set(__self__, "resource_rules", resource_rules) + + @property + @pulumi.getter(name="excludeResourceRules") + def exclude_resource_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]]: + """ + ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + """ + return pulumi.get(self, "exclude_resource_rules") + + @exclude_resource_rules.setter + def exclude_resource_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]]): + pulumi.set(self, "exclude_resource_rules", value) + + @property + @pulumi.getter(name="matchPolicy") + def match_policy(self) -> Optional[pulumi.Input[str]]: + """ + matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + + - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + + - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + + Defaults to "Equivalent" + """ + return pulumi.get(self, "match_policy") + + @match_policy.setter + def match_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "match_policy", value) + + @property + @pulumi.getter(name="namespaceSelector") + def namespace_selector(self) -> Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']]: + """ + NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + + For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "runlevel", + "operator": "NotIn", + "values": [ + "0", + "1" + ] + } + ] + } + + If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "environment", + "operator": "In", + "values": [ + "prod", + "staging" + ] + } + ] + } + + See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + + Default to the empty LabelSelector, which matches everything. + """ + return pulumi.get(self, "namespace_selector") + + @namespace_selector.setter + def namespace_selector(self, value: Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']]): + pulumi.set(self, "namespace_selector", value) + + @property + @pulumi.getter(name="objectSelector") + def object_selector(self) -> Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']]: + """ + ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + """ + return pulumi.get(self, "object_selector") + + @object_selector.setter + def object_selector(self, value: Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']]): + pulumi.set(self, "object_selector", value) + + @property + @pulumi.getter(name="resourceRules") + def resource_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]]: + """ + ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + """ + return pulumi.get(self, "resource_rules") + + @resource_rules.setter + def resource_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]]): + pulumi.set(self, "resource_rules", value) + + +if not MYPY: + class MutatingAdmissionPolicyBindingSpecPatchArgsDict(TypedDict): + """ + MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + """ + match_resources: NotRequired[pulumi.Input['MatchResourcesPatchArgsDict']] + """ + matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + """ + param_ref: NotRequired[pulumi.Input['ParamRefPatchArgsDict']] + """ + paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + """ + policy_name: NotRequired[pulumi.Input[str]] + """ + policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ +elif False: + MutatingAdmissionPolicyBindingSpecPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MutatingAdmissionPolicyBindingSpecPatchArgs: + def __init__(__self__, *, + match_resources: Optional[pulumi.Input['MatchResourcesPatchArgs']] = None, + param_ref: Optional[pulumi.Input['ParamRefPatchArgs']] = None, + policy_name: Optional[pulumi.Input[str]] = None): + """ + MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + :param pulumi.Input['MatchResourcesPatchArgs'] match_resources: matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + :param pulumi.Input['ParamRefPatchArgs'] param_ref: paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + :param pulumi.Input[str] policy_name: policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ + if match_resources is not None: + pulumi.set(__self__, "match_resources", match_resources) + if param_ref is not None: + pulumi.set(__self__, "param_ref", param_ref) + if policy_name is not None: + pulumi.set(__self__, "policy_name", policy_name) + + @property + @pulumi.getter(name="matchResources") + def match_resources(self) -> Optional[pulumi.Input['MatchResourcesPatchArgs']]: + """ + matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + """ + return pulumi.get(self, "match_resources") + + @match_resources.setter + def match_resources(self, value: Optional[pulumi.Input['MatchResourcesPatchArgs']]): + pulumi.set(self, "match_resources", value) + + @property + @pulumi.getter(name="paramRef") + def param_ref(self) -> Optional[pulumi.Input['ParamRefPatchArgs']]: + """ + paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + """ + return pulumi.get(self, "param_ref") + + @param_ref.setter + def param_ref(self, value: Optional[pulumi.Input['ParamRefPatchArgs']]): + pulumi.set(self, "param_ref", value) + + @property + @pulumi.getter(name="policyName") + def policy_name(self) -> Optional[pulumi.Input[str]]: + """ + policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ + return pulumi.get(self, "policy_name") + + @policy_name.setter + def policy_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "policy_name", value) + + +if not MYPY: + class MutatingAdmissionPolicyBindingSpecArgsDict(TypedDict): + """ + MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + """ + match_resources: NotRequired[pulumi.Input['MatchResourcesArgsDict']] + """ + matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + """ + param_ref: NotRequired[pulumi.Input['ParamRefArgsDict']] + """ + paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + """ + policy_name: NotRequired[pulumi.Input[str]] + """ + policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ +elif False: + MutatingAdmissionPolicyBindingSpecArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MutatingAdmissionPolicyBindingSpecArgs: + def __init__(__self__, *, + match_resources: Optional[pulumi.Input['MatchResourcesArgs']] = None, + param_ref: Optional[pulumi.Input['ParamRefArgs']] = None, + policy_name: Optional[pulumi.Input[str]] = None): + """ + MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + :param pulumi.Input['MatchResourcesArgs'] match_resources: matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + :param pulumi.Input['ParamRefArgs'] param_ref: paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + :param pulumi.Input[str] policy_name: policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ + if match_resources is not None: + pulumi.set(__self__, "match_resources", match_resources) + if param_ref is not None: + pulumi.set(__self__, "param_ref", param_ref) + if policy_name is not None: + pulumi.set(__self__, "policy_name", policy_name) + + @property + @pulumi.getter(name="matchResources") + def match_resources(self) -> Optional[pulumi.Input['MatchResourcesArgs']]: + """ + matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + """ + return pulumi.get(self, "match_resources") + + @match_resources.setter + def match_resources(self, value: Optional[pulumi.Input['MatchResourcesArgs']]): + pulumi.set(self, "match_resources", value) + + @property + @pulumi.getter(name="paramRef") + def param_ref(self) -> Optional[pulumi.Input['ParamRefArgs']]: + """ + paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + """ + return pulumi.get(self, "param_ref") + + @param_ref.setter + def param_ref(self, value: Optional[pulumi.Input['ParamRefArgs']]): + pulumi.set(self, "param_ref", value) + + @property + @pulumi.getter(name="policyName") + def policy_name(self) -> Optional[pulumi.Input[str]]: + """ + policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ + return pulumi.get(self, "policy_name") + + @policy_name.setter + def policy_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "policy_name", value) + + +if not MYPY: + class MutatingAdmissionPolicyBindingArgsDict(TypedDict): + """ + MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + + For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + + Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + """ + api_version: NotRequired[pulumi.Input[str]] + """ + 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 + """ + kind: NotRequired[pulumi.Input[str]] + """ + 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 + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + spec: NotRequired[pulumi.Input['MutatingAdmissionPolicyBindingSpecArgsDict']] + """ + Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ +elif False: + MutatingAdmissionPolicyBindingArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MutatingAdmissionPolicyBindingArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None, + spec: Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecArgs']] = None): + """ + MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + + For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + + Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input['MutatingAdmissionPolicyBindingSpecArgs'] spec: Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicyBinding') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecArgs']]: + """ + Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['MutatingAdmissionPolicyBindingSpecArgs']]): + pulumi.set(self, "spec", value) + + +if not MYPY: + class MutatingAdmissionPolicySpecPatchArgsDict(TypedDict): + """ + MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + """ + failure_policy: NotRequired[pulumi.Input[str]] + """ + failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + """ + match_conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['MatchConditionPatchArgsDict']]]] + """ + matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + """ + match_constraints: NotRequired[pulumi.Input['MatchResourcesPatchArgsDict']] + """ + matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + """ + mutations: NotRequired[pulumi.Input[Sequence[pulumi.Input['MutationPatchArgsDict']]]] + """ + mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + """ + param_kind: NotRequired[pulumi.Input['ParamKindPatchArgsDict']] + """ + paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + """ + reinvocation_policy: NotRequired[pulumi.Input[str]] + """ + reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + """ + variables: NotRequired[pulumi.Input[Sequence[pulumi.Input['VariablePatchArgsDict']]]] + """ + variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ +elif False: + MutatingAdmissionPolicySpecPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MutatingAdmissionPolicySpecPatchArgs: + def __init__(__self__, *, + failure_policy: Optional[pulumi.Input[str]] = None, + match_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['MatchConditionPatchArgs']]]] = None, + match_constraints: Optional[pulumi.Input['MatchResourcesPatchArgs']] = None, + mutations: Optional[pulumi.Input[Sequence[pulumi.Input['MutationPatchArgs']]]] = None, + param_kind: Optional[pulumi.Input['ParamKindPatchArgs']] = None, + reinvocation_policy: Optional[pulumi.Input[str]] = None, + variables: Optional[pulumi.Input[Sequence[pulumi.Input['VariablePatchArgs']]]] = None): + """ + MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + :param pulumi.Input[str] failure_policy: failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + :param pulumi.Input[Sequence[pulumi.Input['MatchConditionPatchArgs']]] match_conditions: matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + :param pulumi.Input['MatchResourcesPatchArgs'] match_constraints: matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + :param pulumi.Input[Sequence[pulumi.Input['MutationPatchArgs']]] mutations: mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + :param pulumi.Input['ParamKindPatchArgs'] param_kind: paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + :param pulumi.Input[str] reinvocation_policy: reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + :param pulumi.Input[Sequence[pulumi.Input['VariablePatchArgs']]] variables: variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ + if failure_policy is not None: + pulumi.set(__self__, "failure_policy", failure_policy) + if match_conditions is not None: + pulumi.set(__self__, "match_conditions", match_conditions) + if match_constraints is not None: + pulumi.set(__self__, "match_constraints", match_constraints) + if mutations is not None: + pulumi.set(__self__, "mutations", mutations) + if param_kind is not None: + pulumi.set(__self__, "param_kind", param_kind) + if reinvocation_policy is not None: + pulumi.set(__self__, "reinvocation_policy", reinvocation_policy) + if variables is not None: + pulumi.set(__self__, "variables", variables) + + @property + @pulumi.getter(name="failurePolicy") + def failure_policy(self) -> Optional[pulumi.Input[str]]: + """ + failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + """ + return pulumi.get(self, "failure_policy") + + @failure_policy.setter + def failure_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "failure_policy", value) + + @property + @pulumi.getter(name="matchConditions") + def match_conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MatchConditionPatchArgs']]]]: + """ + matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + """ + return pulumi.get(self, "match_conditions") + + @match_conditions.setter + def match_conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MatchConditionPatchArgs']]]]): + pulumi.set(self, "match_conditions", value) + + @property + @pulumi.getter(name="matchConstraints") + def match_constraints(self) -> Optional[pulumi.Input['MatchResourcesPatchArgs']]: + """ + matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + """ + return pulumi.get(self, "match_constraints") + + @match_constraints.setter + def match_constraints(self, value: Optional[pulumi.Input['MatchResourcesPatchArgs']]): + pulumi.set(self, "match_constraints", value) + + @property + @pulumi.getter + def mutations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MutationPatchArgs']]]]: + """ + mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + """ + return pulumi.get(self, "mutations") + + @mutations.setter + def mutations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MutationPatchArgs']]]]): + pulumi.set(self, "mutations", value) + + @property + @pulumi.getter(name="paramKind") + def param_kind(self) -> Optional[pulumi.Input['ParamKindPatchArgs']]: + """ + paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + """ + return pulumi.get(self, "param_kind") + + @param_kind.setter + def param_kind(self, value: Optional[pulumi.Input['ParamKindPatchArgs']]): + pulumi.set(self, "param_kind", value) + + @property + @pulumi.getter(name="reinvocationPolicy") + def reinvocation_policy(self) -> Optional[pulumi.Input[str]]: + """ + reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + """ + return pulumi.get(self, "reinvocation_policy") + + @reinvocation_policy.setter + def reinvocation_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "reinvocation_policy", value) + + @property + @pulumi.getter + def variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['VariablePatchArgs']]]]: + """ + variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ + return pulumi.get(self, "variables") + + @variables.setter + def variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['VariablePatchArgs']]]]): + pulumi.set(self, "variables", value) + + +if not MYPY: + class MutatingAdmissionPolicySpecArgsDict(TypedDict): + """ + MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + """ + failure_policy: NotRequired[pulumi.Input[str]] + """ + failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + """ + match_conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['MatchConditionArgsDict']]]] + """ + matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + """ + match_constraints: NotRequired[pulumi.Input['MatchResourcesArgsDict']] + """ + matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + """ + mutations: NotRequired[pulumi.Input[Sequence[pulumi.Input['MutationArgsDict']]]] + """ + mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + """ + param_kind: NotRequired[pulumi.Input['ParamKindArgsDict']] + """ + paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + """ + reinvocation_policy: NotRequired[pulumi.Input[str]] + """ + reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + """ + variables: NotRequired[pulumi.Input[Sequence[pulumi.Input['VariableArgsDict']]]] + """ + variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ +elif False: + MutatingAdmissionPolicySpecArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MutatingAdmissionPolicySpecArgs: + def __init__(__self__, *, + failure_policy: Optional[pulumi.Input[str]] = None, + match_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['MatchConditionArgs']]]] = None, + match_constraints: Optional[pulumi.Input['MatchResourcesArgs']] = None, + mutations: Optional[pulumi.Input[Sequence[pulumi.Input['MutationArgs']]]] = None, + param_kind: Optional[pulumi.Input['ParamKindArgs']] = None, + reinvocation_policy: Optional[pulumi.Input[str]] = None, + variables: Optional[pulumi.Input[Sequence[pulumi.Input['VariableArgs']]]] = None): + """ + MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + :param pulumi.Input[str] failure_policy: failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + :param pulumi.Input[Sequence[pulumi.Input['MatchConditionArgs']]] match_conditions: matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + :param pulumi.Input['MatchResourcesArgs'] match_constraints: matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + :param pulumi.Input[Sequence[pulumi.Input['MutationArgs']]] mutations: mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + :param pulumi.Input['ParamKindArgs'] param_kind: paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + :param pulumi.Input[str] reinvocation_policy: reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + :param pulumi.Input[Sequence[pulumi.Input['VariableArgs']]] variables: variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ + if failure_policy is not None: + pulumi.set(__self__, "failure_policy", failure_policy) + if match_conditions is not None: + pulumi.set(__self__, "match_conditions", match_conditions) + if match_constraints is not None: + pulumi.set(__self__, "match_constraints", match_constraints) + if mutations is not None: + pulumi.set(__self__, "mutations", mutations) + if param_kind is not None: + pulumi.set(__self__, "param_kind", param_kind) + if reinvocation_policy is not None: + pulumi.set(__self__, "reinvocation_policy", reinvocation_policy) + if variables is not None: + pulumi.set(__self__, "variables", variables) + + @property + @pulumi.getter(name="failurePolicy") + def failure_policy(self) -> Optional[pulumi.Input[str]]: + """ + failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + """ + return pulumi.get(self, "failure_policy") + + @failure_policy.setter + def failure_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "failure_policy", value) + + @property + @pulumi.getter(name="matchConditions") + def match_conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MatchConditionArgs']]]]: + """ + matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + """ + return pulumi.get(self, "match_conditions") + + @match_conditions.setter + def match_conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MatchConditionArgs']]]]): + pulumi.set(self, "match_conditions", value) + + @property + @pulumi.getter(name="matchConstraints") + def match_constraints(self) -> Optional[pulumi.Input['MatchResourcesArgs']]: + """ + matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + """ + return pulumi.get(self, "match_constraints") + + @match_constraints.setter + def match_constraints(self, value: Optional[pulumi.Input['MatchResourcesArgs']]): + pulumi.set(self, "match_constraints", value) + + @property + @pulumi.getter + def mutations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MutationArgs']]]]: + """ + mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + """ + return pulumi.get(self, "mutations") + + @mutations.setter + def mutations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MutationArgs']]]]): + pulumi.set(self, "mutations", value) + + @property + @pulumi.getter(name="paramKind") + def param_kind(self) -> Optional[pulumi.Input['ParamKindArgs']]: + """ + paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + """ + return pulumi.get(self, "param_kind") + + @param_kind.setter + def param_kind(self, value: Optional[pulumi.Input['ParamKindArgs']]): + pulumi.set(self, "param_kind", value) + + @property + @pulumi.getter(name="reinvocationPolicy") + def reinvocation_policy(self) -> Optional[pulumi.Input[str]]: + """ + reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + """ + return pulumi.get(self, "reinvocation_policy") + + @reinvocation_policy.setter + def reinvocation_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "reinvocation_policy", value) + + @property + @pulumi.getter + def variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['VariableArgs']]]]: + """ + variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ + return pulumi.get(self, "variables") + + @variables.setter + def variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['VariableArgs']]]]): + pulumi.set(self, "variables", value) + + +if not MYPY: + class MutatingAdmissionPolicyArgsDict(TypedDict): + """ + MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + """ + api_version: NotRequired[pulumi.Input[str]] + """ + 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 + """ + kind: NotRequired[pulumi.Input[str]] + """ + 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 + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + spec: NotRequired[pulumi.Input['MutatingAdmissionPolicySpecArgsDict']] + """ + Specification of the desired behavior of the MutatingAdmissionPolicy. + """ +elif False: + MutatingAdmissionPolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MutatingAdmissionPolicyArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None, + spec: Optional[pulumi.Input['MutatingAdmissionPolicySpecArgs']] = None): + """ + MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param pulumi.Input['MutatingAdmissionPolicySpecArgs'] spec: Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicy') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['MutatingAdmissionPolicySpecArgs']]: + """ + Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + return pulumi.get(self, "spec") - See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + @spec.setter + def spec(self, value: Optional[pulumi.Input['MutatingAdmissionPolicySpecArgs']]): + pulumi.set(self, "spec", value) - Default to the empty LabelSelector, which matches everything. + +if not MYPY: + class MutationPatchArgsDict(TypedDict): """ - object_selector: NotRequired[pulumi.Input['_meta.v1.LabelSelectorArgsDict']] + Mutation specifies the CEL expression which is used to apply the Mutation. """ - ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + apply_configuration: NotRequired[pulumi.Input['ApplyConfigurationPatchArgsDict']] """ - resource_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgsDict']]]] + applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. """ - ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + json_patch: NotRequired[pulumi.Input['JSONPatchPatchArgsDict']] + """ + jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + """ + patch_type: NotRequired[pulumi.Input[str]] + """ + patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. """ elif False: - MatchResourcesArgsDict: TypeAlias = Mapping[str, Any] + MutationPatchArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class MatchResourcesArgs: +class MutationPatchArgs: def __init__(__self__, *, - exclude_resource_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]] = None, - match_policy: Optional[pulumi.Input[str]] = None, - namespace_selector: Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']] = None, - object_selector: Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']] = None, - resource_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]] = None): + apply_configuration: Optional[pulumi.Input['ApplyConfigurationPatchArgs']] = None, + json_patch: Optional[pulumi.Input['JSONPatchPatchArgs']] = None, + patch_type: Optional[pulumi.Input[str]] = None): + """ + Mutation specifies the CEL expression which is used to apply the Mutation. + :param pulumi.Input['ApplyConfigurationPatchArgs'] apply_configuration: applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + :param pulumi.Input['JSONPatchPatchArgs'] json_patch: jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + :param pulumi.Input[str] patch_type: patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + """ + if apply_configuration is not None: + pulumi.set(__self__, "apply_configuration", apply_configuration) + if json_patch is not None: + pulumi.set(__self__, "json_patch", json_patch) + if patch_type is not None: + pulumi.set(__self__, "patch_type", patch_type) + + @property + @pulumi.getter(name="applyConfiguration") + def apply_configuration(self) -> Optional[pulumi.Input['ApplyConfigurationPatchArgs']]: """ - MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - :param pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]] exclude_resource_rules: ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - :param pulumi.Input[str] match_policy: matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". - - - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. - - - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. - - Defaults to "Equivalent" - :param pulumi.Input['_meta.v1.LabelSelectorArgs'] namespace_selector: NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. - - For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "runlevel", - "operator": "NotIn", - "values": [ - "0", - "1" - ] - } - ] - } - - If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "environment", - "operator": "In", - "values": [ - "prod", - "staging" - ] - } - ] - } - - See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. - - Default to the empty LabelSelector, which matches everything. - :param pulumi.Input['_meta.v1.LabelSelectorArgs'] object_selector: ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - :param pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]] resource_rules: ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. """ - if exclude_resource_rules is not None: - pulumi.set(__self__, "exclude_resource_rules", exclude_resource_rules) - if match_policy is not None: - pulumi.set(__self__, "match_policy", match_policy) - if namespace_selector is not None: - pulumi.set(__self__, "namespace_selector", namespace_selector) - if object_selector is not None: - pulumi.set(__self__, "object_selector", object_selector) - if resource_rules is not None: - pulumi.set(__self__, "resource_rules", resource_rules) + return pulumi.get(self, "apply_configuration") + + @apply_configuration.setter + def apply_configuration(self, value: Optional[pulumi.Input['ApplyConfigurationPatchArgs']]): + pulumi.set(self, "apply_configuration", value) @property - @pulumi.getter(name="excludeResourceRules") - def exclude_resource_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]]: + @pulumi.getter(name="jsonPatch") + def json_patch(self) -> Optional[pulumi.Input['JSONPatchPatchArgs']]: """ - ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. """ - return pulumi.get(self, "exclude_resource_rules") + return pulumi.get(self, "json_patch") - @exclude_resource_rules.setter - def exclude_resource_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]]): - pulumi.set(self, "exclude_resource_rules", value) + @json_patch.setter + def json_patch(self, value: Optional[pulumi.Input['JSONPatchPatchArgs']]): + pulumi.set(self, "json_patch", value) @property - @pulumi.getter(name="matchPolicy") - def match_policy(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="patchType") + def patch_type(self) -> Optional[pulumi.Input[str]]: """ - matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + """ + return pulumi.get(self, "patch_type") - - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + @patch_type.setter + def patch_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "patch_type", value) - - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. - Defaults to "Equivalent" +if not MYPY: + class MutationArgsDict(TypedDict): """ - return pulumi.get(self, "match_policy") + Mutation specifies the CEL expression which is used to apply the Mutation. + """ + patch_type: pulumi.Input[str] + """ + patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + """ + apply_configuration: NotRequired[pulumi.Input['ApplyConfigurationArgsDict']] + """ + applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + """ + json_patch: NotRequired[pulumi.Input['JSONPatchArgsDict']] + """ + jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + """ +elif False: + MutationArgsDict: TypeAlias = Mapping[str, Any] - @match_policy.setter - def match_policy(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "match_policy", value) +@pulumi.input_type +class MutationArgs: + def __init__(__self__, *, + patch_type: pulumi.Input[str], + apply_configuration: Optional[pulumi.Input['ApplyConfigurationArgs']] = None, + json_patch: Optional[pulumi.Input['JSONPatchArgs']] = None): + """ + Mutation specifies the CEL expression which is used to apply the Mutation. + :param pulumi.Input[str] patch_type: patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + :param pulumi.Input['ApplyConfigurationArgs'] apply_configuration: applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + :param pulumi.Input['JSONPatchArgs'] json_patch: jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + """ + pulumi.set(__self__, "patch_type", patch_type) + if apply_configuration is not None: + pulumi.set(__self__, "apply_configuration", apply_configuration) + if json_patch is not None: + pulumi.set(__self__, "json_patch", json_patch) @property - @pulumi.getter(name="namespaceSelector") - def namespace_selector(self) -> Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']]: + @pulumi.getter(name="patchType") + def patch_type(self) -> pulumi.Input[str]: """ - NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. - - For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "runlevel", - "operator": "NotIn", - "values": [ - "0", - "1" - ] - } - ] - } - - If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "environment", - "operator": "In", - "values": [ - "prod", - "staging" - ] - } - ] - } - - See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. - - Default to the empty LabelSelector, which matches everything. + patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. """ - return pulumi.get(self, "namespace_selector") + return pulumi.get(self, "patch_type") - @namespace_selector.setter - def namespace_selector(self, value: Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']]): - pulumi.set(self, "namespace_selector", value) + @patch_type.setter + def patch_type(self, value: pulumi.Input[str]): + pulumi.set(self, "patch_type", value) @property - @pulumi.getter(name="objectSelector") - def object_selector(self) -> Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']]: + @pulumi.getter(name="applyConfiguration") + def apply_configuration(self) -> Optional[pulumi.Input['ApplyConfigurationArgs']]: """ - ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. """ - return pulumi.get(self, "object_selector") + return pulumi.get(self, "apply_configuration") - @object_selector.setter - def object_selector(self, value: Optional[pulumi.Input['_meta.v1.LabelSelectorArgs']]): - pulumi.set(self, "object_selector", value) + @apply_configuration.setter + def apply_configuration(self, value: Optional[pulumi.Input['ApplyConfigurationArgs']]): + pulumi.set(self, "apply_configuration", value) @property - @pulumi.getter(name="resourceRules") - def resource_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]]: + @pulumi.getter(name="jsonPatch") + def json_patch(self) -> Optional[pulumi.Input['JSONPatchArgs']]: """ - ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. """ - return pulumi.get(self, "resource_rules") + return pulumi.get(self, "json_patch") - @resource_rules.setter - def resource_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NamedRuleWithOperationsArgs']]]]): - pulumi.set(self, "resource_rules", value) + @json_patch.setter + def json_patch(self, value: Optional[pulumi.Input['JSONPatchArgs']]): + pulumi.set(self, "json_patch", value) if not MYPY: @@ -1647,7 +3236,7 @@ class ValidatingAdmissionPolicyBindingSpecPatchArgsDict(TypedDict): """ param_ref: NotRequired[pulumi.Input['ParamRefPatchArgsDict']] """ - paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. """ policy_name: NotRequired[pulumi.Input[str]] """ @@ -1688,7 +3277,7 @@ def __init__(__self__, *, """ ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding. :param pulumi.Input['MatchResourcesPatchArgs'] match_resources: MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required. - :param pulumi.Input['ParamRefPatchArgs'] param_ref: paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + :param pulumi.Input['ParamRefPatchArgs'] param_ref: ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. :param pulumi.Input[str] policy_name: PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. :param pulumi.Input[Sequence[pulumi.Input[str]]] validation_actions: validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions. @@ -1735,7 +3324,7 @@ def match_resources(self, value: Optional[pulumi.Input['MatchResourcesPatchArgs' @pulumi.getter(name="paramRef") def param_ref(self) -> Optional[pulumi.Input['ParamRefPatchArgs']]: """ - paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. """ return pulumi.get(self, "param_ref") @@ -1797,7 +3386,7 @@ class ValidatingAdmissionPolicyBindingSpecArgsDict(TypedDict): """ param_ref: NotRequired[pulumi.Input['ParamRefArgsDict']] """ - paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. """ policy_name: NotRequired[pulumi.Input[str]] """ @@ -1838,7 +3427,7 @@ def __init__(__self__, *, """ ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding. :param pulumi.Input['MatchResourcesArgs'] match_resources: MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required. - :param pulumi.Input['ParamRefArgs'] param_ref: paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + :param pulumi.Input['ParamRefArgs'] param_ref: ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. :param pulumi.Input[str] policy_name: PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. :param pulumi.Input[Sequence[pulumi.Input[str]]] validation_actions: validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions. @@ -1885,7 +3474,7 @@ def match_resources(self, value: Optional[pulumi.Input['MatchResourcesArgs']]): @pulumi.getter(name="paramRef") def param_ref(self) -> Optional[pulumi.Input['ParamRefArgs']]: """ - paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. """ return pulumi.get(self, "param_ref") @@ -1940,10 +3529,6 @@ def validation_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ class ValidatingAdmissionPolicyBindingArgsDict(TypedDict): """ ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - - For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - - The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. """ api_version: NotRequired[pulumi.Input[str]] """ @@ -1973,10 +3558,6 @@ def __init__(__self__, *, spec: Optional[pulumi.Input['ValidatingAdmissionPolicyBindingSpecArgs']] = None): """ ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - - For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - - The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. @@ -2051,15 +3632,7 @@ class ValidatingAdmissionPolicySpecPatchArgsDict(TypedDict): """ failure_policy: NotRequired[pulumi.Input[str]] """ - failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. """ match_conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['MatchConditionPatchArgsDict']]]] """ @@ -2084,7 +3657,7 @@ class ValidatingAdmissionPolicySpecPatchArgsDict(TypedDict): """ validations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ValidationPatchArgsDict']]]] """ - Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. """ variables: NotRequired[pulumi.Input[Sequence[pulumi.Input['VariablePatchArgsDict']]]] """ @@ -2108,15 +3681,7 @@ def __init__(__self__, *, """ ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy. :param pulumi.Input[Sequence[pulumi.Input['AuditAnnotationPatchArgs']]] audit_annotations: auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. - :param pulumi.Input[str] failure_policy: failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + :param pulumi.Input[str] failure_policy: FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. :param pulumi.Input[Sequence[pulumi.Input['MatchConditionPatchArgs']]] match_conditions: MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. @@ -2129,7 +3694,7 @@ def __init__(__self__, *, - If failurePolicy=Ignore, the policy is skipped :param pulumi.Input['MatchResourcesPatchArgs'] match_constraints: MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required. :param pulumi.Input['ParamKindPatchArgs'] param_kind: ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null. - :param pulumi.Input[Sequence[pulumi.Input['ValidationPatchArgs']]] validations: Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + :param pulumi.Input[Sequence[pulumi.Input['ValidationPatchArgs']]] validations: Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. :param pulumi.Input[Sequence[pulumi.Input['VariablePatchArgs']]] variables: Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy. The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic. @@ -2165,15 +3730,7 @@ def audit_annotations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[' @pulumi.getter(name="failurePolicy") def failure_policy(self) -> Optional[pulumi.Input[str]]: """ - failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. """ return pulumi.get(self, "failure_policy") @@ -2230,7 +3787,7 @@ def param_kind(self, value: Optional[pulumi.Input['ParamKindPatchArgs']]): @pulumi.getter def validations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ValidationPatchArgs']]]]: """ - Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. """ return pulumi.get(self, "validations") @@ -2260,7 +3817,7 @@ class ValidatingAdmissionPolicySpecArgsDict(TypedDict): """ validations: pulumi.Input[Sequence[pulumi.Input['ValidationArgsDict']]] """ - Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. """ audit_annotations: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuditAnnotationArgsDict']]]] """ @@ -2268,15 +3825,7 @@ class ValidatingAdmissionPolicySpecArgsDict(TypedDict): """ failure_policy: NotRequired[pulumi.Input[str]] """ - failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. """ match_conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['MatchConditionArgsDict']]]] """ @@ -2320,17 +3869,9 @@ def __init__(__self__, *, variables: Optional[pulumi.Input[Sequence[pulumi.Input['VariableArgs']]]] = None): """ ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy. - :param pulumi.Input[Sequence[pulumi.Input['ValidationArgs']]] validations: Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + :param pulumi.Input[Sequence[pulumi.Input['ValidationArgs']]] validations: Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. :param pulumi.Input[Sequence[pulumi.Input['AuditAnnotationArgs']]] audit_annotations: auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. - :param pulumi.Input[str] failure_policy: failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + :param pulumi.Input[str] failure_policy: FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. :param pulumi.Input[Sequence[pulumi.Input['MatchConditionArgs']]] match_conditions: MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. @@ -2365,7 +3906,7 @@ def __init__(__self__, *, @pulumi.getter def validations(self) -> pulumi.Input[Sequence[pulumi.Input['ValidationArgs']]]: """ - Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. """ return pulumi.get(self, "validations") @@ -2389,15 +3930,7 @@ def audit_annotations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[' @pulumi.getter(name="failurePolicy") def failure_policy(self) -> Optional[pulumi.Input[str]]: """ - failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. """ return pulumi.get(self, "failure_policy") @@ -2664,14 +4197,9 @@ class ValidationPatchArgsDict(TypedDict): """ expression: NotRequired[pulumi.Input[str]] """ - Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. @@ -2715,14 +4243,9 @@ def __init__(__self__, *, reason: Optional[pulumi.Input[str]] = None): """ Validation specifies the CEL expression which is used to apply the validation. - :param pulumi.Input[str] expression: Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + :param pulumi.Input[str] expression: Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. @@ -2758,14 +4281,9 @@ def __init__(__self__, *, @pulumi.getter def expression(self) -> Optional[pulumi.Input[str]]: """ - Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. @@ -2835,14 +4353,9 @@ class ValidationArgsDict(TypedDict): """ expression: pulumi.Input[str] """ - Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. @@ -2886,14 +4399,9 @@ def __init__(__self__, *, reason: Optional[pulumi.Input[str]] = None): """ Validation specifies the CEL expression which is used to apply the validation. - :param pulumi.Input[str] expression: Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + :param pulumi.Input[str] expression: Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. @@ -2928,14 +4436,9 @@ def __init__(__self__, *, @pulumi.getter def expression(self) -> pulumi.Input[str]: """ - Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/outputs.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/outputs.py index 2a934dccdc..c84ad857bd 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/outputs.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1alpha1/outputs.py @@ -17,14 +17,26 @@ from ... import meta as _meta __all__ = [ + 'ApplyConfiguration', + 'ApplyConfigurationPatch', 'AuditAnnotation', 'AuditAnnotationPatch', 'ExpressionWarning', 'ExpressionWarningPatch', + 'JSONPatch', + 'JSONPatchPatch', 'MatchCondition', 'MatchConditionPatch', 'MatchResources', 'MatchResourcesPatch', + 'MutatingAdmissionPolicy', + 'MutatingAdmissionPolicyBinding', + 'MutatingAdmissionPolicyBindingSpec', + 'MutatingAdmissionPolicyBindingSpecPatch', + 'MutatingAdmissionPolicySpec', + 'MutatingAdmissionPolicySpecPatch', + 'Mutation', + 'MutationPatch', 'NamedRuleWithOperations', 'NamedRuleWithOperationsPatch', 'ParamKind', @@ -47,6 +59,160 @@ 'VariablePatch', ] +@pulumi.output_type +class ApplyConfiguration(dict): + """ + ApplyConfiguration defines the desired configuration values of an object. + """ + def __init__(__self__, *, + expression: Optional[str] = None): + """ + ApplyConfiguration defines the desired configuration values of an object. + :param str expression: expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[str]: + """ + expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + return pulumi.get(self, "expression") + + +@pulumi.output_type +class ApplyConfigurationPatch(dict): + """ + ApplyConfiguration defines the desired configuration values of an object. + """ + def __init__(__self__, *, + expression: Optional[str] = None): + """ + ApplyConfiguration defines the desired configuration values of an object. + :param str expression: expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[str]: + """ + expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec + + Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: + + Object{ + spec: Object.spec{ + serviceAccountName: "example" + } + } + + Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. + + CEL expressions have access to the object types needed to create apply configurations: + + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + return pulumi.get(self, "expression") + + @pulumi.output_type class AuditAnnotation(dict): """ @@ -291,6 +457,264 @@ def warning(self) -> Optional[str]: return pulumi.get(self, "warning") +@pulumi.output_type +class JSONPatch(dict): + """ + JSONPatch defines a JSON Patch. + """ + def __init__(__self__, *, + expression: Optional[str] = None): + """ + JSONPatch defines a JSON Patch. + :param str expression: expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[str]: + """ + expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + return pulumi.get(self, "expression") + + +@pulumi.output_type +class JSONPatchPatch(dict): + """ + JSONPatch defines a JSON Patch. + """ + def __init__(__self__, *, + expression: Optional[str] = None): + """ + JSONPatch defines a JSON Patch. + :param str expression: expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[str]: + """ + expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + + expression must return an array of JSONPatch values. + + For example, this CEL expression returns a JSON patch to conditionally modify a value: + + [ + JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + ] + + To define an object for the patch value, use Object types. For example: + + [ + JSONPatch{ + op: "add", + path: "/spec/selector", + value: Object.spec.selector{matchLabels: {"environment": "test"}} + } + ] + + To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + + [ + JSONPatch{ + op: "add", + path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + value: "test" + }, + ] + + CEL expressions have access to the types needed to create JSON patches and objects: + + - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + function may be used to escape path keys containing '/' and '~'. + - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + + CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + + - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + For example, a variable named 'foo' can be accessed as 'variables.foo'. + - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + + CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + + - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + + Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + """ + return pulumi.get(self, "expression") + + @pulumi.output_type class MatchCondition(dict): def __init__(__self__, *, @@ -502,229 +926,984 @@ def match_policy(self) -> Optional[str]: Defaults to "Equivalent" """ - return pulumi.get(self, "match_policy") + return pulumi.get(self, "match_policy") + + @property + @pulumi.getter(name="namespaceSelector") + def namespace_selector(self) -> Optional['_meta.v1.outputs.LabelSelector']: + """ + NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + + For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "runlevel", + "operator": "NotIn", + "values": [ + "0", + "1" + ] + } + ] + } + + If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "environment", + "operator": "In", + "values": [ + "prod", + "staging" + ] + } + ] + } + + See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + + Default to the empty LabelSelector, which matches everything. + """ + return pulumi.get(self, "namespace_selector") + + @property + @pulumi.getter(name="objectSelector") + def object_selector(self) -> Optional['_meta.v1.outputs.LabelSelector']: + """ + ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + """ + return pulumi.get(self, "object_selector") + + @property + @pulumi.getter(name="resourceRules") + def resource_rules(self) -> Optional[Sequence['outputs.NamedRuleWithOperations']]: + """ + ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + """ + return pulumi.get(self, "resource_rules") + + +@pulumi.output_type +class MatchResourcesPatch(dict): + """ + MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "excludeResourceRules": + suggest = "exclude_resource_rules" + elif key == "matchPolicy": + suggest = "match_policy" + elif key == "namespaceSelector": + suggest = "namespace_selector" + elif key == "objectSelector": + suggest = "object_selector" + elif key == "resourceRules": + suggest = "resource_rules" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MatchResourcesPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MatchResourcesPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MatchResourcesPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + exclude_resource_rules: Optional[Sequence['outputs.NamedRuleWithOperationsPatch']] = None, + match_policy: Optional[str] = None, + namespace_selector: Optional['_meta.v1.outputs.LabelSelectorPatch'] = None, + object_selector: Optional['_meta.v1.outputs.LabelSelectorPatch'] = None, + resource_rules: Optional[Sequence['outputs.NamedRuleWithOperationsPatch']] = None): + """ + MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + :param Sequence['NamedRuleWithOperationsPatchArgs'] exclude_resource_rules: ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + :param str match_policy: matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + + - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + + - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + + Defaults to "Equivalent" + :param '_meta.v1.LabelSelectorPatchArgs' namespace_selector: NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + + For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "runlevel", + "operator": "NotIn", + "values": [ + "0", + "1" + ] + } + ] + } + + If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "environment", + "operator": "In", + "values": [ + "prod", + "staging" + ] + } + ] + } + + See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + + Default to the empty LabelSelector, which matches everything. + :param '_meta.v1.LabelSelectorPatchArgs' object_selector: ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + :param Sequence['NamedRuleWithOperationsPatchArgs'] resource_rules: ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + """ + if exclude_resource_rules is not None: + pulumi.set(__self__, "exclude_resource_rules", exclude_resource_rules) + if match_policy is not None: + pulumi.set(__self__, "match_policy", match_policy) + if namespace_selector is not None: + pulumi.set(__self__, "namespace_selector", namespace_selector) + if object_selector is not None: + pulumi.set(__self__, "object_selector", object_selector) + if resource_rules is not None: + pulumi.set(__self__, "resource_rules", resource_rules) + + @property + @pulumi.getter(name="excludeResourceRules") + def exclude_resource_rules(self) -> Optional[Sequence['outputs.NamedRuleWithOperationsPatch']]: + """ + ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + """ + return pulumi.get(self, "exclude_resource_rules") + + @property + @pulumi.getter(name="matchPolicy") + def match_policy(self) -> Optional[str]: + """ + matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + + - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + + - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + + Defaults to "Equivalent" + """ + return pulumi.get(self, "match_policy") + + @property + @pulumi.getter(name="namespaceSelector") + def namespace_selector(self) -> Optional['_meta.v1.outputs.LabelSelectorPatch']: + """ + NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + + For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "runlevel", + "operator": "NotIn", + "values": [ + "0", + "1" + ] + } + ] + } + + If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + "matchExpressions": [ + { + "key": "environment", + "operator": "In", + "values": [ + "prod", + "staging" + ] + } + ] + } + + See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + + Default to the empty LabelSelector, which matches everything. + """ + return pulumi.get(self, "namespace_selector") + + @property + @pulumi.getter(name="objectSelector") + def object_selector(self) -> Optional['_meta.v1.outputs.LabelSelectorPatch']: + """ + ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + """ + return pulumi.get(self, "object_selector") + + @property + @pulumi.getter(name="resourceRules") + def resource_rules(self) -> Optional[Sequence['outputs.NamedRuleWithOperationsPatch']]: + """ + ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + """ + return pulumi.get(self, "resource_rules") + + +@pulumi.output_type +class MutatingAdmissionPolicy(dict): + """ + MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiVersion": + suggest = "api_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MutatingAdmissionPolicy. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MutatingAdmissionPolicy.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MutatingAdmissionPolicy.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + api_version: Optional[str] = None, + kind: Optional[str] = None, + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None, + spec: Optional['outputs.MutatingAdmissionPolicySpec'] = None): + """ + MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. + :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 + :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 + :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param 'MutatingAdmissionPolicySpecArgs' spec: Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicy') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> Optional['outputs.MutatingAdmissionPolicySpec']: + """ + Specification of the desired behavior of the MutatingAdmissionPolicy. + """ + return pulumi.get(self, "spec") + + +@pulumi.output_type +class MutatingAdmissionPolicyBinding(dict): + """ + MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + + For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + + Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiVersion": + suggest = "api_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MutatingAdmissionPolicyBinding. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MutatingAdmissionPolicyBinding.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MutatingAdmissionPolicyBinding.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + api_version: Optional[str] = None, + kind: Optional[str] = None, + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None, + spec: Optional['outputs.MutatingAdmissionPolicyBindingSpec'] = None): + """ + MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. + + For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). + + Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + :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 + :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 + :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + :param 'MutatingAdmissionPolicyBindingSpecArgs' spec: Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'admissionregistration.k8s.io/v1alpha1') + if kind is not None: + pulumi.set(__self__, "kind", 'MutatingAdmissionPolicyBinding') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> Optional['outputs.MutatingAdmissionPolicyBindingSpec']: + """ + Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + """ + return pulumi.get(self, "spec") + + +@pulumi.output_type +class MutatingAdmissionPolicyBindingSpec(dict): + """ + MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "matchResources": + suggest = "match_resources" + elif key == "paramRef": + suggest = "param_ref" + elif key == "policyName": + suggest = "policy_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MutatingAdmissionPolicyBindingSpec. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MutatingAdmissionPolicyBindingSpec.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MutatingAdmissionPolicyBindingSpec.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + match_resources: Optional['outputs.MatchResources'] = None, + param_ref: Optional['outputs.ParamRef'] = None, + policy_name: Optional[str] = None): + """ + MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + :param 'MatchResourcesArgs' match_resources: matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + :param 'ParamRefArgs' param_ref: paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + :param str policy_name: policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ + if match_resources is not None: + pulumi.set(__self__, "match_resources", match_resources) + if param_ref is not None: + pulumi.set(__self__, "param_ref", param_ref) + if policy_name is not None: + pulumi.set(__self__, "policy_name", policy_name) + + @property + @pulumi.getter(name="matchResources") + def match_resources(self) -> Optional['outputs.MatchResources']: + """ + matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + """ + return pulumi.get(self, "match_resources") + + @property + @pulumi.getter(name="paramRef") + def param_ref(self) -> Optional['outputs.ParamRef']: + """ + paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + """ + return pulumi.get(self, "param_ref") + + @property + @pulumi.getter(name="policyName") + def policy_name(self) -> Optional[str]: + """ + policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ + return pulumi.get(self, "policy_name") + + +@pulumi.output_type +class MutatingAdmissionPolicyBindingSpecPatch(dict): + """ + MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "matchResources": + suggest = "match_resources" + elif key == "paramRef": + suggest = "param_ref" + elif key == "policyName": + suggest = "policy_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MutatingAdmissionPolicyBindingSpecPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MutatingAdmissionPolicyBindingSpecPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MutatingAdmissionPolicyBindingSpecPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + match_resources: Optional['outputs.MatchResourcesPatch'] = None, + param_ref: Optional['outputs.ParamRefPatch'] = None, + policy_name: Optional[str] = None): + """ + MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. + :param 'MatchResourcesPatchArgs' match_resources: matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + :param 'ParamRefPatchArgs' param_ref: paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + :param str policy_name: policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ + if match_resources is not None: + pulumi.set(__self__, "match_resources", match_resources) + if param_ref is not None: + pulumi.set(__self__, "param_ref", param_ref) + if policy_name is not None: + pulumi.set(__self__, "policy_name", policy_name) + + @property + @pulumi.getter(name="matchResources") + def match_resources(self) -> Optional['outputs.MatchResourcesPatch']: + """ + matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + """ + return pulumi.get(self, "match_resources") + + @property + @pulumi.getter(name="paramRef") + def param_ref(self) -> Optional['outputs.ParamRefPatch']: + """ + paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + """ + return pulumi.get(self, "param_ref") + + @property + @pulumi.getter(name="policyName") + def policy_name(self) -> Optional[str]: + """ + policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + """ + return pulumi.get(self, "policy_name") + + +@pulumi.output_type +class MutatingAdmissionPolicySpec(dict): + """ + MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "failurePolicy": + suggest = "failure_policy" + elif key == "matchConditions": + suggest = "match_conditions" + elif key == "matchConstraints": + suggest = "match_constraints" + elif key == "paramKind": + suggest = "param_kind" + elif key == "reinvocationPolicy": + suggest = "reinvocation_policy" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MutatingAdmissionPolicySpec. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MutatingAdmissionPolicySpec.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MutatingAdmissionPolicySpec.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + failure_policy: Optional[str] = None, + match_conditions: Optional[Sequence['outputs.MatchCondition']] = None, + match_constraints: Optional['outputs.MatchResources'] = None, + mutations: Optional[Sequence['outputs.Mutation']] = None, + param_kind: Optional['outputs.ParamKind'] = None, + reinvocation_policy: Optional[str] = None, + variables: Optional[Sequence['outputs.Variable']] = None): + """ + MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + :param str failure_policy: failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + :param Sequence['MatchConditionArgs'] match_conditions: matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + :param 'MatchResourcesArgs' match_constraints: matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + :param Sequence['MutationArgs'] mutations: mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + :param 'ParamKindArgs' param_kind: paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + :param str reinvocation_policy: reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + :param Sequence['VariableArgs'] variables: variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ + if failure_policy is not None: + pulumi.set(__self__, "failure_policy", failure_policy) + if match_conditions is not None: + pulumi.set(__self__, "match_conditions", match_conditions) + if match_constraints is not None: + pulumi.set(__self__, "match_constraints", match_constraints) + if mutations is not None: + pulumi.set(__self__, "mutations", mutations) + if param_kind is not None: + pulumi.set(__self__, "param_kind", param_kind) + if reinvocation_policy is not None: + pulumi.set(__self__, "reinvocation_policy", reinvocation_policy) + if variables is not None: + pulumi.set(__self__, "variables", variables) + + @property + @pulumi.getter(name="failurePolicy") + def failure_policy(self) -> Optional[str]: + """ + failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + """ + return pulumi.get(self, "failure_policy") + + @property + @pulumi.getter(name="matchConditions") + def match_conditions(self) -> Optional[Sequence['outputs.MatchCondition']]: + """ + matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + """ + return pulumi.get(self, "match_conditions") + + @property + @pulumi.getter(name="matchConstraints") + def match_constraints(self) -> Optional['outputs.MatchResources']: + """ + matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + """ + return pulumi.get(self, "match_constraints") + + @property + @pulumi.getter + def mutations(self) -> Optional[Sequence['outputs.Mutation']]: + """ + mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + """ + return pulumi.get(self, "mutations") + + @property + @pulumi.getter(name="paramKind") + def param_kind(self) -> Optional['outputs.ParamKind']: + """ + paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + """ + return pulumi.get(self, "param_kind") + + @property + @pulumi.getter(name="reinvocationPolicy") + def reinvocation_policy(self) -> Optional[str]: + """ + reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + """ + return pulumi.get(self, "reinvocation_policy") + + @property + @pulumi.getter + def variables(self) -> Optional[Sequence['outputs.Variable']]: + """ + variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ + return pulumi.get(self, "variables") + + +@pulumi.output_type +class MutatingAdmissionPolicySpecPatch(dict): + """ + MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "failurePolicy": + suggest = "failure_policy" + elif key == "matchConditions": + suggest = "match_conditions" + elif key == "matchConstraints": + suggest = "match_constraints" + elif key == "paramKind": + suggest = "param_kind" + elif key == "reinvocationPolicy": + suggest = "reinvocation_policy" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MutatingAdmissionPolicySpecPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MutatingAdmissionPolicySpecPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MutatingAdmissionPolicySpecPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + failure_policy: Optional[str] = None, + match_conditions: Optional[Sequence['outputs.MatchConditionPatch']] = None, + match_constraints: Optional['outputs.MatchResourcesPatch'] = None, + mutations: Optional[Sequence['outputs.MutationPatch']] = None, + param_kind: Optional['outputs.ParamKindPatch'] = None, + reinvocation_policy: Optional[str] = None, + variables: Optional[Sequence['outputs.VariablePatch']] = None): + """ + MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. + :param str failure_policy: failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + :param Sequence['MatchConditionPatchArgs'] match_conditions: matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + :param 'MatchResourcesPatchArgs' match_constraints: matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + :param Sequence['MutationPatchArgs'] mutations: mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + :param 'ParamKindPatchArgs' param_kind: paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + :param str reinvocation_policy: reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + :param Sequence['VariablePatchArgs'] variables: variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + """ + if failure_policy is not None: + pulumi.set(__self__, "failure_policy", failure_policy) + if match_conditions is not None: + pulumi.set(__self__, "match_conditions", match_conditions) + if match_constraints is not None: + pulumi.set(__self__, "match_constraints", match_constraints) + if mutations is not None: + pulumi.set(__self__, "mutations", mutations) + if param_kind is not None: + pulumi.set(__self__, "param_kind", param_kind) + if reinvocation_policy is not None: + pulumi.set(__self__, "reinvocation_policy", reinvocation_policy) + if variables is not None: + pulumi.set(__self__, "variables", variables) + + @property + @pulumi.getter(name="failurePolicy") + def failure_policy(self) -> Optional[str]: + """ + failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. + + A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. + + failurePolicy does not define how validations that evaluate to false are handled. + + Allowed values are Ignore or Fail. Defaults to Fail. + """ + return pulumi.get(self, "failure_policy") + + @property + @pulumi.getter(name="matchConditions") + def match_conditions(self) -> Optional[Sequence['outputs.MatchConditionPatch']]: + """ + matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. + + If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. + + The exact matching logic is (in order): + 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + 3. If any matchCondition evaluates to an error (but none are FALSE): + - If failurePolicy=Fail, reject the request + - If failurePolicy=Ignore, the policy is skipped + """ + return pulumi.get(self, "match_conditions") + + @property + @pulumi.getter(name="matchConstraints") + def match_constraints(self) -> Optional['outputs.MatchResourcesPatch']: + """ + matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + """ + return pulumi.get(self, "match_constraints") @property - @pulumi.getter(name="namespaceSelector") - def namespace_selector(self) -> Optional['_meta.v1.outputs.LabelSelector']: + @pulumi.getter + def mutations(self) -> Optional[Sequence['outputs.MutationPatch']]: """ - NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. - - For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "runlevel", - "operator": "NotIn", - "values": [ - "0", - "1" - ] - } - ] - } - - If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "environment", - "operator": "In", - "values": [ - "prod", - "staging" - ] - } - ] - } - - See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + """ + return pulumi.get(self, "mutations") - Default to the empty LabelSelector, which matches everything. + @property + @pulumi.getter(name="paramKind") + def param_kind(self) -> Optional['outputs.ParamKindPatch']: """ - return pulumi.get(self, "namespace_selector") + paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + """ + return pulumi.get(self, "param_kind") @property - @pulumi.getter(name="objectSelector") - def object_selector(self) -> Optional['_meta.v1.outputs.LabelSelector']: + @pulumi.getter(name="reinvocationPolicy") + def reinvocation_policy(self) -> Optional[str]: """ - ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". + + Never: These mutations will not be called more than once per binding in a single admission evaluation. + + IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. """ - return pulumi.get(self, "object_selector") + return pulumi.get(self, "reinvocation_policy") @property - @pulumi.getter(name="resourceRules") - def resource_rules(self) -> Optional[Sequence['outputs.NamedRuleWithOperations']]: + @pulumi.getter + def variables(self) -> Optional[Sequence['outputs.VariablePatch']]: """ - ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + + The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. """ - return pulumi.get(self, "resource_rules") + return pulumi.get(self, "variables") @pulumi.output_type -class MatchResourcesPatch(dict): +class Mutation(dict): """ - MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + Mutation specifies the CEL expression which is used to apply the Mutation. """ @staticmethod def __key_warning(key: str): suggest = None - if key == "excludeResourceRules": - suggest = "exclude_resource_rules" - elif key == "matchPolicy": - suggest = "match_policy" - elif key == "namespaceSelector": - suggest = "namespace_selector" - elif key == "objectSelector": - suggest = "object_selector" - elif key == "resourceRules": - suggest = "resource_rules" + if key == "patchType": + suggest = "patch_type" + elif key == "applyConfiguration": + suggest = "apply_configuration" + elif key == "jsonPatch": + suggest = "json_patch" if suggest: - pulumi.log.warn(f"Key '{key}' not found in MatchResourcesPatch. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in Mutation. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - MatchResourcesPatch.__key_warning(key) + Mutation.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - MatchResourcesPatch.__key_warning(key) + Mutation.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - exclude_resource_rules: Optional[Sequence['outputs.NamedRuleWithOperationsPatch']] = None, - match_policy: Optional[str] = None, - namespace_selector: Optional['_meta.v1.outputs.LabelSelectorPatch'] = None, - object_selector: Optional['_meta.v1.outputs.LabelSelectorPatch'] = None, - resource_rules: Optional[Sequence['outputs.NamedRuleWithOperationsPatch']] = None): + patch_type: str, + apply_configuration: Optional['outputs.ApplyConfiguration'] = None, + json_patch: Optional['outputs.JSONPatch'] = None): """ - MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - :param Sequence['NamedRuleWithOperationsPatchArgs'] exclude_resource_rules: ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - :param str match_policy: matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". - - - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. - - - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. - - Defaults to "Equivalent" - :param '_meta.v1.LabelSelectorPatchArgs' namespace_selector: NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. - - For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "runlevel", - "operator": "NotIn", - "values": [ - "0", - "1" - ] - } - ] - } - - If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "environment", - "operator": "In", - "values": [ - "prod", - "staging" - ] - } - ] - } - - See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. - - Default to the empty LabelSelector, which matches everything. - :param '_meta.v1.LabelSelectorPatchArgs' object_selector: ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - :param Sequence['NamedRuleWithOperationsPatchArgs'] resource_rules: ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + Mutation specifies the CEL expression which is used to apply the Mutation. + :param str patch_type: patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + :param 'ApplyConfigurationArgs' apply_configuration: applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + :param 'JSONPatchArgs' json_patch: jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. """ - if exclude_resource_rules is not None: - pulumi.set(__self__, "exclude_resource_rules", exclude_resource_rules) - if match_policy is not None: - pulumi.set(__self__, "match_policy", match_policy) - if namespace_selector is not None: - pulumi.set(__self__, "namespace_selector", namespace_selector) - if object_selector is not None: - pulumi.set(__self__, "object_selector", object_selector) - if resource_rules is not None: - pulumi.set(__self__, "resource_rules", resource_rules) + pulumi.set(__self__, "patch_type", patch_type) + if apply_configuration is not None: + pulumi.set(__self__, "apply_configuration", apply_configuration) + if json_patch is not None: + pulumi.set(__self__, "json_patch", json_patch) @property - @pulumi.getter(name="excludeResourceRules") - def exclude_resource_rules(self) -> Optional[Sequence['outputs.NamedRuleWithOperationsPatch']]: + @pulumi.getter(name="patchType") + def patch_type(self) -> str: """ - ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. """ - return pulumi.get(self, "exclude_resource_rules") + return pulumi.get(self, "patch_type") @property - @pulumi.getter(name="matchPolicy") - def match_policy(self) -> Optional[str]: + @pulumi.getter(name="applyConfiguration") + def apply_configuration(self) -> Optional['outputs.ApplyConfiguration']: """ - matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". - - - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. - - - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. - - Defaults to "Equivalent" + applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. """ - return pulumi.get(self, "match_policy") + return pulumi.get(self, "apply_configuration") @property - @pulumi.getter(name="namespaceSelector") - def namespace_selector(self) -> Optional['_meta.v1.outputs.LabelSelectorPatch']: + @pulumi.getter(name="jsonPatch") + def json_patch(self) -> Optional['outputs.JSONPatch']: """ - NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + """ + return pulumi.get(self, "json_patch") - For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "runlevel", - "operator": "NotIn", - "values": [ - "0", - "1" - ] - } - ] - } - If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - "matchExpressions": [ - { - "key": "environment", - "operator": "In", - "values": [ - "prod", - "staging" - ] - } - ] - } +@pulumi.output_type +class MutationPatch(dict): + """ + Mutation specifies the CEL expression which is used to apply the Mutation. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "applyConfiguration": + suggest = "apply_configuration" + elif key == "jsonPatch": + suggest = "json_patch" + elif key == "patchType": + suggest = "patch_type" - See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MutationPatch. Access the value via the '{suggest}' property getter instead.") - Default to the empty LabelSelector, which matches everything. + def __getitem__(self, key: str) -> Any: + MutationPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MutationPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + apply_configuration: Optional['outputs.ApplyConfigurationPatch'] = None, + json_patch: Optional['outputs.JSONPatchPatch'] = None, + patch_type: Optional[str] = None): """ - return pulumi.get(self, "namespace_selector") + Mutation specifies the CEL expression which is used to apply the Mutation. + :param 'ApplyConfigurationPatchArgs' apply_configuration: applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + :param 'JSONPatchPatchArgs' json_patch: jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + :param str patch_type: patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + """ + if apply_configuration is not None: + pulumi.set(__self__, "apply_configuration", apply_configuration) + if json_patch is not None: + pulumi.set(__self__, "json_patch", json_patch) + if patch_type is not None: + pulumi.set(__self__, "patch_type", patch_type) @property - @pulumi.getter(name="objectSelector") - def object_selector(self) -> Optional['_meta.v1.outputs.LabelSelectorPatch']: + @pulumi.getter(name="applyConfiguration") + def apply_configuration(self) -> Optional['outputs.ApplyConfigurationPatch']: """ - ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. """ - return pulumi.get(self, "object_selector") + return pulumi.get(self, "apply_configuration") @property - @pulumi.getter(name="resourceRules") - def resource_rules(self) -> Optional[Sequence['outputs.NamedRuleWithOperationsPatch']]: + @pulumi.getter(name="jsonPatch") + def json_patch(self) -> Optional['outputs.JSONPatchPatch']: """ - ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. """ - return pulumi.get(self, "resource_rules") + return pulumi.get(self, "json_patch") + + @property + @pulumi.getter(name="patchType") + def patch_type(self) -> Optional[str]: + """ + patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + """ + return pulumi.get(self, "patch_type") @pulumi.output_type @@ -1443,10 +2622,6 @@ def status(self) -> Optional['outputs.ValidatingAdmissionPolicyStatus']: class ValidatingAdmissionPolicyBinding(dict): """ ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - - For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - - The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. """ @staticmethod def __key_warning(key: str): @@ -1472,10 +2647,6 @@ def __init__(__self__, *, spec: Optional['outputs.ValidatingAdmissionPolicyBindingSpec'] = None): """ ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. - - For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. - - The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. :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 :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 :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. @@ -1559,7 +2730,7 @@ def __init__(__self__, *, """ ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding. :param 'MatchResourcesArgs' match_resources: MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required. - :param 'ParamRefArgs' param_ref: paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + :param 'ParamRefArgs' param_ref: ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. :param str policy_name: PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. :param Sequence[str] validation_actions: validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions. @@ -1602,7 +2773,7 @@ def match_resources(self) -> Optional['outputs.MatchResources']: @pulumi.getter(name="paramRef") def param_ref(self) -> Optional['outputs.ParamRef']: """ - paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. """ return pulumi.get(self, "param_ref") @@ -1677,7 +2848,7 @@ def __init__(__self__, *, """ ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding. :param 'MatchResourcesPatchArgs' match_resources: MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required. - :param 'ParamRefPatchArgs' param_ref: paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + :param 'ParamRefPatchArgs' param_ref: ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. :param str policy_name: PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. :param Sequence[str] validation_actions: validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions. @@ -1720,7 +2891,7 @@ def match_resources(self) -> Optional['outputs.MatchResourcesPatch']: @pulumi.getter(name="paramRef") def param_ref(self) -> Optional['outputs.ParamRefPatch']: """ - paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. """ return pulumi.get(self, "param_ref") @@ -1799,17 +2970,9 @@ def __init__(__self__, *, variables: Optional[Sequence['outputs.Variable']] = None): """ ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy. - :param Sequence['ValidationArgs'] validations: Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + :param Sequence['ValidationArgs'] validations: Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. :param Sequence['AuditAnnotationArgs'] audit_annotations: auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. - :param str failure_policy: failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + :param str failure_policy: FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. :param Sequence['MatchConditionArgs'] match_conditions: MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. @@ -1844,7 +3007,7 @@ def __init__(__self__, *, @pulumi.getter def validations(self) -> Sequence['outputs.Validation']: """ - Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. """ return pulumi.get(self, "validations") @@ -1860,15 +3023,7 @@ def audit_annotations(self) -> Optional[Sequence['outputs.AuditAnnotation']]: @pulumi.getter(name="failurePolicy") def failure_policy(self) -> Optional[str]: """ - failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. """ return pulumi.get(self, "failure_policy") @@ -1957,15 +3112,7 @@ def __init__(__self__, *, """ ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy. :param Sequence['AuditAnnotationPatchArgs'] audit_annotations: auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. - :param str failure_policy: failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + :param str failure_policy: FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. :param Sequence['MatchConditionPatchArgs'] match_conditions: MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. @@ -1978,7 +3125,7 @@ def __init__(__self__, *, - If failurePolicy=Ignore, the policy is skipped :param 'MatchResourcesPatchArgs' match_constraints: MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required. :param 'ParamKindPatchArgs' param_kind: ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null. - :param Sequence['ValidationPatchArgs'] validations: Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + :param Sequence['ValidationPatchArgs'] validations: Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. :param Sequence['VariablePatchArgs'] variables: Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy. The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic. @@ -2010,15 +3157,7 @@ def audit_annotations(self) -> Optional[Sequence['outputs.AuditAnnotationPatch'] @pulumi.getter(name="failurePolicy") def failure_policy(self) -> Optional[str]: """ - failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. - - A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. - - failurePolicy does not define how validations that evaluate to false are handled. - - When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. - - Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy defines how to handle failures for the admission policy. Failures can occur from invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. Allowed values are Ignore or Fail. Defaults to Fail. """ return pulumi.get(self, "failure_policy") @@ -2059,7 +3198,7 @@ def param_kind(self) -> Optional['outputs.ParamKindPatch']: @pulumi.getter def validations(self) -> Optional[Sequence['outputs.ValidationPatch']]: """ - Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. + Validations contain CEL expressions which is used to apply the validation. A minimum of one validation is required for a policy definition. Required. """ return pulumi.get(self, "validations") @@ -2235,14 +3374,9 @@ def __init__(__self__, *, reason: Optional[str] = None): """ Validation specifies the CEL expression which is used to apply the validation. - :param str expression: Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + :param str expression: Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. @@ -2277,14 +3411,9 @@ def __init__(__self__, *, @pulumi.getter def expression(self) -> str: """ - Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. @@ -2360,14 +3489,9 @@ def __init__(__self__, *, reason: Optional[str] = None): """ Validation specifies the CEL expression which is used to apply the validation. - :param str expression: Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + :param str expression: Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. @@ -2403,14 +3527,9 @@ def __init__(__self__, *, @pulumi.getter def expression(self) -> Optional[str]: """ - Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: + Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the Admission request/response, organized into CEL variables as well as some other useful variables: - - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. - For example, a variable named 'foo' can be accessed as 'variables.foo'. - - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - request resource. + 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1beta1/_inputs.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1beta1/_inputs.py index 4ba0b67ff1..ae1c703977 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1beta1/_inputs.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1beta1/_inputs.py @@ -2999,7 +2999,7 @@ class ValidatingAdmissionPolicyBindingSpecPatchArgsDict(TypedDict): "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3034,7 +3034,7 @@ def __init__(__self__, *, "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3103,7 +3103,7 @@ def validation_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str] "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3149,7 +3149,7 @@ class ValidatingAdmissionPolicyBindingSpecArgsDict(TypedDict): "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3184,7 +3184,7 @@ def __init__(__self__, *, "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -3253,7 +3253,7 @@ def validation_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str] "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. diff --git a/sdk/python/pulumi_kubernetes/admissionregistration/v1beta1/outputs.py b/sdk/python/pulumi_kubernetes/admissionregistration/v1beta1/outputs.py index b2fd181b8b..85052082d7 100644 --- a/sdk/python/pulumi_kubernetes/admissionregistration/v1beta1/outputs.py +++ b/sdk/python/pulumi_kubernetes/admissionregistration/v1beta1/outputs.py @@ -2523,7 +2523,7 @@ def __init__(__self__, *, "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -2580,7 +2580,7 @@ def validation_actions(self) -> Optional[Sequence[str]]: "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -2641,7 +2641,7 @@ def __init__(__self__, *, "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. @@ -2698,7 +2698,7 @@ def validation_actions(self) -> Optional[Sequence[str]]: "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. - "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` + "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\\"message\\": \\"Invalid value\\", {\\"policy\\": \\"policy.example.com\\", {\\"binding\\": \\"policybinding.example.com\\", {\\"expressionIndex\\": \\"1\\", {\\"validationActions\\": [\\"Audit\\"]}]"` Clients should expect to handle additional values by ignoring any values not recognized. diff --git a/sdk/python/pulumi_kubernetes/apiextensions/v1/_inputs.py b/sdk/python/pulumi_kubernetes/apiextensions/v1/_inputs.py index 0c12fcc457..6f62293375 100644 --- a/sdk/python/pulumi_kubernetes/apiextensions/v1/_inputs.py +++ b/sdk/python/pulumi_kubernetes/apiextensions/v1/_inputs.py @@ -2147,7 +2147,7 @@ class JSONSchemaPropsPatchArgsDict(TypedDict): """ format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. """ id: NotRequired[pulumi.Input[str]] items: NotRequired[pulumi.Input[Union['JSONSchemaPropsArgsDict', Sequence[Any]]]] @@ -2286,7 +2286,7 @@ def __init__(__self__, *, :param Any default: default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false. :param pulumi.Input[str] format: format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. :param pulumi.Input[bool] x_kubernetes_embedded_resource: x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata). :param pulumi.Input[bool] x_kubernetes_int_or_string: x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns: @@ -2561,7 +2561,7 @@ def format(self) -> Optional[pulumi.Input[str]]: """ format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. """ return pulumi.get(self, "format") @@ -2903,7 +2903,7 @@ class JSONSchemaPropsArgsDict(TypedDict): """ format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. """ id: NotRequired[pulumi.Input[str]] items: NotRequired[pulumi.Input[Union['JSONSchemaPropsArgsDict', Sequence[Any]]]] @@ -3042,7 +3042,7 @@ def __init__(__self__, *, :param Any default: default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false. :param pulumi.Input[str] format: format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. :param pulumi.Input[bool] x_kubernetes_embedded_resource: x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata). :param pulumi.Input[bool] x_kubernetes_int_or_string: x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns: @@ -3317,7 +3317,7 @@ def format(self) -> Optional[pulumi.Input[str]]: """ format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. """ return pulumi.get(self, "format") diff --git a/sdk/python/pulumi_kubernetes/apiextensions/v1/outputs.py b/sdk/python/pulumi_kubernetes/apiextensions/v1/outputs.py index 42ef0fa6ca..223dc60100 100644 --- a/sdk/python/pulumi_kubernetes/apiextensions/v1/outputs.py +++ b/sdk/python/pulumi_kubernetes/apiextensions/v1/outputs.py @@ -1838,7 +1838,7 @@ def __init__(__self__, *, :param Any default: default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false. :param str format: format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. :param bool x_kubernetes_embedded_resource: x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata). :param bool x_kubernetes_int_or_string: x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns: @@ -2053,7 +2053,7 @@ def format(self) -> Optional[str]: """ format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. """ return pulumi.get(self, "format") @@ -2362,7 +2362,7 @@ def __init__(__self__, *, :param Any default: default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false. :param str format: format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. :param bool x_kubernetes_embedded_resource: x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata). :param bool x_kubernetes_int_or_string: x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns: @@ -2577,7 +2577,7 @@ def format(self) -> Optional[str]: """ format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. """ return pulumi.get(self, "format") diff --git a/sdk/python/pulumi_kubernetes/apps/v1/_inputs.py b/sdk/python/pulumi_kubernetes/apps/v1/_inputs.py index c8d3953b62..62fcb0fb30 100644 --- a/sdk/python/pulumi_kubernetes/apps/v1/_inputs.py +++ b/sdk/python/pulumi_kubernetes/apps/v1/_inputs.py @@ -3149,7 +3149,7 @@ class StatefulSetSpecPatchArgsDict(TypedDict): """ persistent_volume_claim_retention_policy: NotRequired[pulumi.Input['StatefulSetPersistentVolumeClaimRetentionPolicyPatchArgsDict']] """ - persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. """ pod_management_policy: NotRequired[pulumi.Input[str]] """ @@ -3204,7 +3204,7 @@ def __init__(__self__, *, A StatefulSetSpec is the specification of a StatefulSet. :param pulumi.Input[int] min_ready_seconds: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) :param pulumi.Input['StatefulSetOrdinalsPatchArgs'] ordinals: ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. - :param pulumi.Input['StatefulSetPersistentVolumeClaimRetentionPolicyPatchArgs'] persistent_volume_claim_retention_policy: persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + :param pulumi.Input['StatefulSetPersistentVolumeClaimRetentionPolicyPatchArgs'] persistent_volume_claim_retention_policy: persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. :param pulumi.Input[str] pod_management_policy: podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. :param pulumi.Input[int] replicas: replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. :param pulumi.Input[int] revision_history_limit: revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. @@ -3265,7 +3265,7 @@ def ordinals(self, value: Optional[pulumi.Input['StatefulSetOrdinalsPatchArgs']] @pulumi.getter(name="persistentVolumeClaimRetentionPolicy") def persistent_volume_claim_retention_policy(self) -> Optional[pulumi.Input['StatefulSetPersistentVolumeClaimRetentionPolicyPatchArgs']]: """ - persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. """ return pulumi.get(self, "persistent_volume_claim_retention_policy") @@ -3397,7 +3397,7 @@ class StatefulSetSpecArgsDict(TypedDict): """ persistent_volume_claim_retention_policy: NotRequired[pulumi.Input['StatefulSetPersistentVolumeClaimRetentionPolicyArgsDict']] """ - persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. """ pod_management_policy: NotRequired[pulumi.Input[str]] """ @@ -3443,7 +3443,7 @@ def __init__(__self__, *, :param pulumi.Input['_core.v1.PodTemplateSpecArgs'] template: template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format -. For example, a pod in a StatefulSet named "web" with index number "3" would be named "web-3". The only allowed template.spec.restartPolicy value is "Always". :param pulumi.Input[int] min_ready_seconds: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) :param pulumi.Input['StatefulSetOrdinalsArgs'] ordinals: ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. - :param pulumi.Input['StatefulSetPersistentVolumeClaimRetentionPolicyArgs'] persistent_volume_claim_retention_policy: persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + :param pulumi.Input['StatefulSetPersistentVolumeClaimRetentionPolicyArgs'] persistent_volume_claim_retention_policy: persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. :param pulumi.Input[str] pod_management_policy: podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. :param pulumi.Input[int] replicas: replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. :param pulumi.Input[int] revision_history_limit: revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. @@ -3534,7 +3534,7 @@ def ordinals(self, value: Optional[pulumi.Input['StatefulSetOrdinalsArgs']]): @pulumi.getter(name="persistentVolumeClaimRetentionPolicy") def persistent_volume_claim_retention_policy(self) -> Optional[pulumi.Input['StatefulSetPersistentVolumeClaimRetentionPolicyArgs']]: """ - persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. """ return pulumi.get(self, "persistent_volume_claim_retention_policy") diff --git a/sdk/python/pulumi_kubernetes/apps/v1/outputs.py b/sdk/python/pulumi_kubernetes/apps/v1/outputs.py index 7aa5198337..ea6f7f8b85 100644 --- a/sdk/python/pulumi_kubernetes/apps/v1/outputs.py +++ b/sdk/python/pulumi_kubernetes/apps/v1/outputs.py @@ -3443,7 +3443,7 @@ def __init__(__self__, *, :param '_core.v1.PodTemplateSpecArgs' template: template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format -. For example, a pod in a StatefulSet named "web" with index number "3" would be named "web-3". The only allowed template.spec.restartPolicy value is "Always". :param int min_ready_seconds: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) :param 'StatefulSetOrdinalsArgs' ordinals: ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. - :param 'StatefulSetPersistentVolumeClaimRetentionPolicyArgs' persistent_volume_claim_retention_policy: persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + :param 'StatefulSetPersistentVolumeClaimRetentionPolicyArgs' persistent_volume_claim_retention_policy: persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. :param str pod_management_policy: podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. :param int replicas: replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. :param int revision_history_limit: revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. @@ -3514,7 +3514,7 @@ def ordinals(self) -> Optional['outputs.StatefulSetOrdinals']: @pulumi.getter(name="persistentVolumeClaimRetentionPolicy") def persistent_volume_claim_retention_policy(self) -> Optional['outputs.StatefulSetPersistentVolumeClaimRetentionPolicy']: """ - persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. """ return pulumi.get(self, "persistent_volume_claim_retention_policy") @@ -3609,7 +3609,7 @@ def __init__(__self__, *, A StatefulSetSpec is the specification of a StatefulSet. :param int min_ready_seconds: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) :param 'StatefulSetOrdinalsPatchArgs' ordinals: ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. - :param 'StatefulSetPersistentVolumeClaimRetentionPolicyPatchArgs' persistent_volume_claim_retention_policy: persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + :param 'StatefulSetPersistentVolumeClaimRetentionPolicyPatchArgs' persistent_volume_claim_retention_policy: persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. :param str pod_management_policy: podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. :param int replicas: replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. :param int revision_history_limit: revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. @@ -3662,7 +3662,7 @@ def ordinals(self) -> Optional['outputs.StatefulSetOrdinalsPatch']: @pulumi.getter(name="persistentVolumeClaimRetentionPolicy") def persistent_volume_claim_retention_policy(self) -> Optional['outputs.StatefulSetPersistentVolumeClaimRetentionPolicyPatch']: """ - persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. + persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. """ return pulumi.get(self, "persistent_volume_claim_retention_policy") diff --git a/sdk/python/pulumi_kubernetes/autoscaling/v2/_inputs.py b/sdk/python/pulumi_kubernetes/autoscaling/v2/_inputs.py index b8900b46ee..c34ada1fe4 100644 --- a/sdk/python/pulumi_kubernetes/autoscaling/v2/_inputs.py +++ b/sdk/python/pulumi_kubernetes/autoscaling/v2/_inputs.py @@ -1772,7 +1772,7 @@ class MetricSpecPatchArgsDict(TypedDict): """ container_resource: NotRequired[pulumi.Input['ContainerResourceMetricSourcePatchArgsDict']] """ - containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. """ external: NotRequired[pulumi.Input['ExternalMetricSourcePatchArgsDict']] """ @@ -1792,7 +1792,7 @@ class MetricSpecPatchArgsDict(TypedDict): """ type: NotRequired[pulumi.Input[str]] """ - type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. """ elif False: MetricSpecPatchArgsDict: TypeAlias = Mapping[str, Any] @@ -1808,12 +1808,12 @@ def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None): """ MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). - :param pulumi.Input['ContainerResourceMetricSourcePatchArgs'] container_resource: containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + :param pulumi.Input['ContainerResourceMetricSourcePatchArgs'] container_resource: containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. :param pulumi.Input['ExternalMetricSourcePatchArgs'] external: external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). :param pulumi.Input['ObjectMetricSourcePatchArgs'] object: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). :param pulumi.Input['PodsMetricSourcePatchArgs'] pods: pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. :param pulumi.Input['ResourceMetricSourcePatchArgs'] resource: resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. - :param pulumi.Input[str] type: type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + :param pulumi.Input[str] type: type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. """ if container_resource is not None: pulumi.set(__self__, "container_resource", container_resource) @@ -1832,7 +1832,7 @@ def __init__(__self__, *, @pulumi.getter(name="containerResource") def container_resource(self) -> Optional[pulumi.Input['ContainerResourceMetricSourcePatchArgs']]: """ - containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. """ return pulumi.get(self, "container_resource") @@ -1892,7 +1892,7 @@ def resource(self, value: Optional[pulumi.Input['ResourceMetricSourcePatchArgs'] @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. """ return pulumi.get(self, "type") @@ -1908,11 +1908,11 @@ class MetricSpecArgsDict(TypedDict): """ type: pulumi.Input[str] """ - type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. """ container_resource: NotRequired[pulumi.Input['ContainerResourceMetricSourceArgsDict']] """ - containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. """ external: NotRequired[pulumi.Input['ExternalMetricSourceArgsDict']] """ @@ -1944,8 +1944,8 @@ def __init__(__self__, *, resource: Optional[pulumi.Input['ResourceMetricSourceArgs']] = None): """ MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). - :param pulumi.Input[str] type: type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled - :param pulumi.Input['ContainerResourceMetricSourceArgs'] container_resource: containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + :param pulumi.Input[str] type: type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. + :param pulumi.Input['ContainerResourceMetricSourceArgs'] container_resource: containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. :param pulumi.Input['ExternalMetricSourceArgs'] external: external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). :param pulumi.Input['ObjectMetricSourceArgs'] object: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). :param pulumi.Input['PodsMetricSourceArgs'] pods: pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. @@ -1967,7 +1967,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. """ return pulumi.get(self, "type") @@ -1979,7 +1979,7 @@ def type(self, value: pulumi.Input[str]): @pulumi.getter(name="containerResource") def container_resource(self) -> Optional[pulumi.Input['ContainerResourceMetricSourceArgs']]: """ - containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. """ return pulumi.get(self, "container_resource") @@ -2043,7 +2043,7 @@ class MetricStatusArgsDict(TypedDict): """ type: pulumi.Input[str] """ - type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. """ container_resource: NotRequired[pulumi.Input['ContainerResourceMetricStatusArgsDict']] """ @@ -2079,7 +2079,7 @@ def __init__(__self__, *, resource: Optional[pulumi.Input['ResourceMetricStatusArgs']] = None): """ MetricStatus describes the last-read state of a single metric. - :param pulumi.Input[str] type: type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + :param pulumi.Input[str] type: type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. :param pulumi.Input['ContainerResourceMetricStatusArgs'] container_resource: container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. :param pulumi.Input['ExternalMetricStatusArgs'] external: external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). :param pulumi.Input['ObjectMetricStatusArgs'] object: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). @@ -2102,7 +2102,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_kubernetes/autoscaling/v2/outputs.py b/sdk/python/pulumi_kubernetes/autoscaling/v2/outputs.py index cf1ac272ca..a1de79fb55 100644 --- a/sdk/python/pulumi_kubernetes/autoscaling/v2/outputs.py +++ b/sdk/python/pulumi_kubernetes/autoscaling/v2/outputs.py @@ -1644,8 +1644,8 @@ def __init__(__self__, *, resource: Optional['outputs.ResourceMetricSource'] = None): """ MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). - :param str type: type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled - :param 'ContainerResourceMetricSourceArgs' container_resource: containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + :param str type: type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. + :param 'ContainerResourceMetricSourceArgs' container_resource: containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. :param 'ExternalMetricSourceArgs' external: external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). :param 'ObjectMetricSourceArgs' object: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). :param 'PodsMetricSourceArgs' pods: pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. @@ -1667,7 +1667,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. """ return pulumi.get(self, "type") @@ -1675,7 +1675,7 @@ def type(self) -> str: @pulumi.getter(name="containerResource") def container_resource(self) -> Optional['outputs.ContainerResourceMetricSource']: """ - containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. """ return pulumi.get(self, "container_resource") @@ -1743,12 +1743,12 @@ def __init__(__self__, *, type: Optional[str] = None): """ MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). - :param 'ContainerResourceMetricSourcePatchArgs' container_resource: containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + :param 'ContainerResourceMetricSourcePatchArgs' container_resource: containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. :param 'ExternalMetricSourcePatchArgs' external: external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). :param 'ObjectMetricSourcePatchArgs' object: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). :param 'PodsMetricSourcePatchArgs' pods: pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. :param 'ResourceMetricSourcePatchArgs' resource: resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. - :param str type: type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + :param str type: type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. """ if container_resource is not None: pulumi.set(__self__, "container_resource", container_resource) @@ -1767,7 +1767,7 @@ def __init__(__self__, *, @pulumi.getter(name="containerResource") def container_resource(self) -> Optional['outputs.ContainerResourceMetricSourcePatch']: """ - containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. + containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. """ return pulumi.get(self, "container_resource") @@ -1807,7 +1807,7 @@ def resource(self) -> Optional['outputs.ResourceMetricSourcePatch']: @pulumi.getter def type(self) -> Optional[str]: """ - type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. """ return pulumi.get(self, "type") @@ -1843,7 +1843,7 @@ def __init__(__self__, *, resource: Optional['outputs.ResourceMetricStatus'] = None): """ MetricStatus describes the last-read state of a single metric. - :param str type: type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + :param str type: type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. :param 'ContainerResourceMetricStatusArgs' container_resource: container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. :param 'ExternalMetricStatusArgs' external: external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). :param 'ObjectMetricStatusArgs' object: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). @@ -1866,7 +1866,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. """ return pulumi.get(self, "type") @@ -1947,7 +1947,7 @@ def __init__(__self__, *, :param 'ObjectMetricStatusPatchArgs' object: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). :param 'PodsMetricStatusPatchArgs' pods: pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. :param 'ResourceMetricStatusPatchArgs' resource: resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. - :param str type: type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + :param str type: type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. """ if container_resource is not None: pulumi.set(__self__, "container_resource", container_resource) @@ -2006,7 +2006,7 @@ def resource(self) -> Optional['outputs.ResourceMetricStatusPatch']: @pulumi.getter def type(self) -> Optional[str]: """ - type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled + type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_kubernetes/batch/v1/_inputs.py b/sdk/python/pulumi_kubernetes/batch/v1/_inputs.py index 44b7663372..3d200246de 100644 --- a/sdk/python/pulumi_kubernetes/batch/v1/_inputs.py +++ b/sdk/python/pulumi_kubernetes/batch/v1/_inputs.py @@ -792,7 +792,7 @@ class JobSpecPatchArgsDict(TypedDict): """ ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). """ manual_selector: NotRequired[pulumi.Input[bool]] """ @@ -878,7 +878,7 @@ def __init__(__self__, *, :param pulumi.Input[int] completions: Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ :param pulumi.Input[str] managed_by: ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). :param pulumi.Input[bool] manual_selector: manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector :param pulumi.Input[int] max_failed_indexes: Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. Once the number of failed indexes exceeds this number the entire Job is marked as Failed and its execution is terminated. When left as null the job continues execution of all of its indexes and is marked with the `Complete` Job condition. It can only be specified when backoffLimitPerIndex is set. It can be null or up to completions. It is required and must be less than or equal to 10^4 when is completions greater than 10^5. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). :param pulumi.Input[int] parallelism: Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ @@ -1002,7 +1002,7 @@ def managed_by(self) -> Optional[pulumi.Input[str]]: """ ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). """ return pulumi.get(self, "managed_by") @@ -1177,7 +1177,7 @@ class JobSpecArgsDict(TypedDict): """ ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). """ manual_selector: NotRequired[pulumi.Input[bool]] """ @@ -1260,7 +1260,7 @@ def __init__(__self__, *, :param pulumi.Input[int] completions: Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ :param pulumi.Input[str] managed_by: ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). :param pulumi.Input[bool] manual_selector: manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector :param pulumi.Input[int] max_failed_indexes: Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. Once the number of failed indexes exceeds this number the entire Job is marked as Failed and its execution is terminated. When left as null the job continues execution of all of its indexes and is marked with the `Complete` Job condition. It can only be specified when backoffLimitPerIndex is set. It can be null or up to completions. It is required and must be less than or equal to 10^4 when is completions greater than 10^5. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). :param pulumi.Input[int] parallelism: Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ @@ -1394,7 +1394,7 @@ def managed_by(self) -> Optional[pulumi.Input[str]]: """ ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). """ return pulumi.get(self, "managed_by") diff --git a/sdk/python/pulumi_kubernetes/batch/v1/outputs.py b/sdk/python/pulumi_kubernetes/batch/v1/outputs.py index 276f0abcd9..d3d9278b30 100644 --- a/sdk/python/pulumi_kubernetes/batch/v1/outputs.py +++ b/sdk/python/pulumi_kubernetes/batch/v1/outputs.py @@ -947,7 +947,7 @@ def __init__(__self__, *, :param int completions: Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ :param str managed_by: ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). :param bool manual_selector: manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector :param int max_failed_indexes: Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. Once the number of failed indexes exceeds this number the entire Job is marked as Failed and its execution is terminated. When left as null the job continues execution of all of its indexes and is marked with the `Complete` Job condition. It can only be specified when backoffLimitPerIndex is set. It can be null or up to completions. It is required and must be less than or equal to 10^4 when is completions greater than 10^5. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). :param int parallelism: Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ @@ -1057,7 +1057,7 @@ def managed_by(self) -> Optional[str]: """ ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). """ return pulumi.get(self, "managed_by") @@ -1215,7 +1215,7 @@ def __init__(__self__, *, :param int completions: Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ :param str managed_by: ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). :param bool manual_selector: manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector :param int max_failed_indexes: Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. Once the number of failed indexes exceeds this number the entire Job is marked as Failed and its execution is terminated. When left as null the job continues execution of all of its indexes and is marked with the `Complete` Job condition. It can only be specified when backoffLimitPerIndex is set. It can be null or up to completions. It is required and must be less than or equal to 10^4 when is completions greater than 10^5. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). :param int parallelism: Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ @@ -1319,7 +1319,7 @@ def managed_by(self) -> Optional[str]: """ ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). + This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). """ return pulumi.get(self, "managed_by") diff --git a/sdk/python/pulumi_kubernetes/coordination/__init__.py b/sdk/python/pulumi_kubernetes/coordination/__init__.py index fd3bb4dc6d..c9356c0876 100644 --- a/sdk/python/pulumi_kubernetes/coordination/__init__.py +++ b/sdk/python/pulumi_kubernetes/coordination/__init__.py @@ -11,10 +11,13 @@ v1 = __v1 import pulumi_kubernetes.coordination.v1alpha1 as __v1alpha1 v1alpha1 = __v1alpha1 + import pulumi_kubernetes.coordination.v1alpha2 as __v1alpha2 + v1alpha2 = __v1alpha2 import pulumi_kubernetes.coordination.v1beta1 as __v1beta1 v1beta1 = __v1beta1 else: v1 = _utilities.lazy_import('pulumi_kubernetes.coordination.v1') v1alpha1 = _utilities.lazy_import('pulumi_kubernetes.coordination.v1alpha1') + v1alpha2 = _utilities.lazy_import('pulumi_kubernetes.coordination.v1alpha2') v1beta1 = _utilities.lazy_import('pulumi_kubernetes.coordination.v1beta1') diff --git a/sdk/python/pulumi_kubernetes/coordination/v1alpha1/LeaseCandidate.py b/sdk/python/pulumi_kubernetes/coordination/v1alpha1/LeaseCandidate.py index e6f5d6e0fb..0abf602047 100644 --- a/sdk/python/pulumi_kubernetes/coordination/v1alpha1/LeaseCandidate.py +++ b/sdk/python/pulumi_kubernetes/coordination/v1alpha1/LeaseCandidate.py @@ -152,6 +152,8 @@ def _internal_init(__self__, __props__.__dict__["kind"] = 'LeaseCandidate' __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(LeaseCandidate, __self__).__init__( 'kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidate', resource_name, diff --git a/sdk/python/pulumi_kubernetes/coordination/v1alpha1/LeaseCandidatePatch.py b/sdk/python/pulumi_kubernetes/coordination/v1alpha1/LeaseCandidatePatch.py index 42597b083a..0e6971b91b 100644 --- a/sdk/python/pulumi_kubernetes/coordination/v1alpha1/LeaseCandidatePatch.py +++ b/sdk/python/pulumi_kubernetes/coordination/v1alpha1/LeaseCandidatePatch.py @@ -164,6 +164,8 @@ def _internal_init(__self__, __props__.__dict__["kind"] = 'LeaseCandidate' __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(LeaseCandidatePatch, __self__).__init__( 'kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidatePatch', resource_name, diff --git a/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidate.py b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidate.py new file mode 100644 index 0000000000..abac05f735 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidate.py @@ -0,0 +1,216 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['LeaseCandidateInitArgs', 'LeaseCandidate'] + +@pulumi.input_type +class LeaseCandidateInitArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None, + spec: Optional[pulumi.Input['LeaseCandidateSpecArgs']] = None): + """ + The set of arguments for constructing a LeaseCandidate resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + :param pulumi.Input['LeaseCandidateSpecArgs'] spec: spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'coordination.k8s.io/v1alpha2') + if kind is not None: + pulumi.set(__self__, "kind", 'LeaseCandidate') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['LeaseCandidateSpecArgs']]: + """ + spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['LeaseCandidateSpecArgs']]): + pulumi.set(self, "spec", value) + + +class LeaseCandidate(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['LeaseCandidateSpecArgs', 'LeaseCandidateSpecArgsDict']]] = None, + __props__=None): + """ + LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + :param pulumi.Input[Union['LeaseCandidateSpecArgs', 'LeaseCandidateSpecArgsDict']] spec: spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[LeaseCandidateInitArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + + :param str resource_name: The name of the resource. + :param LeaseCandidateInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(LeaseCandidateInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['LeaseCandidateSpecArgs', 'LeaseCandidateSpecArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = LeaseCandidateInitArgs.__new__(LeaseCandidateInitArgs) + + __props__.__dict__["api_version"] = 'coordination.k8s.io/v1alpha2' + __props__.__dict__["kind"] = 'LeaseCandidate' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidate")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(LeaseCandidate, __self__).__init__( + 'kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidate', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'LeaseCandidate': + """ + Get an existing LeaseCandidate resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = LeaseCandidateInitArgs.__new__(LeaseCandidateInitArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return LeaseCandidate(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']: + """ + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.LeaseCandidateSpec']: + """ + spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidateList.py b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidateList.py new file mode 100644 index 0000000000..14a8e064c9 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidateList.py @@ -0,0 +1,215 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['LeaseCandidateListArgs', 'LeaseCandidateList'] + +@pulumi.input_type +class LeaseCandidateListArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input['LeaseCandidateArgs']]], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None): + """ + The set of arguments for constructing a LeaseCandidateList resource. + :param pulumi.Input[Sequence[pulumi.Input['LeaseCandidateArgs']]] items: items is a list of schema objects. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ListMetaArgs'] metadata: Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + pulumi.set(__self__, "items", items) + if api_version is not None: + pulumi.set(__self__, "api_version", 'coordination.k8s.io/v1alpha2') + if kind is not None: + pulumi.set(__self__, "kind", 'LeaseCandidateList') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input['LeaseCandidateArgs']]]: + """ + items is a list of schema objects. + """ + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input['LeaseCandidateArgs']]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class LeaseCandidateList(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LeaseCandidateArgs', 'LeaseCandidateArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + """ + LeaseCandidateList is a list of Lease objects. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[Sequence[pulumi.Input[Union['LeaseCandidateArgs', 'LeaseCandidateArgsDict']]]] items: items is a list of schema objects. + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] metadata: Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: LeaseCandidateListArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + LeaseCandidateList is a list of Lease objects. + + :param str resource_name: The name of the resource. + :param LeaseCandidateListArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(LeaseCandidateListArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LeaseCandidateArgs', 'LeaseCandidateArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = LeaseCandidateListArgs.__new__(LeaseCandidateListArgs) + + __props__.__dict__["api_version"] = 'coordination.k8s.io/v1alpha2' + if items is None and not opts.urn: + raise TypeError("Missing required property 'items'") + __props__.__dict__["items"] = items + __props__.__dict__["kind"] = 'LeaseCandidateList' + __props__.__dict__["metadata"] = metadata + super(LeaseCandidateList, __self__).__init__( + 'kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidateList', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'LeaseCandidateList': + """ + Get an existing LeaseCandidateList resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = LeaseCandidateListArgs.__new__(LeaseCandidateListArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["items"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + return LeaseCandidateList(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def items(self) -> pulumi.Output[Sequence['outputs.LeaseCandidate']]: + """ + items is a list of schema objects. + """ + return pulumi.get(self, "items") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + return pulumi.get(self, "metadata") + diff --git a/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidatePatch.py b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidatePatch.py new file mode 100644 index 0000000000..c2f687f9e2 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/LeaseCandidatePatch.py @@ -0,0 +1,228 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['LeaseCandidatePatchArgs', 'LeaseCandidatePatch'] + +@pulumi.input_type +class LeaseCandidatePatchArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] = None, + spec: Optional[pulumi.Input['LeaseCandidateSpecPatchArgs']] = None): + """ + The set of arguments for constructing a LeaseCandidatePatch resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + :param pulumi.Input['LeaseCandidateSpecPatchArgs'] spec: spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'coordination.k8s.io/v1alpha2') + if kind is not None: + pulumi.set(__self__, "kind", 'LeaseCandidate') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: + """ + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['LeaseCandidateSpecPatchArgs']]: + """ + spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['LeaseCandidateSpecPatchArgs']]): + pulumi.set(self, "spec", value) + + +class LeaseCandidatePatch(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['LeaseCandidateSpecPatchArgs', 'LeaseCandidateSpecPatchArgsDict']]] = None, + __props__=None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']] metadata: More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + :param pulumi.Input[Union['LeaseCandidateSpecPatchArgs', 'LeaseCandidateSpecPatchArgsDict']] spec: spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[LeaseCandidatePatchArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + + :param str resource_name: The name of the resource. + :param LeaseCandidatePatchArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(LeaseCandidatePatchArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['LeaseCandidateSpecPatchArgs', 'LeaseCandidateSpecPatchArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = LeaseCandidatePatchArgs.__new__(LeaseCandidatePatchArgs) + + __props__.__dict__["api_version"] = 'coordination.k8s.io/v1alpha2' + __props__.__dict__["kind"] = 'LeaseCandidate' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidatePatch")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(LeaseCandidatePatch, __self__).__init__( + 'kubernetes:coordination.k8s.io/v1alpha2:LeaseCandidatePatch', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'LeaseCandidatePatch': + """ + Get an existing LeaseCandidatePatch resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = LeaseCandidatePatchArgs.__new__(LeaseCandidatePatchArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return LeaseCandidatePatch(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output[Optional['_meta.v1.outputs.ObjectMetaPatch']]: + """ + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output[Optional['outputs.LeaseCandidateSpecPatch']]: + """ + spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/coordination/v1alpha2/__init__.py b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/__init__.py new file mode 100644 index 0000000000..494428c555 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +from ... import _utilities +import typing +# Export this package's modules as members: +from .LeaseCandidate import * +from .LeaseCandidateList import * +from .LeaseCandidatePatch import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_kubernetes/coordination/v1alpha2/_inputs.py b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/_inputs.py new file mode 100644 index 0000000000..43e4a5adcb --- /dev/null +++ b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/_inputs.py @@ -0,0 +1,393 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from ... import meta as _meta + +__all__ = [ + 'LeaseCandidateSpecPatchArgs', + 'LeaseCandidateSpecPatchArgsDict', + 'LeaseCandidateSpecArgs', + 'LeaseCandidateSpecArgsDict', + 'LeaseCandidateArgs', + 'LeaseCandidateArgsDict', +] + +MYPY = False + +if not MYPY: + class LeaseCandidateSpecPatchArgsDict(TypedDict): + """ + LeaseCandidateSpec is a specification of a Lease. + """ + binary_version: NotRequired[pulumi.Input[str]] + """ + BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + """ + emulation_version: NotRequired[pulumi.Input[str]] + """ + EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + """ + lease_name: NotRequired[pulumi.Input[str]] + """ + LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + """ + ping_time: NotRequired[pulumi.Input[str]] + """ + PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + """ + renew_time: NotRequired[pulumi.Input[str]] + """ + RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + """ + strategy: NotRequired[pulumi.Input[str]] + """ + Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + """ +elif False: + LeaseCandidateSpecPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LeaseCandidateSpecPatchArgs: + def __init__(__self__, *, + binary_version: Optional[pulumi.Input[str]] = None, + emulation_version: Optional[pulumi.Input[str]] = None, + lease_name: Optional[pulumi.Input[str]] = None, + ping_time: Optional[pulumi.Input[str]] = None, + renew_time: Optional[pulumi.Input[str]] = None, + strategy: Optional[pulumi.Input[str]] = None): + """ + LeaseCandidateSpec is a specification of a Lease. + :param pulumi.Input[str] binary_version: BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + :param pulumi.Input[str] emulation_version: EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + :param pulumi.Input[str] lease_name: LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + :param pulumi.Input[str] ping_time: PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + :param pulumi.Input[str] renew_time: RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + :param pulumi.Input[str] strategy: Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + """ + if binary_version is not None: + pulumi.set(__self__, "binary_version", binary_version) + if emulation_version is not None: + pulumi.set(__self__, "emulation_version", emulation_version) + if lease_name is not None: + pulumi.set(__self__, "lease_name", lease_name) + if ping_time is not None: + pulumi.set(__self__, "ping_time", ping_time) + if renew_time is not None: + pulumi.set(__self__, "renew_time", renew_time) + if strategy is not None: + pulumi.set(__self__, "strategy", strategy) + + @property + @pulumi.getter(name="binaryVersion") + def binary_version(self) -> Optional[pulumi.Input[str]]: + """ + BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + """ + return pulumi.get(self, "binary_version") + + @binary_version.setter + def binary_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "binary_version", value) + + @property + @pulumi.getter(name="emulationVersion") + def emulation_version(self) -> Optional[pulumi.Input[str]]: + """ + EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + """ + return pulumi.get(self, "emulation_version") + + @emulation_version.setter + def emulation_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "emulation_version", value) + + @property + @pulumi.getter(name="leaseName") + def lease_name(self) -> Optional[pulumi.Input[str]]: + """ + LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + """ + return pulumi.get(self, "lease_name") + + @lease_name.setter + def lease_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lease_name", value) + + @property + @pulumi.getter(name="pingTime") + def ping_time(self) -> Optional[pulumi.Input[str]]: + """ + PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + """ + return pulumi.get(self, "ping_time") + + @ping_time.setter + def ping_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ping_time", value) + + @property + @pulumi.getter(name="renewTime") + def renew_time(self) -> Optional[pulumi.Input[str]]: + """ + RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + """ + return pulumi.get(self, "renew_time") + + @renew_time.setter + def renew_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "renew_time", value) + + @property + @pulumi.getter + def strategy(self) -> Optional[pulumi.Input[str]]: + """ + Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + """ + return pulumi.get(self, "strategy") + + @strategy.setter + def strategy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "strategy", value) + + +if not MYPY: + class LeaseCandidateSpecArgsDict(TypedDict): + """ + LeaseCandidateSpec is a specification of a Lease. + """ + binary_version: pulumi.Input[str] + """ + BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + """ + lease_name: pulumi.Input[str] + """ + LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + """ + strategy: pulumi.Input[str] + """ + Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + """ + emulation_version: NotRequired[pulumi.Input[str]] + """ + EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + """ + ping_time: NotRequired[pulumi.Input[str]] + """ + PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + """ + renew_time: NotRequired[pulumi.Input[str]] + """ + RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + """ +elif False: + LeaseCandidateSpecArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LeaseCandidateSpecArgs: + def __init__(__self__, *, + binary_version: pulumi.Input[str], + lease_name: pulumi.Input[str], + strategy: pulumi.Input[str], + emulation_version: Optional[pulumi.Input[str]] = None, + ping_time: Optional[pulumi.Input[str]] = None, + renew_time: Optional[pulumi.Input[str]] = None): + """ + LeaseCandidateSpec is a specification of a Lease. + :param pulumi.Input[str] binary_version: BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + :param pulumi.Input[str] lease_name: LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + :param pulumi.Input[str] strategy: Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + :param pulumi.Input[str] emulation_version: EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + :param pulumi.Input[str] ping_time: PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + :param pulumi.Input[str] renew_time: RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + """ + pulumi.set(__self__, "binary_version", binary_version) + pulumi.set(__self__, "lease_name", lease_name) + pulumi.set(__self__, "strategy", strategy) + if emulation_version is not None: + pulumi.set(__self__, "emulation_version", emulation_version) + if ping_time is not None: + pulumi.set(__self__, "ping_time", ping_time) + if renew_time is not None: + pulumi.set(__self__, "renew_time", renew_time) + + @property + @pulumi.getter(name="binaryVersion") + def binary_version(self) -> pulumi.Input[str]: + """ + BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + """ + return pulumi.get(self, "binary_version") + + @binary_version.setter + def binary_version(self, value: pulumi.Input[str]): + pulumi.set(self, "binary_version", value) + + @property + @pulumi.getter(name="leaseName") + def lease_name(self) -> pulumi.Input[str]: + """ + LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + """ + return pulumi.get(self, "lease_name") + + @lease_name.setter + def lease_name(self, value: pulumi.Input[str]): + pulumi.set(self, "lease_name", value) + + @property + @pulumi.getter + def strategy(self) -> pulumi.Input[str]: + """ + Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + """ + return pulumi.get(self, "strategy") + + @strategy.setter + def strategy(self, value: pulumi.Input[str]): + pulumi.set(self, "strategy", value) + + @property + @pulumi.getter(name="emulationVersion") + def emulation_version(self) -> Optional[pulumi.Input[str]]: + """ + EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + """ + return pulumi.get(self, "emulation_version") + + @emulation_version.setter + def emulation_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "emulation_version", value) + + @property + @pulumi.getter(name="pingTime") + def ping_time(self) -> Optional[pulumi.Input[str]]: + """ + PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + """ + return pulumi.get(self, "ping_time") + + @ping_time.setter + def ping_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ping_time", value) + + @property + @pulumi.getter(name="renewTime") + def renew_time(self) -> Optional[pulumi.Input[str]]: + """ + RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + """ + return pulumi.get(self, "renew_time") + + @renew_time.setter + def renew_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "renew_time", value) + + +if not MYPY: + class LeaseCandidateArgsDict(TypedDict): + """ + LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + """ + api_version: NotRequired[pulumi.Input[str]] + """ + 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 + """ + kind: NotRequired[pulumi.Input[str]] + """ + 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 + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + spec: NotRequired[pulumi.Input['LeaseCandidateSpecArgsDict']] + """ + spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ +elif False: + LeaseCandidateArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LeaseCandidateArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None, + spec: Optional[pulumi.Input['LeaseCandidateSpecArgs']] = None): + """ + LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + :param pulumi.Input['LeaseCandidateSpecArgs'] spec: spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'coordination.k8s.io/v1alpha2') + if kind is not None: + pulumi.set(__self__, "kind", 'LeaseCandidate') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['LeaseCandidateSpecArgs']]: + """ + spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['LeaseCandidateSpecArgs']]): + pulumi.set(self, "spec", value) + + diff --git a/sdk/python/pulumi_kubernetes/coordination/v1alpha2/outputs.py b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/outputs.py new file mode 100644 index 0000000000..637222397d --- /dev/null +++ b/sdk/python/pulumi_kubernetes/coordination/v1alpha2/outputs.py @@ -0,0 +1,313 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta + +__all__ = [ + 'LeaseCandidate', + 'LeaseCandidateSpec', + 'LeaseCandidateSpecPatch', +] + +@pulumi.output_type +class LeaseCandidate(dict): + """ + LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiVersion": + suggest = "api_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LeaseCandidate. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LeaseCandidate.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LeaseCandidate.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + api_version: Optional[str] = None, + kind: Optional[str] = None, + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None, + spec: Optional['outputs.LeaseCandidateSpec'] = None): + """ + LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. + :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 + :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 + :param '_meta.v1.ObjectMetaArgs' metadata: More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + :param 'LeaseCandidateSpecArgs' spec: spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'coordination.k8s.io/v1alpha2') + if kind is not None: + pulumi.set(__self__, "kind", 'LeaseCandidate') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> Optional['outputs.LeaseCandidateSpec']: + """ + spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + return pulumi.get(self, "spec") + + +@pulumi.output_type +class LeaseCandidateSpec(dict): + """ + LeaseCandidateSpec is a specification of a Lease. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "binaryVersion": + suggest = "binary_version" + elif key == "leaseName": + suggest = "lease_name" + elif key == "emulationVersion": + suggest = "emulation_version" + elif key == "pingTime": + suggest = "ping_time" + elif key == "renewTime": + suggest = "renew_time" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LeaseCandidateSpec. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LeaseCandidateSpec.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LeaseCandidateSpec.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + binary_version: str, + lease_name: str, + strategy: str, + emulation_version: Optional[str] = None, + ping_time: Optional[str] = None, + renew_time: Optional[str] = None): + """ + LeaseCandidateSpec is a specification of a Lease. + :param str binary_version: BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + :param str lease_name: LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + :param str strategy: Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + :param str emulation_version: EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + :param str ping_time: PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + :param str renew_time: RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + """ + pulumi.set(__self__, "binary_version", binary_version) + pulumi.set(__self__, "lease_name", lease_name) + pulumi.set(__self__, "strategy", strategy) + if emulation_version is not None: + pulumi.set(__self__, "emulation_version", emulation_version) + if ping_time is not None: + pulumi.set(__self__, "ping_time", ping_time) + if renew_time is not None: + pulumi.set(__self__, "renew_time", renew_time) + + @property + @pulumi.getter(name="binaryVersion") + def binary_version(self) -> str: + """ + BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + """ + return pulumi.get(self, "binary_version") + + @property + @pulumi.getter(name="leaseName") + def lease_name(self) -> str: + """ + LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + """ + return pulumi.get(self, "lease_name") + + @property + @pulumi.getter + def strategy(self) -> str: + """ + Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + """ + return pulumi.get(self, "strategy") + + @property + @pulumi.getter(name="emulationVersion") + def emulation_version(self) -> Optional[str]: + """ + EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + """ + return pulumi.get(self, "emulation_version") + + @property + @pulumi.getter(name="pingTime") + def ping_time(self) -> Optional[str]: + """ + PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + """ + return pulumi.get(self, "ping_time") + + @property + @pulumi.getter(name="renewTime") + def renew_time(self) -> Optional[str]: + """ + RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + """ + return pulumi.get(self, "renew_time") + + +@pulumi.output_type +class LeaseCandidateSpecPatch(dict): + """ + LeaseCandidateSpec is a specification of a Lease. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "binaryVersion": + suggest = "binary_version" + elif key == "emulationVersion": + suggest = "emulation_version" + elif key == "leaseName": + suggest = "lease_name" + elif key == "pingTime": + suggest = "ping_time" + elif key == "renewTime": + suggest = "renew_time" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LeaseCandidateSpecPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LeaseCandidateSpecPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LeaseCandidateSpecPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + binary_version: Optional[str] = None, + emulation_version: Optional[str] = None, + lease_name: Optional[str] = None, + ping_time: Optional[str] = None, + renew_time: Optional[str] = None, + strategy: Optional[str] = None): + """ + LeaseCandidateSpec is a specification of a Lease. + :param str binary_version: BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + :param str emulation_version: EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + :param str lease_name: LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + :param str ping_time: PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + :param str renew_time: RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + :param str strategy: Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + """ + if binary_version is not None: + pulumi.set(__self__, "binary_version", binary_version) + if emulation_version is not None: + pulumi.set(__self__, "emulation_version", emulation_version) + if lease_name is not None: + pulumi.set(__self__, "lease_name", lease_name) + if ping_time is not None: + pulumi.set(__self__, "ping_time", ping_time) + if renew_time is not None: + pulumi.set(__self__, "renew_time", renew_time) + if strategy is not None: + pulumi.set(__self__, "strategy", strategy) + + @property + @pulumi.getter(name="binaryVersion") + def binary_version(self) -> Optional[str]: + """ + BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required. + """ + return pulumi.get(self, "binary_version") + + @property + @pulumi.getter(name="emulationVersion") + def emulation_version(self) -> Optional[str]: + """ + EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" + """ + return pulumi.get(self, "emulation_version") + + @property + @pulumi.getter(name="leaseName") + def lease_name(self) -> Optional[str]: + """ + LeaseName is the name of the lease for which this candidate is contending. This field is immutable. + """ + return pulumi.get(self, "lease_name") + + @property + @pulumi.getter(name="pingTime") + def ping_time(self) -> Optional[str]: + """ + PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. + """ + return pulumi.get(self, "ping_time") + + @property + @pulumi.getter(name="renewTime") + def renew_time(self) -> Optional[str]: + """ + RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. + """ + return pulumi.get(self, "renew_time") + + @property + @pulumi.getter + def strategy(self) -> Optional[str]: + """ + Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. + """ + return pulumi.get(self, "strategy") + + diff --git a/sdk/python/pulumi_kubernetes/core/v1/Binding.py b/sdk/python/pulumi_kubernetes/core/v1/Binding.py index 276d721615..2ff9a6d72f 100644 --- a/sdk/python/pulumi_kubernetes/core/v1/Binding.py +++ b/sdk/python/pulumi_kubernetes/core/v1/Binding.py @@ -101,7 +101,7 @@ def __init__(__self__, target: Optional[pulumi.Input[Union['ObjectReferenceArgs', 'ObjectReferenceArgsDict']]] = None, __props__=None): """ - Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + Binding ties one object to another; for example, a pod is bound to a node by a scheduler. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. @@ -117,7 +117,7 @@ def __init__(__self__, args: BindingArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + Binding ties one object to another; for example, a pod is bound to a node by a scheduler. :param str resource_name: The name of the resource. :param BindingArgs args: The arguments to use to populate this resource's properties. diff --git a/sdk/python/pulumi_kubernetes/core/v1/BindingPatch.py b/sdk/python/pulumi_kubernetes/core/v1/BindingPatch.py index 04e46598ad..7cda02ebe3 100644 --- a/sdk/python/pulumi_kubernetes/core/v1/BindingPatch.py +++ b/sdk/python/pulumi_kubernetes/core/v1/BindingPatch.py @@ -108,7 +108,7 @@ def __init__(__self__, Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. - Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + Binding ties one object to another; for example, a pod is bound to a node by a scheduler. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. @@ -130,7 +130,7 @@ def __init__(__self__, Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. - Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. + Binding ties one object to another; for example, a pod is bound to a node by a scheduler. :param str resource_name: The name of the resource. :param BindingPatchArgs args: The arguments to use to populate this resource's properties. diff --git a/sdk/python/pulumi_kubernetes/core/v1/ServiceAccount.py b/sdk/python/pulumi_kubernetes/core/v1/ServiceAccount.py index 681d40b5f7..bade2fc319 100644 --- a/sdk/python/pulumi_kubernetes/core/v1/ServiceAccount.py +++ b/sdk/python/pulumi_kubernetes/core/v1/ServiceAccount.py @@ -35,7 +35,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['LocalObjectReferenceArgs']]] image_pull_secrets: ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - :param pulumi.Input[Sequence[pulumi.Input['ObjectReferenceArgs']]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + :param pulumi.Input[Sequence[pulumi.Input['ObjectReferenceArgs']]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ if api_version is not None: pulumi.set(__self__, "api_version", 'v1') @@ -114,7 +114,7 @@ def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): @pulumi.getter def secrets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ObjectReferenceArgs']]]]: """ - Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ return pulumi.get(self, "secrets") @@ -145,7 +145,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[Union['LocalObjectReferenceArgs', 'LocalObjectReferenceArgsDict']]]] image_pull_secrets: ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - :param pulumi.Input[Sequence[pulumi.Input[Union['ObjectReferenceArgs', 'ObjectReferenceArgsDict']]]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + :param pulumi.Input[Sequence[pulumi.Input[Union['ObjectReferenceArgs', 'ObjectReferenceArgsDict']]]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ ... @overload @@ -266,7 +266,7 @@ def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']: @pulumi.getter def secrets(self) -> pulumi.Output[Sequence['outputs.ObjectReference']]: """ - Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ return pulumi.get(self, "secrets") diff --git a/sdk/python/pulumi_kubernetes/core/v1/ServiceAccountPatch.py b/sdk/python/pulumi_kubernetes/core/v1/ServiceAccountPatch.py index 4fbb9edb1f..24d1bf66ee 100644 --- a/sdk/python/pulumi_kubernetes/core/v1/ServiceAccountPatch.py +++ b/sdk/python/pulumi_kubernetes/core/v1/ServiceAccountPatch.py @@ -35,7 +35,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['LocalObjectReferencePatchArgs']]] image_pull_secrets: ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - :param pulumi.Input[Sequence[pulumi.Input['ObjectReferencePatchArgs']]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + :param pulumi.Input[Sequence[pulumi.Input['ObjectReferencePatchArgs']]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ if api_version is not None: pulumi.set(__self__, "api_version", 'v1') @@ -114,7 +114,7 @@ def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] @pulumi.getter def secrets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ObjectReferencePatchArgs']]]]: """ - Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ return pulumi.get(self, "secrets") @@ -151,7 +151,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[Union['LocalObjectReferencePatchArgs', 'LocalObjectReferencePatchArgsDict']]]] image_pull_secrets: ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds :param pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']] metadata: Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - :param pulumi.Input[Sequence[pulumi.Input[Union['ObjectReferencePatchArgs', 'ObjectReferencePatchArgsDict']]]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + :param pulumi.Input[Sequence[pulumi.Input[Union['ObjectReferencePatchArgs', 'ObjectReferencePatchArgsDict']]]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ ... @overload @@ -278,7 +278,7 @@ def metadata(self) -> pulumi.Output[Optional['_meta.v1.outputs.ObjectMetaPatch'] @pulumi.getter def secrets(self) -> pulumi.Output[Optional[Sequence['outputs.ObjectReferencePatch']]]: """ - Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ return pulumi.get(self, "secrets") diff --git a/sdk/python/pulumi_kubernetes/core/v1/_inputs.py b/sdk/python/pulumi_kubernetes/core/v1/_inputs.py index 5856737fbd..9f13eb2910 100644 --- a/sdk/python/pulumi_kubernetes/core/v1/_inputs.py +++ b/sdk/python/pulumi_kubernetes/core/v1/_inputs.py @@ -1838,7 +1838,7 @@ def read_only(self, value: Optional[pulumi.Input[bool]]): if not MYPY: class CSIPersistentVolumeSourcePatchArgsDict(TypedDict): """ - Represents storage that is managed by an external CSI volume driver (Beta feature) + Represents storage that is managed by an external CSI volume driver """ controller_expand_secret_ref: NotRequired[pulumi.Input['SecretReferencePatchArgsDict']] """ @@ -1897,7 +1897,7 @@ def __init__(__self__, *, volume_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, volume_handle: Optional[pulumi.Input[str]] = None): """ - Represents storage that is managed by an external CSI volume driver (Beta feature) + Represents storage that is managed by an external CSI volume driver :param pulumi.Input['SecretReferencePatchArgs'] controller_expand_secret_ref: controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. :param pulumi.Input['SecretReferencePatchArgs'] controller_publish_secret_ref: controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. :param pulumi.Input[str] driver: driver is the name of the driver to use for this volume. Required. @@ -2054,7 +2054,7 @@ def volume_handle(self, value: Optional[pulumi.Input[str]]): if not MYPY: class CSIPersistentVolumeSourceArgsDict(TypedDict): """ - Represents storage that is managed by an external CSI volume driver (Beta feature) + Represents storage that is managed by an external CSI volume driver """ driver: pulumi.Input[str] """ @@ -2113,7 +2113,7 @@ def __init__(__self__, *, read_only: Optional[pulumi.Input[bool]] = None, volume_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ - Represents storage that is managed by an external CSI volume driver (Beta feature) + Represents storage that is managed by an external CSI volume driver :param pulumi.Input[str] driver: driver is the name of the driver to use for this volume. Required. :param pulumi.Input[str] volume_handle: volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required. :param pulumi.Input['SecretReferenceArgs'] controller_expand_secret_ref: controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. @@ -11691,6 +11691,9 @@ def read_only(self, value: Optional[pulumi.Input[bool]]): if not MYPY: class GRPCActionPatchArgsDict(TypedDict): + """ + GRPCAction specifies an action involving a GRPC service. + """ port: NotRequired[pulumi.Input[int]] """ Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -11710,6 +11713,7 @@ def __init__(__self__, *, port: Optional[pulumi.Input[int]] = None, service: Optional[pulumi.Input[str]] = None): """ + GRPCAction specifies an action involving a GRPC service. :param pulumi.Input[int] port: Port number of the gRPC service. Number must be in the range 1 to 65535. :param pulumi.Input[str] service: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). @@ -11749,6 +11753,9 @@ def service(self, value: Optional[pulumi.Input[str]]): if not MYPY: class GRPCActionArgsDict(TypedDict): + """ + GRPCAction specifies an action involving a GRPC service. + """ port: pulumi.Input[int] """ Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -11768,6 +11775,7 @@ def __init__(__self__, *, port: pulumi.Input[int], service: Optional[pulumi.Input[str]] = None): """ + GRPCAction specifies an action involving a GRPC service. :param pulumi.Input[int] port: Port number of the gRPC service. Number must be in the range 1 to 65535. :param pulumi.Input[str] service: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). @@ -14108,19 +14116,19 @@ class LifecycleHandlerPatchArgsDict(TypedDict): """ exec_: NotRequired[pulumi.Input['ExecActionPatchArgsDict']] """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ http_get: NotRequired[pulumi.Input['HTTPGetActionPatchArgsDict']] """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ sleep: NotRequired[pulumi.Input['SleepActionPatchArgsDict']] """ - Sleep represents the duration that the container should sleep before being terminated. + Sleep represents a duration that the container should sleep. """ tcp_socket: NotRequired[pulumi.Input['TCPSocketActionPatchArgsDict']] """ - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ elif False: LifecycleHandlerPatchArgsDict: TypeAlias = Mapping[str, Any] @@ -14134,10 +14142,10 @@ def __init__(__self__, *, tcp_socket: Optional[pulumi.Input['TCPSocketActionPatchArgs']] = None): """ LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. - :param pulumi.Input['ExecActionPatchArgs'] exec_: Exec specifies the action to take. - :param pulumi.Input['HTTPGetActionPatchArgs'] http_get: HTTPGet specifies the http request to perform. - :param pulumi.Input['SleepActionPatchArgs'] sleep: Sleep represents the duration that the container should sleep before being terminated. - :param pulumi.Input['TCPSocketActionPatchArgs'] tcp_socket: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + :param pulumi.Input['ExecActionPatchArgs'] exec_: Exec specifies a command to execute in the container. + :param pulumi.Input['HTTPGetActionPatchArgs'] http_get: HTTPGet specifies an HTTP GET request to perform. + :param pulumi.Input['SleepActionPatchArgs'] sleep: Sleep represents a duration that the container should sleep. + :param pulumi.Input['TCPSocketActionPatchArgs'] tcp_socket: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ if exec_ is not None: pulumi.set(__self__, "exec_", exec_) @@ -14152,7 +14160,7 @@ def __init__(__self__, *, @pulumi.getter(name="exec") def exec_(self) -> Optional[pulumi.Input['ExecActionPatchArgs']]: """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ return pulumi.get(self, "exec_") @@ -14164,7 +14172,7 @@ def exec_(self, value: Optional[pulumi.Input['ExecActionPatchArgs']]): @pulumi.getter(name="httpGet") def http_get(self) -> Optional[pulumi.Input['HTTPGetActionPatchArgs']]: """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ return pulumi.get(self, "http_get") @@ -14176,7 +14184,7 @@ def http_get(self, value: Optional[pulumi.Input['HTTPGetActionPatchArgs']]): @pulumi.getter def sleep(self) -> Optional[pulumi.Input['SleepActionPatchArgs']]: """ - Sleep represents the duration that the container should sleep before being terminated. + Sleep represents a duration that the container should sleep. """ return pulumi.get(self, "sleep") @@ -14188,7 +14196,7 @@ def sleep(self, value: Optional[pulumi.Input['SleepActionPatchArgs']]): @pulumi.getter(name="tcpSocket") def tcp_socket(self) -> Optional[pulumi.Input['TCPSocketActionPatchArgs']]: """ - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ return pulumi.get(self, "tcp_socket") @@ -14204,19 +14212,19 @@ class LifecycleHandlerArgsDict(TypedDict): """ exec_: NotRequired[pulumi.Input['ExecActionArgsDict']] """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ http_get: NotRequired[pulumi.Input['HTTPGetActionArgsDict']] """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ sleep: NotRequired[pulumi.Input['SleepActionArgsDict']] """ - Sleep represents the duration that the container should sleep before being terminated. + Sleep represents a duration that the container should sleep. """ tcp_socket: NotRequired[pulumi.Input['TCPSocketActionArgsDict']] """ - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ elif False: LifecycleHandlerArgsDict: TypeAlias = Mapping[str, Any] @@ -14230,10 +14238,10 @@ def __init__(__self__, *, tcp_socket: Optional[pulumi.Input['TCPSocketActionArgs']] = None): """ LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. - :param pulumi.Input['ExecActionArgs'] exec_: Exec specifies the action to take. - :param pulumi.Input['HTTPGetActionArgs'] http_get: HTTPGet specifies the http request to perform. - :param pulumi.Input['SleepActionArgs'] sleep: Sleep represents the duration that the container should sleep before being terminated. - :param pulumi.Input['TCPSocketActionArgs'] tcp_socket: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + :param pulumi.Input['ExecActionArgs'] exec_: Exec specifies a command to execute in the container. + :param pulumi.Input['HTTPGetActionArgs'] http_get: HTTPGet specifies an HTTP GET request to perform. + :param pulumi.Input['SleepActionArgs'] sleep: Sleep represents a duration that the container should sleep. + :param pulumi.Input['TCPSocketActionArgs'] tcp_socket: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ if exec_ is not None: pulumi.set(__self__, "exec_", exec_) @@ -14248,7 +14256,7 @@ def __init__(__self__, *, @pulumi.getter(name="exec") def exec_(self) -> Optional[pulumi.Input['ExecActionArgs']]: """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ return pulumi.get(self, "exec_") @@ -14260,7 +14268,7 @@ def exec_(self, value: Optional[pulumi.Input['ExecActionArgs']]): @pulumi.getter(name="httpGet") def http_get(self) -> Optional[pulumi.Input['HTTPGetActionArgs']]: """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ return pulumi.get(self, "http_get") @@ -14272,7 +14280,7 @@ def http_get(self, value: Optional[pulumi.Input['HTTPGetActionArgs']]): @pulumi.getter def sleep(self) -> Optional[pulumi.Input['SleepActionArgs']]: """ - Sleep represents the duration that the container should sleep before being terminated. + Sleep represents a duration that the container should sleep. """ return pulumi.get(self, "sleep") @@ -14284,7 +14292,7 @@ def sleep(self, value: Optional[pulumi.Input['SleepActionArgs']]): @pulumi.getter(name="tcpSocket") def tcp_socket(self) -> Optional[pulumi.Input['TCPSocketActionArgs']]: """ - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ return pulumi.get(self, "tcp_socket") @@ -15124,7 +15132,7 @@ def name(self, value: Optional[pulumi.Input[str]]): if not MYPY: class LocalVolumeSourcePatchArgsDict(TypedDict): """ - Local represents directly-attached storage with node affinity (Beta feature) + Local represents directly-attached storage with node affinity """ fs_type: NotRequired[pulumi.Input[str]] """ @@ -15143,7 +15151,7 @@ def __init__(__self__, *, fs_type: Optional[pulumi.Input[str]] = None, path: Optional[pulumi.Input[str]] = None): """ - Local represents directly-attached storage with node affinity (Beta feature) + Local represents directly-attached storage with node affinity :param pulumi.Input[str] fs_type: fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. :param pulumi.Input[str] path: path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). """ @@ -15180,7 +15188,7 @@ def path(self, value: Optional[pulumi.Input[str]]): if not MYPY: class LocalVolumeSourceArgsDict(TypedDict): """ - Local represents directly-attached storage with node affinity (Beta feature) + Local represents directly-attached storage with node affinity """ path: pulumi.Input[str] """ @@ -15199,7 +15207,7 @@ def __init__(__self__, *, path: pulumi.Input[str], fs_type: Optional[pulumi.Input[str]] = None): """ - Local represents directly-attached storage with node affinity (Beta feature) + Local represents directly-attached storage with node affinity :param pulumi.Input[str] path: path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). :param pulumi.Input[str] fs_type: fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. """ @@ -15561,8 +15569,17 @@ class NamespaceConditionArgsDict(TypedDict): Type of namespace controller condition. """ last_transition_time: NotRequired[pulumi.Input[str]] + """ + Last time the condition transitioned from one status to another. + """ message: NotRequired[pulumi.Input[str]] + """ + Human-readable message indicating details about last transition. + """ reason: NotRequired[pulumi.Input[str]] + """ + Unique, one-word, CamelCase reason for the condition's last transition. + """ elif False: NamespaceConditionArgsDict: TypeAlias = Mapping[str, Any] @@ -15578,6 +15595,9 @@ def __init__(__self__, *, NamespaceCondition contains details about state of namespace. :param pulumi.Input[str] status: Status of the condition, one of True, False, Unknown. :param pulumi.Input[str] type: Type of namespace controller condition. + :param pulumi.Input[str] last_transition_time: Last time the condition transitioned from one status to another. + :param pulumi.Input[str] message: Human-readable message indicating details about last transition. + :param pulumi.Input[str] reason: Unique, one-word, CamelCase reason for the condition's last transition. """ pulumi.set(__self__, "status", status) pulumi.set(__self__, "type", type) @@ -15615,6 +15635,9 @@ def type(self, value: pulumi.Input[str]): @property @pulumi.getter(name="lastTransitionTime") def last_transition_time(self) -> Optional[pulumi.Input[str]]: + """ + Last time the condition transitioned from one status to another. + """ return pulumi.get(self, "last_transition_time") @last_transition_time.setter @@ -15624,6 +15647,9 @@ def last_transition_time(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def message(self) -> Optional[pulumi.Input[str]]: + """ + Human-readable message indicating details about last transition. + """ return pulumi.get(self, "message") @message.setter @@ -15633,6 +15659,9 @@ def message(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def reason(self) -> Optional[pulumi.Input[str]]: + """ + Unique, one-word, CamelCase reason for the condition's last transition. + """ return pulumi.get(self, "reason") @reason.setter @@ -17188,7 +17217,7 @@ class NodeStatusArgsDict(TypedDict): """ addresses: NotRequired[pulumi.Input[Sequence[pulumi.Input['NodeAddressArgsDict']]]] """ - List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). """ allocatable: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ @@ -17200,7 +17229,7 @@ class NodeStatusArgsDict(TypedDict): """ conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['NodeConditionArgsDict']]]] """ - Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition """ config: NotRequired[pulumi.Input['NodeConfigStatusArgsDict']] """ @@ -17220,7 +17249,7 @@ class NodeStatusArgsDict(TypedDict): """ node_info: NotRequired[pulumi.Input['NodeSystemInfoArgsDict']] """ - Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info """ phase: NotRequired[pulumi.Input[str]] """ @@ -17259,15 +17288,15 @@ def __init__(__self__, *, volumes_in_use: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ NodeStatus is information about the current status of a node. - :param pulumi.Input[Sequence[pulumi.Input['NodeAddressArgs']]] addresses: List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + :param pulumi.Input[Sequence[pulumi.Input['NodeAddressArgs']]] addresses: List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] allocatable: Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] capacity: Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity - :param pulumi.Input[Sequence[pulumi.Input['NodeConditionArgs']]] conditions: Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + :param pulumi.Input[Sequence[pulumi.Input['NodeConditionArgs']]] conditions: Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition :param pulumi.Input['NodeConfigStatusArgs'] config: Status of the config assigned to the node via the dynamic Kubelet config feature. :param pulumi.Input['NodeDaemonEndpointsArgs'] daemon_endpoints: Endpoints of daemons running on the Node. :param pulumi.Input['NodeFeaturesArgs'] features: Features describes the set of features implemented by the CRI implementation. :param pulumi.Input[Sequence[pulumi.Input['ContainerImageArgs']]] images: List of container images on this node - :param pulumi.Input['NodeSystemInfoArgs'] node_info: Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + :param pulumi.Input['NodeSystemInfoArgs'] node_info: Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info :param pulumi.Input[str] phase: NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated. :param pulumi.Input[Sequence[pulumi.Input['NodeRuntimeHandlerArgs']]] runtime_handlers: The available runtime handlers. :param pulumi.Input[Sequence[pulumi.Input['AttachedVolumeArgs']]] volumes_attached: List of volumes that are attached to the node. @@ -17304,7 +17333,7 @@ def __init__(__self__, *, @pulumi.getter def addresses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeAddressArgs']]]]: """ - List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). """ return pulumi.get(self, "addresses") @@ -17340,7 +17369,7 @@ def capacity(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]] @pulumi.getter def conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeConditionArgs']]]]: """ - Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition """ return pulumi.get(self, "conditions") @@ -17400,7 +17429,7 @@ def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerIm @pulumi.getter(name="nodeInfo") def node_info(self) -> Optional[pulumi.Input['NodeSystemInfoArgs']]: """ - Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info """ return pulumi.get(self, "node_info") @@ -18224,7 +18253,13 @@ class PersistentVolumeClaimConditionPatchArgsDict(TypedDict): reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. """ status: NotRequired[pulumi.Input[str]] + """ + Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + """ type: NotRequired[pulumi.Input[str]] + """ + Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + """ elif False: PersistentVolumeClaimConditionPatchArgsDict: TypeAlias = Mapping[str, Any] @@ -18243,6 +18278,8 @@ def __init__(__self__, *, :param pulumi.Input[str] last_transition_time: lastTransitionTime is the time the condition transitioned from one status to another. :param pulumi.Input[str] message: message is the human-readable message indicating details about last transition. :param pulumi.Input[str] reason: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. + :param pulumi.Input[str] status: Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + :param pulumi.Input[str] type: Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about """ if last_probe_time is not None: pulumi.set(__self__, "last_probe_time", last_probe_time) @@ -18308,6 +18345,9 @@ def reason(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def status(self) -> Optional[pulumi.Input[str]]: + """ + Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + """ return pulumi.get(self, "status") @status.setter @@ -18317,6 +18357,9 @@ def status(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: + """ + Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + """ return pulumi.get(self, "type") @type.setter @@ -18330,7 +18373,13 @@ class PersistentVolumeClaimConditionArgsDict(TypedDict): PersistentVolumeClaimCondition contains details about state of pvc """ status: pulumi.Input[str] + """ + Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + """ type: pulumi.Input[str] + """ + Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + """ last_probe_time: NotRequired[pulumi.Input[str]] """ lastProbeTime is the time we probed the condition. @@ -18361,6 +18410,8 @@ def __init__(__self__, *, reason: Optional[pulumi.Input[str]] = None): """ PersistentVolumeClaimCondition contains details about state of pvc + :param pulumi.Input[str] status: Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + :param pulumi.Input[str] type: Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about :param pulumi.Input[str] last_probe_time: lastProbeTime is the time we probed the condition. :param pulumi.Input[str] last_transition_time: lastTransitionTime is the time the condition transitioned from one status to another. :param pulumi.Input[str] message: message is the human-readable message indicating details about last transition. @@ -18380,6 +18431,9 @@ def __init__(__self__, *, @property @pulumi.getter def status(self) -> pulumi.Input[str]: + """ + Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + """ return pulumi.get(self, "status") @status.setter @@ -18389,6 +18443,9 @@ def status(self, value: pulumi.Input[str]): @property @pulumi.getter def type(self) -> pulumi.Input[str]: + """ + Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + """ return pulumi.get(self, "type") @type.setter @@ -19969,15 +20026,15 @@ class PersistentVolumeSpecPatchArgsDict(TypedDict): """ aws_elastic_block_store: NotRequired[pulumi.Input['AWSElasticBlockStoreVolumeSourcePatchArgsDict']] """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ azure_disk: NotRequired[pulumi.Input['AzureDiskVolumeSourcePatchArgsDict']] """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ azure_file: NotRequired[pulumi.Input['AzureFilePersistentVolumeSourcePatchArgsDict']] """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ capacity: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ @@ -19985,11 +20042,11 @@ class PersistentVolumeSpecPatchArgsDict(TypedDict): """ cephfs: NotRequired[pulumi.Input['CephFSPersistentVolumeSourcePatchArgsDict']] """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ cinder: NotRequired[pulumi.Input['CinderPersistentVolumeSourcePatchArgsDict']] """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ claim_ref: NotRequired[pulumi.Input['ObjectReferencePatchArgsDict']] """ @@ -19997,7 +20054,7 @@ class PersistentVolumeSpecPatchArgsDict(TypedDict): """ csi: NotRequired[pulumi.Input['CSIPersistentVolumeSourcePatchArgsDict']] """ - csi represents storage that is handled by an external CSI driver (Beta feature). + csi represents storage that is handled by an external CSI driver. """ fc: NotRequired[pulumi.Input['FCVolumeSourcePatchArgsDict']] """ @@ -20005,19 +20062,19 @@ class PersistentVolumeSpecPatchArgsDict(TypedDict): """ flex_volume: NotRequired[pulumi.Input['FlexPersistentVolumeSourcePatchArgsDict']] """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ flocker: NotRequired[pulumi.Input['FlockerVolumeSourcePatchArgsDict']] """ - flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ gce_persistent_disk: NotRequired[pulumi.Input['GCEPersistentDiskVolumeSourcePatchArgsDict']] """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ glusterfs: NotRequired[pulumi.Input['GlusterfsPersistentVolumeSourcePatchArgsDict']] """ - glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ host_path: NotRequired[pulumi.Input['HostPathVolumeSourcePatchArgsDict']] """ @@ -20049,23 +20106,23 @@ class PersistentVolumeSpecPatchArgsDict(TypedDict): """ photon_persistent_disk: NotRequired[pulumi.Input['PhotonPersistentDiskVolumeSourcePatchArgsDict']] """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ portworx_volume: NotRequired[pulumi.Input['PortworxVolumeSourcePatchArgsDict']] """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ quobyte: NotRequired[pulumi.Input['QuobyteVolumeSourcePatchArgsDict']] """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ rbd: NotRequired[pulumi.Input['RBDPersistentVolumeSourcePatchArgsDict']] """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ scale_io: NotRequired[pulumi.Input['ScaleIOPersistentVolumeSourcePatchArgsDict']] """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ storage_class_name: NotRequired[pulumi.Input[str]] """ @@ -20073,7 +20130,7 @@ class PersistentVolumeSpecPatchArgsDict(TypedDict): """ storageos: NotRequired[pulumi.Input['StorageOSPersistentVolumeSourcePatchArgsDict']] """ - storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md """ volume_attributes_class_name: NotRequired[pulumi.Input[str]] """ @@ -20085,7 +20142,7 @@ class PersistentVolumeSpecPatchArgsDict(TypedDict): """ vsphere_volume: NotRequired[pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgsDict']] """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ elif False: PersistentVolumeSpecPatchArgsDict: TypeAlias = Mapping[str, Any] @@ -20127,19 +20184,19 @@ def __init__(__self__, *, """ PersistentVolumeSpec is the specification of a persistent volume. :param pulumi.Input[Sequence[pulumi.Input[str]]] access_modes: accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes - :param pulumi.Input['AWSElasticBlockStoreVolumeSourcePatchArgs'] aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - :param pulumi.Input['AzureDiskVolumeSourcePatchArgs'] azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. - :param pulumi.Input['AzureFilePersistentVolumeSourcePatchArgs'] azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. + :param pulumi.Input['AWSElasticBlockStoreVolumeSourcePatchArgs'] aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + :param pulumi.Input['AzureDiskVolumeSourcePatchArgs'] azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. + :param pulumi.Input['AzureFilePersistentVolumeSourcePatchArgs'] azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] capacity: capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity - :param pulumi.Input['CephFSPersistentVolumeSourcePatchArgs'] cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime - :param pulumi.Input['CinderPersistentVolumeSourcePatchArgs'] cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + :param pulumi.Input['CephFSPersistentVolumeSourcePatchArgs'] cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. + :param pulumi.Input['CinderPersistentVolumeSourcePatchArgs'] cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md :param pulumi.Input['ObjectReferencePatchArgs'] claim_ref: claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding - :param pulumi.Input['CSIPersistentVolumeSourcePatchArgs'] csi: csi represents storage that is handled by an external CSI driver (Beta feature). + :param pulumi.Input['CSIPersistentVolumeSourcePatchArgs'] csi: csi represents storage that is handled by an external CSI driver. :param pulumi.Input['FCVolumeSourcePatchArgs'] fc: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. - :param pulumi.Input['FlexPersistentVolumeSourcePatchArgs'] flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. - :param pulumi.Input['FlockerVolumeSourcePatchArgs'] flocker: flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running - :param pulumi.Input['GCEPersistentDiskVolumeSourcePatchArgs'] gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - :param pulumi.Input['GlusterfsPersistentVolumeSourcePatchArgs'] glusterfs: glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + :param pulumi.Input['FlexPersistentVolumeSourcePatchArgs'] flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. + :param pulumi.Input['FlockerVolumeSourcePatchArgs'] flocker: flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. + :param pulumi.Input['GCEPersistentDiskVolumeSourcePatchArgs'] gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + :param pulumi.Input['GlusterfsPersistentVolumeSourcePatchArgs'] glusterfs: glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md :param pulumi.Input['HostPathVolumeSourcePatchArgs'] host_path: hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath :param pulumi.Input['ISCSIPersistentVolumeSourcePatchArgs'] iscsi: iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. :param pulumi.Input['LocalVolumeSourcePatchArgs'] local: local represents directly-attached storage with node affinity @@ -20147,16 +20204,16 @@ def __init__(__self__, *, :param pulumi.Input['NFSVolumeSourcePatchArgs'] nfs: nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs :param pulumi.Input['VolumeNodeAffinityPatchArgs'] node_affinity: nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. :param pulumi.Input[str] persistent_volume_reclaim_policy: persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming - :param pulumi.Input['PhotonPersistentDiskVolumeSourcePatchArgs'] photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine - :param pulumi.Input['PortworxVolumeSourcePatchArgs'] portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine - :param pulumi.Input['QuobyteVolumeSourcePatchArgs'] quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime - :param pulumi.Input['RBDPersistentVolumeSourcePatchArgs'] rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md - :param pulumi.Input['ScaleIOPersistentVolumeSourcePatchArgs'] scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + :param pulumi.Input['PhotonPersistentDiskVolumeSourcePatchArgs'] photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. + :param pulumi.Input['PortworxVolumeSourcePatchArgs'] portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. + :param pulumi.Input['QuobyteVolumeSourcePatchArgs'] quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. + :param pulumi.Input['RBDPersistentVolumeSourcePatchArgs'] rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + :param pulumi.Input['ScaleIOPersistentVolumeSourcePatchArgs'] scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. :param pulumi.Input[str] storage_class_name: storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. - :param pulumi.Input['StorageOSPersistentVolumeSourcePatchArgs'] storageos: storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + :param pulumi.Input['StorageOSPersistentVolumeSourcePatchArgs'] storageos: storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md :param pulumi.Input[str] volume_attributes_class_name: Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). :param pulumi.Input[str] volume_mode: volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. - :param pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgs'] vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + :param pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgs'] vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ if access_modes is not None: pulumi.set(__self__, "access_modes", access_modes) @@ -20237,7 +20294,7 @@ def access_modes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]] @pulumi.getter(name="awsElasticBlockStore") def aws_elastic_block_store(self) -> Optional[pulumi.Input['AWSElasticBlockStoreVolumeSourcePatchArgs']]: """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ return pulumi.get(self, "aws_elastic_block_store") @@ -20249,7 +20306,7 @@ def aws_elastic_block_store(self, value: Optional[pulumi.Input['AWSElasticBlockS @pulumi.getter(name="azureDisk") def azure_disk(self) -> Optional[pulumi.Input['AzureDiskVolumeSourcePatchArgs']]: """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_disk") @@ -20261,7 +20318,7 @@ def azure_disk(self, value: Optional[pulumi.Input['AzureDiskVolumeSourcePatchArg @pulumi.getter(name="azureFile") def azure_file(self) -> Optional[pulumi.Input['AzureFilePersistentVolumeSourcePatchArgs']]: """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_file") @@ -20285,7 +20342,7 @@ def capacity(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]] @pulumi.getter def cephfs(self) -> Optional[pulumi.Input['CephFSPersistentVolumeSourcePatchArgs']]: """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ return pulumi.get(self, "cephfs") @@ -20297,7 +20354,7 @@ def cephfs(self, value: Optional[pulumi.Input['CephFSPersistentVolumeSourcePatch @pulumi.getter def cinder(self) -> Optional[pulumi.Input['CinderPersistentVolumeSourcePatchArgs']]: """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ return pulumi.get(self, "cinder") @@ -20321,7 +20378,7 @@ def claim_ref(self, value: Optional[pulumi.Input['ObjectReferencePatchArgs']]): @pulumi.getter def csi(self) -> Optional[pulumi.Input['CSIPersistentVolumeSourcePatchArgs']]: """ - csi represents storage that is handled by an external CSI driver (Beta feature). + csi represents storage that is handled by an external CSI driver. """ return pulumi.get(self, "csi") @@ -20345,7 +20402,7 @@ def fc(self, value: Optional[pulumi.Input['FCVolumeSourcePatchArgs']]): @pulumi.getter(name="flexVolume") def flex_volume(self) -> Optional[pulumi.Input['FlexPersistentVolumeSourcePatchArgs']]: """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ return pulumi.get(self, "flex_volume") @@ -20357,7 +20414,7 @@ def flex_volume(self, value: Optional[pulumi.Input['FlexPersistentVolumeSourcePa @pulumi.getter def flocker(self) -> Optional[pulumi.Input['FlockerVolumeSourcePatchArgs']]: """ - flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ return pulumi.get(self, "flocker") @@ -20369,7 +20426,7 @@ def flocker(self, value: Optional[pulumi.Input['FlockerVolumeSourcePatchArgs']]) @pulumi.getter(name="gcePersistentDisk") def gce_persistent_disk(self) -> Optional[pulumi.Input['GCEPersistentDiskVolumeSourcePatchArgs']]: """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ return pulumi.get(self, "gce_persistent_disk") @@ -20381,7 +20438,7 @@ def gce_persistent_disk(self, value: Optional[pulumi.Input['GCEPersistentDiskVol @pulumi.getter def glusterfs(self) -> Optional[pulumi.Input['GlusterfsPersistentVolumeSourcePatchArgs']]: """ - glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ return pulumi.get(self, "glusterfs") @@ -20477,7 +20534,7 @@ def persistent_volume_reclaim_policy(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="photonPersistentDisk") def photon_persistent_disk(self) -> Optional[pulumi.Input['PhotonPersistentDiskVolumeSourcePatchArgs']]: """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ return pulumi.get(self, "photon_persistent_disk") @@ -20489,7 +20546,7 @@ def photon_persistent_disk(self, value: Optional[pulumi.Input['PhotonPersistentD @pulumi.getter(name="portworxVolume") def portworx_volume(self) -> Optional[pulumi.Input['PortworxVolumeSourcePatchArgs']]: """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ return pulumi.get(self, "portworx_volume") @@ -20501,7 +20558,7 @@ def portworx_volume(self, value: Optional[pulumi.Input['PortworxVolumeSourcePatc @pulumi.getter def quobyte(self) -> Optional[pulumi.Input['QuobyteVolumeSourcePatchArgs']]: """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ return pulumi.get(self, "quobyte") @@ -20513,7 +20570,7 @@ def quobyte(self, value: Optional[pulumi.Input['QuobyteVolumeSourcePatchArgs']]) @pulumi.getter def rbd(self) -> Optional[pulumi.Input['RBDPersistentVolumeSourcePatchArgs']]: """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ return pulumi.get(self, "rbd") @@ -20525,7 +20582,7 @@ def rbd(self, value: Optional[pulumi.Input['RBDPersistentVolumeSourcePatchArgs'] @pulumi.getter(name="scaleIO") def scale_io(self) -> Optional[pulumi.Input['ScaleIOPersistentVolumeSourcePatchArgs']]: """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ return pulumi.get(self, "scale_io") @@ -20549,7 +20606,7 @@ def storage_class_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def storageos(self) -> Optional[pulumi.Input['StorageOSPersistentVolumeSourcePatchArgs']]: """ - storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md """ return pulumi.get(self, "storageos") @@ -20585,7 +20642,7 @@ def volume_mode(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="vsphereVolume") def vsphere_volume(self) -> Optional[pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgs']]: """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ return pulumi.get(self, "vsphere_volume") @@ -20605,15 +20662,15 @@ class PersistentVolumeSpecArgsDict(TypedDict): """ aws_elastic_block_store: NotRequired[pulumi.Input['AWSElasticBlockStoreVolumeSourceArgsDict']] """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ azure_disk: NotRequired[pulumi.Input['AzureDiskVolumeSourceArgsDict']] """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ azure_file: NotRequired[pulumi.Input['AzureFilePersistentVolumeSourceArgsDict']] """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ capacity: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ @@ -20621,11 +20678,11 @@ class PersistentVolumeSpecArgsDict(TypedDict): """ cephfs: NotRequired[pulumi.Input['CephFSPersistentVolumeSourceArgsDict']] """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ cinder: NotRequired[pulumi.Input['CinderPersistentVolumeSourceArgsDict']] """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ claim_ref: NotRequired[pulumi.Input['ObjectReferenceArgsDict']] """ @@ -20633,7 +20690,7 @@ class PersistentVolumeSpecArgsDict(TypedDict): """ csi: NotRequired[pulumi.Input['CSIPersistentVolumeSourceArgsDict']] """ - csi represents storage that is handled by an external CSI driver (Beta feature). + csi represents storage that is handled by an external CSI driver. """ fc: NotRequired[pulumi.Input['FCVolumeSourceArgsDict']] """ @@ -20641,19 +20698,19 @@ class PersistentVolumeSpecArgsDict(TypedDict): """ flex_volume: NotRequired[pulumi.Input['FlexPersistentVolumeSourceArgsDict']] """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ flocker: NotRequired[pulumi.Input['FlockerVolumeSourceArgsDict']] """ - flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ gce_persistent_disk: NotRequired[pulumi.Input['GCEPersistentDiskVolumeSourceArgsDict']] """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ glusterfs: NotRequired[pulumi.Input['GlusterfsPersistentVolumeSourceArgsDict']] """ - glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ host_path: NotRequired[pulumi.Input['HostPathVolumeSourceArgsDict']] """ @@ -20685,23 +20742,23 @@ class PersistentVolumeSpecArgsDict(TypedDict): """ photon_persistent_disk: NotRequired[pulumi.Input['PhotonPersistentDiskVolumeSourceArgsDict']] """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ portworx_volume: NotRequired[pulumi.Input['PortworxVolumeSourceArgsDict']] """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ quobyte: NotRequired[pulumi.Input['QuobyteVolumeSourceArgsDict']] """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ rbd: NotRequired[pulumi.Input['RBDPersistentVolumeSourceArgsDict']] """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ scale_io: NotRequired[pulumi.Input['ScaleIOPersistentVolumeSourceArgsDict']] """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ storage_class_name: NotRequired[pulumi.Input[str]] """ @@ -20709,7 +20766,7 @@ class PersistentVolumeSpecArgsDict(TypedDict): """ storageos: NotRequired[pulumi.Input['StorageOSPersistentVolumeSourceArgsDict']] """ - storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md """ volume_attributes_class_name: NotRequired[pulumi.Input[str]] """ @@ -20721,7 +20778,7 @@ class PersistentVolumeSpecArgsDict(TypedDict): """ vsphere_volume: NotRequired[pulumi.Input['VsphereVirtualDiskVolumeSourceArgsDict']] """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ elif False: PersistentVolumeSpecArgsDict: TypeAlias = Mapping[str, Any] @@ -20763,19 +20820,19 @@ def __init__(__self__, *, """ PersistentVolumeSpec is the specification of a persistent volume. :param pulumi.Input[Sequence[pulumi.Input[str]]] access_modes: accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes - :param pulumi.Input['AWSElasticBlockStoreVolumeSourceArgs'] aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - :param pulumi.Input['AzureDiskVolumeSourceArgs'] azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. - :param pulumi.Input['AzureFilePersistentVolumeSourceArgs'] azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. + :param pulumi.Input['AWSElasticBlockStoreVolumeSourceArgs'] aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + :param pulumi.Input['AzureDiskVolumeSourceArgs'] azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. + :param pulumi.Input['AzureFilePersistentVolumeSourceArgs'] azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] capacity: capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity - :param pulumi.Input['CephFSPersistentVolumeSourceArgs'] cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime - :param pulumi.Input['CinderPersistentVolumeSourceArgs'] cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + :param pulumi.Input['CephFSPersistentVolumeSourceArgs'] cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. + :param pulumi.Input['CinderPersistentVolumeSourceArgs'] cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md :param pulumi.Input['ObjectReferenceArgs'] claim_ref: claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding - :param pulumi.Input['CSIPersistentVolumeSourceArgs'] csi: csi represents storage that is handled by an external CSI driver (Beta feature). + :param pulumi.Input['CSIPersistentVolumeSourceArgs'] csi: csi represents storage that is handled by an external CSI driver. :param pulumi.Input['FCVolumeSourceArgs'] fc: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. - :param pulumi.Input['FlexPersistentVolumeSourceArgs'] flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. - :param pulumi.Input['FlockerVolumeSourceArgs'] flocker: flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running - :param pulumi.Input['GCEPersistentDiskVolumeSourceArgs'] gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - :param pulumi.Input['GlusterfsPersistentVolumeSourceArgs'] glusterfs: glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + :param pulumi.Input['FlexPersistentVolumeSourceArgs'] flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. + :param pulumi.Input['FlockerVolumeSourceArgs'] flocker: flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. + :param pulumi.Input['GCEPersistentDiskVolumeSourceArgs'] gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + :param pulumi.Input['GlusterfsPersistentVolumeSourceArgs'] glusterfs: glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md :param pulumi.Input['HostPathVolumeSourceArgs'] host_path: hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath :param pulumi.Input['ISCSIPersistentVolumeSourceArgs'] iscsi: iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. :param pulumi.Input['LocalVolumeSourceArgs'] local: local represents directly-attached storage with node affinity @@ -20783,16 +20840,16 @@ def __init__(__self__, *, :param pulumi.Input['NFSVolumeSourceArgs'] nfs: nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs :param pulumi.Input['VolumeNodeAffinityArgs'] node_affinity: nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. :param pulumi.Input[str] persistent_volume_reclaim_policy: persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming - :param pulumi.Input['PhotonPersistentDiskVolumeSourceArgs'] photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine - :param pulumi.Input['PortworxVolumeSourceArgs'] portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine - :param pulumi.Input['QuobyteVolumeSourceArgs'] quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime - :param pulumi.Input['RBDPersistentVolumeSourceArgs'] rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md - :param pulumi.Input['ScaleIOPersistentVolumeSourceArgs'] scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + :param pulumi.Input['PhotonPersistentDiskVolumeSourceArgs'] photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. + :param pulumi.Input['PortworxVolumeSourceArgs'] portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. + :param pulumi.Input['QuobyteVolumeSourceArgs'] quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. + :param pulumi.Input['RBDPersistentVolumeSourceArgs'] rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + :param pulumi.Input['ScaleIOPersistentVolumeSourceArgs'] scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. :param pulumi.Input[str] storage_class_name: storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. - :param pulumi.Input['StorageOSPersistentVolumeSourceArgs'] storageos: storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + :param pulumi.Input['StorageOSPersistentVolumeSourceArgs'] storageos: storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md :param pulumi.Input[str] volume_attributes_class_name: Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). :param pulumi.Input[str] volume_mode: volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. - :param pulumi.Input['VsphereVirtualDiskVolumeSourceArgs'] vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + :param pulumi.Input['VsphereVirtualDiskVolumeSourceArgs'] vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ if access_modes is not None: pulumi.set(__self__, "access_modes", access_modes) @@ -20873,7 +20930,7 @@ def access_modes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]] @pulumi.getter(name="awsElasticBlockStore") def aws_elastic_block_store(self) -> Optional[pulumi.Input['AWSElasticBlockStoreVolumeSourceArgs']]: """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ return pulumi.get(self, "aws_elastic_block_store") @@ -20885,7 +20942,7 @@ def aws_elastic_block_store(self, value: Optional[pulumi.Input['AWSElasticBlockS @pulumi.getter(name="azureDisk") def azure_disk(self) -> Optional[pulumi.Input['AzureDiskVolumeSourceArgs']]: """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_disk") @@ -20897,7 +20954,7 @@ def azure_disk(self, value: Optional[pulumi.Input['AzureDiskVolumeSourceArgs']]) @pulumi.getter(name="azureFile") def azure_file(self) -> Optional[pulumi.Input['AzureFilePersistentVolumeSourceArgs']]: """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_file") @@ -20921,7 +20978,7 @@ def capacity(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]] @pulumi.getter def cephfs(self) -> Optional[pulumi.Input['CephFSPersistentVolumeSourceArgs']]: """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ return pulumi.get(self, "cephfs") @@ -20933,7 +20990,7 @@ def cephfs(self, value: Optional[pulumi.Input['CephFSPersistentVolumeSourceArgs' @pulumi.getter def cinder(self) -> Optional[pulumi.Input['CinderPersistentVolumeSourceArgs']]: """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ return pulumi.get(self, "cinder") @@ -20957,7 +21014,7 @@ def claim_ref(self, value: Optional[pulumi.Input['ObjectReferenceArgs']]): @pulumi.getter def csi(self) -> Optional[pulumi.Input['CSIPersistentVolumeSourceArgs']]: """ - csi represents storage that is handled by an external CSI driver (Beta feature). + csi represents storage that is handled by an external CSI driver. """ return pulumi.get(self, "csi") @@ -20981,7 +21038,7 @@ def fc(self, value: Optional[pulumi.Input['FCVolumeSourceArgs']]): @pulumi.getter(name="flexVolume") def flex_volume(self) -> Optional[pulumi.Input['FlexPersistentVolumeSourceArgs']]: """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ return pulumi.get(self, "flex_volume") @@ -20993,7 +21050,7 @@ def flex_volume(self, value: Optional[pulumi.Input['FlexPersistentVolumeSourceAr @pulumi.getter def flocker(self) -> Optional[pulumi.Input['FlockerVolumeSourceArgs']]: """ - flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ return pulumi.get(self, "flocker") @@ -21005,7 +21062,7 @@ def flocker(self, value: Optional[pulumi.Input['FlockerVolumeSourceArgs']]): @pulumi.getter(name="gcePersistentDisk") def gce_persistent_disk(self) -> Optional[pulumi.Input['GCEPersistentDiskVolumeSourceArgs']]: """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ return pulumi.get(self, "gce_persistent_disk") @@ -21017,7 +21074,7 @@ def gce_persistent_disk(self, value: Optional[pulumi.Input['GCEPersistentDiskVol @pulumi.getter def glusterfs(self) -> Optional[pulumi.Input['GlusterfsPersistentVolumeSourceArgs']]: """ - glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ return pulumi.get(self, "glusterfs") @@ -21113,7 +21170,7 @@ def persistent_volume_reclaim_policy(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="photonPersistentDisk") def photon_persistent_disk(self) -> Optional[pulumi.Input['PhotonPersistentDiskVolumeSourceArgs']]: """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ return pulumi.get(self, "photon_persistent_disk") @@ -21125,7 +21182,7 @@ def photon_persistent_disk(self, value: Optional[pulumi.Input['PhotonPersistentD @pulumi.getter(name="portworxVolume") def portworx_volume(self) -> Optional[pulumi.Input['PortworxVolumeSourceArgs']]: """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ return pulumi.get(self, "portworx_volume") @@ -21137,7 +21194,7 @@ def portworx_volume(self, value: Optional[pulumi.Input['PortworxVolumeSourceArgs @pulumi.getter def quobyte(self) -> Optional[pulumi.Input['QuobyteVolumeSourceArgs']]: """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ return pulumi.get(self, "quobyte") @@ -21149,7 +21206,7 @@ def quobyte(self, value: Optional[pulumi.Input['QuobyteVolumeSourceArgs']]): @pulumi.getter def rbd(self) -> Optional[pulumi.Input['RBDPersistentVolumeSourceArgs']]: """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ return pulumi.get(self, "rbd") @@ -21161,7 +21218,7 @@ def rbd(self, value: Optional[pulumi.Input['RBDPersistentVolumeSourceArgs']]): @pulumi.getter(name="scaleIO") def scale_io(self) -> Optional[pulumi.Input['ScaleIOPersistentVolumeSourceArgs']]: """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ return pulumi.get(self, "scale_io") @@ -21185,7 +21242,7 @@ def storage_class_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def storageos(self) -> Optional[pulumi.Input['StorageOSPersistentVolumeSourceArgs']]: """ - storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md """ return pulumi.get(self, "storageos") @@ -21221,7 +21278,7 @@ def volume_mode(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="vsphereVolume") def vsphere_volume(self) -> Optional[pulumi.Input['VsphereVirtualDiskVolumeSourceArgs']]: """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ return pulumi.get(self, "vsphere_volume") @@ -22189,9 +22246,12 @@ class PodDNSConfigOptionPatchArgsDict(TypedDict): """ name: NotRequired[pulumi.Input[str]] """ - Required. + Name is this DNS resolver option's name. Required. """ value: NotRequired[pulumi.Input[str]] + """ + Value is this DNS resolver option's value. + """ elif False: PodDNSConfigOptionPatchArgsDict: TypeAlias = Mapping[str, Any] @@ -22202,7 +22262,8 @@ def __init__(__self__, *, value: Optional[pulumi.Input[str]] = None): """ PodDNSConfigOption defines DNS resolver options of a pod. - :param pulumi.Input[str] name: Required. + :param pulumi.Input[str] name: Name is this DNS resolver option's name. Required. + :param pulumi.Input[str] value: Value is this DNS resolver option's value. """ if name is not None: pulumi.set(__self__, "name", name) @@ -22213,7 +22274,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Required. + Name is this DNS resolver option's name. Required. """ return pulumi.get(self, "name") @@ -22224,6 +22285,9 @@ def name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def value(self) -> Optional[pulumi.Input[str]]: + """ + Value is this DNS resolver option's value. + """ return pulumi.get(self, "value") @value.setter @@ -22238,9 +22302,12 @@ class PodDNSConfigOptionArgsDict(TypedDict): """ name: NotRequired[pulumi.Input[str]] """ - Required. + Name is this DNS resolver option's name. Required. """ value: NotRequired[pulumi.Input[str]] + """ + Value is this DNS resolver option's value. + """ elif False: PodDNSConfigOptionArgsDict: TypeAlias = Mapping[str, Any] @@ -22251,7 +22318,8 @@ def __init__(__self__, *, value: Optional[pulumi.Input[str]] = None): """ PodDNSConfigOption defines DNS resolver options of a pod. - :param pulumi.Input[str] name: Required. + :param pulumi.Input[str] name: Name is this DNS resolver option's name. Required. + :param pulumi.Input[str] value: Value is this DNS resolver option's value. """ if name is not None: pulumi.set(__self__, "name", name) @@ -22262,7 +22330,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Required. + Name is this DNS resolver option's name. Required. """ return pulumi.get(self, "name") @@ -22273,6 +22341,9 @@ def name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def value(self) -> Optional[pulumi.Input[str]]: + """ + Value is this DNS resolver option's value. + """ return pulumi.get(self, "value") @value.setter @@ -23015,6 +23086,20 @@ class PodSecurityContextPatchArgsDict(TypedDict): """ The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. """ + se_linux_change_policy: NotRequired[pulumi.Input[str]] + """ + seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + """ se_linux_options: NotRequired[pulumi.Input['SELinuxOptionsPatchArgsDict']] """ The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. @@ -23051,6 +23136,7 @@ def __init__(__self__, *, run_as_group: Optional[pulumi.Input[int]] = None, run_as_non_root: Optional[pulumi.Input[bool]] = None, run_as_user: Optional[pulumi.Input[int]] = None, + se_linux_change_policy: Optional[pulumi.Input[str]] = None, se_linux_options: Optional[pulumi.Input['SELinuxOptionsPatchArgs']] = None, seccomp_profile: Optional[pulumi.Input['SeccompProfilePatchArgs']] = None, supplemental_groups: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, @@ -23069,6 +23155,17 @@ def __init__(__self__, *, :param pulumi.Input[int] run_as_group: The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. :param pulumi.Input[bool] run_as_non_root: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. :param pulumi.Input[int] run_as_user: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + :param pulumi.Input[str] se_linux_change_policy: seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. :param pulumi.Input['SELinuxOptionsPatchArgs'] se_linux_options: The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. :param pulumi.Input['SeccompProfilePatchArgs'] seccomp_profile: The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. :param pulumi.Input[Sequence[pulumi.Input[int]]] supplemental_groups: A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. @@ -23088,6 +23185,8 @@ def __init__(__self__, *, pulumi.set(__self__, "run_as_non_root", run_as_non_root) if run_as_user is not None: pulumi.set(__self__, "run_as_user", run_as_user) + if se_linux_change_policy is not None: + pulumi.set(__self__, "se_linux_change_policy", se_linux_change_policy) if se_linux_options is not None: pulumi.set(__self__, "se_linux_options", se_linux_options) if seccomp_profile is not None: @@ -23177,6 +23276,28 @@ def run_as_user(self) -> Optional[pulumi.Input[int]]: def run_as_user(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "run_as_user", value) + @property + @pulumi.getter(name="seLinuxChangePolicy") + def se_linux_change_policy(self) -> Optional[pulumi.Input[str]]: + """ + seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + """ + return pulumi.get(self, "se_linux_change_policy") + + @se_linux_change_policy.setter + def se_linux_change_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "se_linux_change_policy", value) + @property @pulumi.getter(name="seLinuxOptions") def se_linux_options(self) -> Optional[pulumi.Input['SELinuxOptionsPatchArgs']]: @@ -23283,6 +23404,20 @@ class PodSecurityContextArgsDict(TypedDict): """ The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. """ + se_linux_change_policy: NotRequired[pulumi.Input[str]] + """ + seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + """ se_linux_options: NotRequired[pulumi.Input['SELinuxOptionsArgsDict']] """ The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. @@ -23319,6 +23454,7 @@ def __init__(__self__, *, run_as_group: Optional[pulumi.Input[int]] = None, run_as_non_root: Optional[pulumi.Input[bool]] = None, run_as_user: Optional[pulumi.Input[int]] = None, + se_linux_change_policy: Optional[pulumi.Input[str]] = None, se_linux_options: Optional[pulumi.Input['SELinuxOptionsArgs']] = None, seccomp_profile: Optional[pulumi.Input['SeccompProfileArgs']] = None, supplemental_groups: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, @@ -23337,6 +23473,17 @@ def __init__(__self__, *, :param pulumi.Input[int] run_as_group: The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. :param pulumi.Input[bool] run_as_non_root: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. :param pulumi.Input[int] run_as_user: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + :param pulumi.Input[str] se_linux_change_policy: seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. :param pulumi.Input['SELinuxOptionsArgs'] se_linux_options: The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. :param pulumi.Input['SeccompProfileArgs'] seccomp_profile: The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. :param pulumi.Input[Sequence[pulumi.Input[int]]] supplemental_groups: A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. @@ -23356,6 +23503,8 @@ def __init__(__self__, *, pulumi.set(__self__, "run_as_non_root", run_as_non_root) if run_as_user is not None: pulumi.set(__self__, "run_as_user", run_as_user) + if se_linux_change_policy is not None: + pulumi.set(__self__, "se_linux_change_policy", se_linux_change_policy) if se_linux_options is not None: pulumi.set(__self__, "se_linux_options", se_linux_options) if seccomp_profile is not None: @@ -23445,6 +23594,28 @@ def run_as_user(self) -> Optional[pulumi.Input[int]]: def run_as_user(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "run_as_user", value) + @property + @pulumi.getter(name="seLinuxChangePolicy") + def se_linux_change_policy(self) -> Optional[pulumi.Input[str]]: + """ + seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + """ + return pulumi.get(self, "se_linux_change_policy") + + @se_linux_change_policy.setter + def se_linux_change_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "se_linux_change_policy", value) + @property @pulumi.getter(name="seLinuxOptions") def se_linux_options(self) -> Optional[pulumi.Input['SELinuxOptionsArgs']]: @@ -23631,6 +23802,14 @@ class PodSpecPatchArgsDict(TypedDict): This field is immutable. """ + resources: NotRequired[pulumi.Input['ResourceRequirementsPatchArgsDict']] + """ + Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. + """ restart_policy: NotRequired[pulumi.Input[str]] """ Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy @@ -23663,7 +23842,7 @@ class PodSpecPatchArgsDict(TypedDict): """ set_hostname_as_fqdn: NotRequired[pulumi.Input[bool]] """ - If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. """ share_process_namespace: NotRequired[pulumi.Input[bool]] """ @@ -23720,6 +23899,7 @@ def __init__(__self__, *, priority_class_name: Optional[pulumi.Input[str]] = None, readiness_gates: Optional[pulumi.Input[Sequence[pulumi.Input['PodReadinessGatePatchArgs']]]] = None, resource_claims: Optional[pulumi.Input[Sequence[pulumi.Input['PodResourceClaimPatchArgs']]]] = None, + resources: Optional[pulumi.Input['ResourceRequirementsPatchArgs']] = None, restart_policy: Optional[pulumi.Input[str]] = None, runtime_class_name: Optional[pulumi.Input[str]] = None, scheduler_name: Optional[pulumi.Input[str]] = None, @@ -23769,6 +23949,11 @@ def __init__(__self__, *, This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. + :param pulumi.Input['ResourceRequirementsPatchArgs'] resources: Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. :param pulumi.Input[str] restart_policy: Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy :param pulumi.Input[str] runtime_class_name: RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class :param pulumi.Input[str] scheduler_name: If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. @@ -23778,7 +23963,7 @@ def __init__(__self__, *, :param pulumi.Input['PodSecurityContextPatchArgs'] security_context: SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. :param pulumi.Input[str] service_account: DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. :param pulumi.Input[str] service_account_name: ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ - :param pulumi.Input[bool] set_hostname_as_fqdn: If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + :param pulumi.Input[bool] set_hostname_as_fqdn: If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. :param pulumi.Input[bool] share_process_namespace: Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. :param pulumi.Input[str] subdomain: If specified, the fully qualified Pod hostname will be "...svc.". If not specified, the pod will not have a domainname at all. :param pulumi.Input[int] termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds. @@ -23836,6 +24021,8 @@ def __init__(__self__, *, pulumi.set(__self__, "readiness_gates", readiness_gates) if resource_claims is not None: pulumi.set(__self__, "resource_claims", resource_claims) + if resources is not None: + pulumi.set(__self__, "resources", resources) if restart_policy is not None: pulumi.set(__self__, "restart_policy", restart_policy) if runtime_class_name is not None: @@ -24173,6 +24360,22 @@ def resource_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PodRes def resource_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PodResourceClaimPatchArgs']]]]): pulumi.set(self, "resource_claims", value) + @property + @pulumi.getter + def resources(self) -> Optional[pulumi.Input['ResourceRequirementsPatchArgs']]: + """ + Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. + """ + return pulumi.get(self, "resources") + + @resources.setter + def resources(self, value: Optional[pulumi.Input['ResourceRequirementsPatchArgs']]): + pulumi.set(self, "resources", value) + @property @pulumi.getter(name="restartPolicy") def restart_policy(self) -> Optional[pulumi.Input[str]]: @@ -24263,7 +24466,7 @@ def service_account_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="setHostnameAsFQDN") def set_hostname_as_fqdn(self) -> Optional[pulumi.Input[bool]]: """ - If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. """ return pulumi.get(self, "set_hostname_as_fqdn") @@ -24457,6 +24660,14 @@ class PodSpecArgsDict(TypedDict): This field is immutable. """ + resources: NotRequired[pulumi.Input['ResourceRequirementsArgsDict']] + """ + Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. + """ restart_policy: NotRequired[pulumi.Input[str]] """ Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy @@ -24489,7 +24700,7 @@ class PodSpecArgsDict(TypedDict): """ set_hostname_as_fqdn: NotRequired[pulumi.Input[bool]] """ - If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. """ share_process_namespace: NotRequired[pulumi.Input[bool]] """ @@ -24546,6 +24757,7 @@ def __init__(__self__, *, priority_class_name: Optional[pulumi.Input[str]] = None, readiness_gates: Optional[pulumi.Input[Sequence[pulumi.Input['PodReadinessGateArgs']]]] = None, resource_claims: Optional[pulumi.Input[Sequence[pulumi.Input['PodResourceClaimArgs']]]] = None, + resources: Optional[pulumi.Input['ResourceRequirementsArgs']] = None, restart_policy: Optional[pulumi.Input[str]] = None, runtime_class_name: Optional[pulumi.Input[str]] = None, scheduler_name: Optional[pulumi.Input[str]] = None, @@ -24595,6 +24807,11 @@ def __init__(__self__, *, This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. + :param pulumi.Input['ResourceRequirementsArgs'] resources: Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. :param pulumi.Input[str] restart_policy: Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy :param pulumi.Input[str] runtime_class_name: RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class :param pulumi.Input[str] scheduler_name: If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. @@ -24604,7 +24821,7 @@ def __init__(__self__, *, :param pulumi.Input['PodSecurityContextArgs'] security_context: SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. :param pulumi.Input[str] service_account: DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. :param pulumi.Input[str] service_account_name: ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ - :param pulumi.Input[bool] set_hostname_as_fqdn: If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + :param pulumi.Input[bool] set_hostname_as_fqdn: If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. :param pulumi.Input[bool] share_process_namespace: Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. :param pulumi.Input[str] subdomain: If specified, the fully qualified Pod hostname will be "...svc.". If not specified, the pod will not have a domainname at all. :param pulumi.Input[int] termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds. @@ -24661,6 +24878,8 @@ def __init__(__self__, *, pulumi.set(__self__, "readiness_gates", readiness_gates) if resource_claims is not None: pulumi.set(__self__, "resource_claims", resource_claims) + if resources is not None: + pulumi.set(__self__, "resources", resources) if restart_policy is not None: pulumi.set(__self__, "restart_policy", restart_policy) if runtime_class_name is not None: @@ -24998,6 +25217,22 @@ def resource_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PodRes def resource_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PodResourceClaimArgs']]]]): pulumi.set(self, "resource_claims", value) + @property + @pulumi.getter + def resources(self) -> Optional[pulumi.Input['ResourceRequirementsArgs']]: + """ + Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. + """ + return pulumi.get(self, "resources") + + @resources.setter + def resources(self, value: Optional[pulumi.Input['ResourceRequirementsArgs']]): + pulumi.set(self, "resources", value) + @property @pulumi.getter(name="restartPolicy") def restart_policy(self) -> Optional[pulumi.Input[str]]: @@ -25088,7 +25323,7 @@ def service_account_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="setHostnameAsFQDN") def set_hostname_as_fqdn(self) -> Optional[pulumi.Input[bool]]: """ - If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. """ return pulumi.get(self, "set_hostname_as_fqdn") @@ -25180,11 +25415,11 @@ class PodStatusArgsDict(TypedDict): """ container_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgsDict']]]] """ - The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status """ ephemeral_container_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgsDict']]]] """ - Status for any ephemeral containers that have run in this pod. + Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status """ host_ip: NotRequired[pulumi.Input[str]] """ @@ -25196,7 +25431,7 @@ class PodStatusArgsDict(TypedDict): """ init_container_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgsDict']]]] """ - The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status """ message: NotRequired[pulumi.Input[str]] """ @@ -25267,11 +25502,11 @@ def __init__(__self__, *, """ PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. :param pulumi.Input[Sequence[pulumi.Input['PodConditionArgs']]] conditions: Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions - :param pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]] container_statuses: The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status - :param pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]] ephemeral_container_statuses: Status for any ephemeral containers that have run in this pod. + :param pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]] container_statuses: Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + :param pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]] ephemeral_container_statuses: Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status :param pulumi.Input[str] host_ip: hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod :param pulumi.Input[Sequence[pulumi.Input['HostIPArgs']]] host_ips: hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. - :param pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]] init_container_statuses: The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + :param pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]] init_container_statuses: Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status :param pulumi.Input[str] message: A human readable message indicating details about why the pod is in this condition. :param pulumi.Input[str] nominated_node_name: nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. :param pulumi.Input[str] phase: The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values: @@ -25336,7 +25571,7 @@ def conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PodCond @pulumi.getter(name="containerStatuses") def container_statuses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]]]: """ - The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status """ return pulumi.get(self, "container_statuses") @@ -25348,7 +25583,7 @@ def container_statuses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @pulumi.getter(name="ephemeralContainerStatuses") def ephemeral_container_statuses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]]]: """ - Status for any ephemeral containers that have run in this pod. + Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status """ return pulumi.get(self, "ephemeral_container_statuses") @@ -25384,7 +25619,7 @@ def host_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['HostIPArg @pulumi.getter(name="initContainerStatuses") def init_container_statuses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerStatusArgs']]]]: """ - The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status """ return pulumi.get(self, "init_container_statuses") @@ -25873,6 +26108,9 @@ def status(self, value: Optional[pulumi.Input['PodStatusArgs']]): if not MYPY: class PortStatusArgsDict(TypedDict): + """ + PortStatus represents the error condition of a service port + """ port: pulumi.Input[int] """ Port is the port number of the service port of which status is recorded here @@ -25898,6 +26136,7 @@ def __init__(__self__, *, protocol: pulumi.Input[str], error: Optional[pulumi.Input[str]] = None): """ + PortStatus represents the error condition of a service port :param pulumi.Input[int] port: Port is the port number of the service port of which status is recorded here :param pulumi.Input[str] protocol: Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP" :param pulumi.Input[str] error: Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use @@ -26218,7 +26457,7 @@ class ProbePatchArgsDict(TypedDict): """ exec_: NotRequired[pulumi.Input['ExecActionPatchArgsDict']] """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ failure_threshold: NotRequired[pulumi.Input[int]] """ @@ -26226,11 +26465,11 @@ class ProbePatchArgsDict(TypedDict): """ grpc: NotRequired[pulumi.Input['GRPCActionPatchArgsDict']] """ - GRPC specifies an action involving a GRPC port. + GRPC specifies a GRPC HealthCheckRequest. """ http_get: NotRequired[pulumi.Input['HTTPGetActionPatchArgsDict']] """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ initial_delay_seconds: NotRequired[pulumi.Input[int]] """ @@ -26246,7 +26485,7 @@ class ProbePatchArgsDict(TypedDict): """ tcp_socket: NotRequired[pulumi.Input['TCPSocketActionPatchArgsDict']] """ - TCPSocket specifies an action involving a TCP port. + TCPSocket specifies a connection to a TCP port. """ termination_grace_period_seconds: NotRequired[pulumi.Input[int]] """ @@ -26274,14 +26513,14 @@ def __init__(__self__, *, timeout_seconds: Optional[pulumi.Input[int]] = None): """ Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. - :param pulumi.Input['ExecActionPatchArgs'] exec_: Exec specifies the action to take. + :param pulumi.Input['ExecActionPatchArgs'] exec_: Exec specifies a command to execute in the container. :param pulumi.Input[int] failure_threshold: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. - :param pulumi.Input['GRPCActionPatchArgs'] grpc: GRPC specifies an action involving a GRPC port. - :param pulumi.Input['HTTPGetActionPatchArgs'] http_get: HTTPGet specifies the http request to perform. + :param pulumi.Input['GRPCActionPatchArgs'] grpc: GRPC specifies a GRPC HealthCheckRequest. + :param pulumi.Input['HTTPGetActionPatchArgs'] http_get: HTTPGet specifies an HTTP GET request to perform. :param pulumi.Input[int] initial_delay_seconds: Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes :param pulumi.Input[int] period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. :param pulumi.Input[int] success_threshold: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - :param pulumi.Input['TCPSocketActionPatchArgs'] tcp_socket: TCPSocket specifies an action involving a TCP port. + :param pulumi.Input['TCPSocketActionPatchArgs'] tcp_socket: TCPSocket specifies a connection to a TCP port. :param pulumi.Input[int] termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. :param pulumi.Input[int] timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes """ @@ -26310,7 +26549,7 @@ def __init__(__self__, *, @pulumi.getter(name="exec") def exec_(self) -> Optional[pulumi.Input['ExecActionPatchArgs']]: """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ return pulumi.get(self, "exec_") @@ -26334,7 +26573,7 @@ def failure_threshold(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def grpc(self) -> Optional[pulumi.Input['GRPCActionPatchArgs']]: """ - GRPC specifies an action involving a GRPC port. + GRPC specifies a GRPC HealthCheckRequest. """ return pulumi.get(self, "grpc") @@ -26346,7 +26585,7 @@ def grpc(self, value: Optional[pulumi.Input['GRPCActionPatchArgs']]): @pulumi.getter(name="httpGet") def http_get(self) -> Optional[pulumi.Input['HTTPGetActionPatchArgs']]: """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ return pulumi.get(self, "http_get") @@ -26394,7 +26633,7 @@ def success_threshold(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="tcpSocket") def tcp_socket(self) -> Optional[pulumi.Input['TCPSocketActionPatchArgs']]: """ - TCPSocket specifies an action involving a TCP port. + TCPSocket specifies a connection to a TCP port. """ return pulumi.get(self, "tcp_socket") @@ -26434,7 +26673,7 @@ class ProbeArgsDict(TypedDict): """ exec_: NotRequired[pulumi.Input['ExecActionArgsDict']] """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ failure_threshold: NotRequired[pulumi.Input[int]] """ @@ -26442,11 +26681,11 @@ class ProbeArgsDict(TypedDict): """ grpc: NotRequired[pulumi.Input['GRPCActionArgsDict']] """ - GRPC specifies an action involving a GRPC port. + GRPC specifies a GRPC HealthCheckRequest. """ http_get: NotRequired[pulumi.Input['HTTPGetActionArgsDict']] """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ initial_delay_seconds: NotRequired[pulumi.Input[int]] """ @@ -26462,7 +26701,7 @@ class ProbeArgsDict(TypedDict): """ tcp_socket: NotRequired[pulumi.Input['TCPSocketActionArgsDict']] """ - TCPSocket specifies an action involving a TCP port. + TCPSocket specifies a connection to a TCP port. """ termination_grace_period_seconds: NotRequired[pulumi.Input[int]] """ @@ -26490,14 +26729,14 @@ def __init__(__self__, *, timeout_seconds: Optional[pulumi.Input[int]] = None): """ Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. - :param pulumi.Input['ExecActionArgs'] exec_: Exec specifies the action to take. + :param pulumi.Input['ExecActionArgs'] exec_: Exec specifies a command to execute in the container. :param pulumi.Input[int] failure_threshold: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. - :param pulumi.Input['GRPCActionArgs'] grpc: GRPC specifies an action involving a GRPC port. - :param pulumi.Input['HTTPGetActionArgs'] http_get: HTTPGet specifies the http request to perform. + :param pulumi.Input['GRPCActionArgs'] grpc: GRPC specifies a GRPC HealthCheckRequest. + :param pulumi.Input['HTTPGetActionArgs'] http_get: HTTPGet specifies an HTTP GET request to perform. :param pulumi.Input[int] initial_delay_seconds: Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes :param pulumi.Input[int] period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. :param pulumi.Input[int] success_threshold: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - :param pulumi.Input['TCPSocketActionArgs'] tcp_socket: TCPSocket specifies an action involving a TCP port. + :param pulumi.Input['TCPSocketActionArgs'] tcp_socket: TCPSocket specifies a connection to a TCP port. :param pulumi.Input[int] termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. :param pulumi.Input[int] timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes """ @@ -26526,7 +26765,7 @@ def __init__(__self__, *, @pulumi.getter(name="exec") def exec_(self) -> Optional[pulumi.Input['ExecActionArgs']]: """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ return pulumi.get(self, "exec_") @@ -26550,7 +26789,7 @@ def failure_threshold(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def grpc(self) -> Optional[pulumi.Input['GRPCActionArgs']]: """ - GRPC specifies an action involving a GRPC port. + GRPC specifies a GRPC HealthCheckRequest. """ return pulumi.get(self, "grpc") @@ -26562,7 +26801,7 @@ def grpc(self, value: Optional[pulumi.Input['GRPCActionArgs']]): @pulumi.getter(name="httpGet") def http_get(self) -> Optional[pulumi.Input['HTTPGetActionArgs']]: """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ return pulumi.get(self, "http_get") @@ -26610,7 +26849,7 @@ def success_threshold(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="tcpSocket") def tcp_socket(self) -> Optional[pulumi.Input['TCPSocketActionArgs']]: """ - TCPSocket specifies an action involving a TCP port. + TCPSocket specifies a connection to a TCP port. """ return pulumi.get(self, "tcp_socket") @@ -28546,7 +28785,7 @@ def divisor(self, value: Optional[pulumi.Input[str]]): if not MYPY: class ResourceHealthArgsDict(TypedDict): """ - ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. """ resource_id: pulumi.Input[str] """ @@ -28573,7 +28812,7 @@ def __init__(__self__, *, resource_id: pulumi.Input[str], health: Optional[pulumi.Input[str]] = None): """ - ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. :param pulumi.Input[str] resource_id: ResourceID is the unique identifier of the resource. See the ResourceID type for more information. :param pulumi.Input[str] health: Health of the resource. can be one of: - Healthy: operates as normal @@ -29124,13 +29363,16 @@ def requests(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]] if not MYPY: class ResourceStatusArgsDict(TypedDict): + """ + ResourceStatus represents the status of a single resource allocated to a Pod. + """ name: pulumi.Input[str] """ - Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. """ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResourceHealthArgsDict']]]] """ - List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. """ elif False: ResourceStatusArgsDict: TypeAlias = Mapping[str, Any] @@ -29141,8 +29383,9 @@ def __init__(__self__, *, name: pulumi.Input[str], resources: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceHealthArgs']]]] = None): """ - :param pulumi.Input[str] name: Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. - :param pulumi.Input[Sequence[pulumi.Input['ResourceHealthArgs']]] resources: List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + ResourceStatus represents the status of a single resource allocated to a Pod. + :param pulumi.Input[str] name: Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. + :param pulumi.Input[Sequence[pulumi.Input['ResourceHealthArgs']]] resources: List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. """ pulumi.set(__self__, "name", name) if resources is not None: @@ -29152,7 +29395,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> pulumi.Input[str]: """ - Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. """ return pulumi.get(self, "name") @@ -29164,7 +29407,7 @@ def name(self, value: pulumi.Input[str]): @pulumi.getter def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceHealthArgs']]]]: """ - List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. """ return pulumi.get(self, "resources") @@ -32177,7 +32420,7 @@ class ServiceAccountArgsDict(TypedDict): """ secrets: NotRequired[pulumi.Input[Sequence[pulumi.Input['ObjectReferenceArgsDict']]]] """ - Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ elif False: ServiceAccountArgsDict: TypeAlias = Mapping[str, Any] @@ -32198,7 +32441,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['LocalObjectReferenceArgs']]] image_pull_secrets: ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - :param pulumi.Input[Sequence[pulumi.Input['ObjectReferenceArgs']]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + :param pulumi.Input[Sequence[pulumi.Input['ObjectReferenceArgs']]] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ if api_version is not None: pulumi.set(__self__, "api_version", 'v1') @@ -32277,7 +32520,7 @@ def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): @pulumi.getter def secrets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ObjectReferenceArgs']]]]: """ - Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ return pulumi.get(self, "secrets") @@ -32702,7 +32945,7 @@ class ServiceSpecPatchArgsDict(TypedDict): """ traffic_distribution: NotRequired[pulumi.Input[str]] """ - TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. """ type: NotRequired[pulumi.Input[Union[str, 'ServiceSpecType']]] """ @@ -32762,7 +33005,7 @@ def __init__(__self__, *, :param pulumi.Input[str] session_affinity: Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies :param pulumi.Input['SessionAffinityConfigPatchArgs'] session_affinity_config: sessionAffinityConfig contains the configurations of session affinity. :param pulumi.Input[Sequence[pulumi.Input[str]]] topology_keys: topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value "*" may be used to mean "any topology". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. - :param pulumi.Input[str] traffic_distribution: TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + :param pulumi.Input[str] traffic_distribution: TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. :param pulumi.Input[Union[str, 'ServiceSpecType']] type: type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types """ if allocate_load_balancer_node_ports is not None: @@ -33058,7 +33301,7 @@ def topology_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]] @pulumi.getter(name="trafficDistribution") def traffic_distribution(self) -> Optional[pulumi.Input[str]]: """ - TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. """ return pulumi.get(self, "traffic_distribution") @@ -33170,7 +33413,7 @@ class ServiceSpecArgsDict(TypedDict): """ traffic_distribution: NotRequired[pulumi.Input[str]] """ - TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. """ type: NotRequired[pulumi.Input[Union[str, 'ServiceSpecType']]] """ @@ -33230,7 +33473,7 @@ def __init__(__self__, *, :param pulumi.Input[str] session_affinity: Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies :param pulumi.Input['SessionAffinityConfigArgs'] session_affinity_config: sessionAffinityConfig contains the configurations of session affinity. :param pulumi.Input[Sequence[pulumi.Input[str]]] topology_keys: topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value "*" may be used to mean "any topology". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. - :param pulumi.Input[str] traffic_distribution: TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + :param pulumi.Input[str] traffic_distribution: TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. :param pulumi.Input[Union[str, 'ServiceSpecType']] type: type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types """ if allocate_load_balancer_node_ports is not None: @@ -33526,7 +33769,7 @@ def topology_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]] @pulumi.getter(name="trafficDistribution") def traffic_distribution(self) -> Optional[pulumi.Input[str]]: """ - TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. """ return pulumi.get(self, "traffic_distribution") @@ -35752,6 +35995,9 @@ def api_group(self, value: Optional[pulumi.Input[str]]): if not MYPY: class TypedObjectReferencePatchArgsDict(TypedDict): + """ + TypedObjectReference contains enough information to let you locate the typed referenced object + """ api_group: NotRequired[pulumi.Input[str]] """ APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. @@ -35779,6 +36025,7 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, namespace: Optional[pulumi.Input[str]] = None): """ + TypedObjectReference contains enough information to let you locate the typed referenced object :param pulumi.Input[str] api_group: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. :param pulumi.Input[str] kind: Kind is the type of resource being referenced :param pulumi.Input[str] name: Name is the name of resource being referenced @@ -35844,6 +36091,9 @@ def namespace(self, value: Optional[pulumi.Input[str]]): if not MYPY: class TypedObjectReferenceArgsDict(TypedDict): + """ + TypedObjectReference contains enough information to let you locate the typed referenced object + """ kind: pulumi.Input[str] """ Kind is the type of resource being referenced @@ -35871,6 +36121,7 @@ def __init__(__self__, *, api_group: Optional[pulumi.Input[str]] = None, namespace: Optional[pulumi.Input[str]] = None): """ + TypedObjectReference contains enough information to let you locate the typed referenced object :param pulumi.Input[str] kind: Kind is the type of resource being referenced :param pulumi.Input[str] name: Name is the name of resource being referenced :param pulumi.Input[str] api_group: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. @@ -36573,23 +36824,23 @@ class VolumePatchArgsDict(TypedDict): """ aws_elastic_block_store: NotRequired[pulumi.Input['AWSElasticBlockStoreVolumeSourcePatchArgsDict']] """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ azure_disk: NotRequired[pulumi.Input['AzureDiskVolumeSourcePatchArgsDict']] """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ azure_file: NotRequired[pulumi.Input['AzureFileVolumeSourcePatchArgsDict']] """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ cephfs: NotRequired[pulumi.Input['CephFSVolumeSourcePatchArgsDict']] """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ cinder: NotRequired[pulumi.Input['CinderVolumeSourcePatchArgsDict']] """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ config_map: NotRequired[pulumi.Input['ConfigMapVolumeSourcePatchArgsDict']] """ @@ -36597,7 +36848,7 @@ class VolumePatchArgsDict(TypedDict): """ csi: NotRequired[pulumi.Input['CSIVolumeSourcePatchArgsDict']] """ - csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. """ downward_api: NotRequired[pulumi.Input['DownwardAPIVolumeSourcePatchArgsDict']] """ @@ -36630,23 +36881,23 @@ class VolumePatchArgsDict(TypedDict): """ flex_volume: NotRequired[pulumi.Input['FlexVolumeSourcePatchArgsDict']] """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ flocker: NotRequired[pulumi.Input['FlockerVolumeSourcePatchArgsDict']] """ - flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ gce_persistent_disk: NotRequired[pulumi.Input['GCEPersistentDiskVolumeSourcePatchArgsDict']] """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ git_repo: NotRequired[pulumi.Input['GitRepoVolumeSourcePatchArgsDict']] """ - gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. """ glusterfs: NotRequired[pulumi.Input['GlusterfsVolumeSourcePatchArgsDict']] """ - glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ host_path: NotRequired[pulumi.Input['HostPathVolumeSourcePatchArgsDict']] """ @@ -36678,11 +36929,11 @@ class VolumePatchArgsDict(TypedDict): """ photon_persistent_disk: NotRequired[pulumi.Input['PhotonPersistentDiskVolumeSourcePatchArgsDict']] """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ portworx_volume: NotRequired[pulumi.Input['PortworxVolumeSourcePatchArgsDict']] """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ projected: NotRequired[pulumi.Input['ProjectedVolumeSourcePatchArgsDict']] """ @@ -36690,15 +36941,15 @@ class VolumePatchArgsDict(TypedDict): """ quobyte: NotRequired[pulumi.Input['QuobyteVolumeSourcePatchArgsDict']] """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ rbd: NotRequired[pulumi.Input['RBDVolumeSourcePatchArgsDict']] """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ scale_io: NotRequired[pulumi.Input['ScaleIOVolumeSourcePatchArgsDict']] """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ secret: NotRequired[pulumi.Input['SecretVolumeSourcePatchArgsDict']] """ @@ -36706,11 +36957,11 @@ class VolumePatchArgsDict(TypedDict): """ storageos: NotRequired[pulumi.Input['StorageOSVolumeSourcePatchArgsDict']] """ - storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. """ vsphere_volume: NotRequired[pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgsDict']] """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ elif False: VolumePatchArgsDict: TypeAlias = Mapping[str, Any] @@ -36751,13 +37002,13 @@ def __init__(__self__, *, vsphere_volume: Optional[pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgs']] = None): """ Volume represents a named volume in a pod that may be accessed by any container in the pod. - :param pulumi.Input['AWSElasticBlockStoreVolumeSourcePatchArgs'] aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - :param pulumi.Input['AzureDiskVolumeSourcePatchArgs'] azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. - :param pulumi.Input['AzureFileVolumeSourcePatchArgs'] azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. - :param pulumi.Input['CephFSVolumeSourcePatchArgs'] cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime - :param pulumi.Input['CinderVolumeSourcePatchArgs'] cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + :param pulumi.Input['AWSElasticBlockStoreVolumeSourcePatchArgs'] aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + :param pulumi.Input['AzureDiskVolumeSourcePatchArgs'] azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. + :param pulumi.Input['AzureFileVolumeSourcePatchArgs'] azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. + :param pulumi.Input['CephFSVolumeSourcePatchArgs'] cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. + :param pulumi.Input['CinderVolumeSourcePatchArgs'] cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md :param pulumi.Input['ConfigMapVolumeSourcePatchArgs'] config_map: configMap represents a configMap that should populate this volume - :param pulumi.Input['CSIVolumeSourcePatchArgs'] csi: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + :param pulumi.Input['CSIVolumeSourcePatchArgs'] csi: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. :param pulumi.Input['DownwardAPIVolumeSourcePatchArgs'] downward_api: downwardAPI represents downward API about the pod that should populate this volume :param pulumi.Input['EmptyDirVolumeSourcePatchArgs'] empty_dir: emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir :param pulumi.Input['EphemeralVolumeSourcePatchArgs'] ephemeral: ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. @@ -36775,11 +37026,11 @@ def __init__(__self__, *, A pod can use both types of ephemeral volumes and persistent volumes at the same time. :param pulumi.Input['FCVolumeSourcePatchArgs'] fc: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. - :param pulumi.Input['FlexVolumeSourcePatchArgs'] flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. - :param pulumi.Input['FlockerVolumeSourcePatchArgs'] flocker: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running - :param pulumi.Input['GCEPersistentDiskVolumeSourcePatchArgs'] gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - :param pulumi.Input['GitRepoVolumeSourcePatchArgs'] git_repo: gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. - :param pulumi.Input['GlusterfsVolumeSourcePatchArgs'] glusterfs: glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + :param pulumi.Input['FlexVolumeSourcePatchArgs'] flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. + :param pulumi.Input['FlockerVolumeSourcePatchArgs'] flocker: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. + :param pulumi.Input['GCEPersistentDiskVolumeSourcePatchArgs'] gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + :param pulumi.Input['GitRepoVolumeSourcePatchArgs'] git_repo: gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + :param pulumi.Input['GlusterfsVolumeSourcePatchArgs'] glusterfs: glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md :param pulumi.Input['HostPathVolumeSourcePatchArgs'] host_path: hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath :param pulumi.Input['ImageVolumeSourcePatchArgs'] image: image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: @@ -36790,15 +37041,15 @@ def __init__(__self__, *, :param pulumi.Input[str] name: name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names :param pulumi.Input['NFSVolumeSourcePatchArgs'] nfs: nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs :param pulumi.Input['PersistentVolumeClaimVolumeSourcePatchArgs'] persistent_volume_claim: persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims - :param pulumi.Input['PhotonPersistentDiskVolumeSourcePatchArgs'] photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine - :param pulumi.Input['PortworxVolumeSourcePatchArgs'] portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine + :param pulumi.Input['PhotonPersistentDiskVolumeSourcePatchArgs'] photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. + :param pulumi.Input['PortworxVolumeSourcePatchArgs'] portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. :param pulumi.Input['ProjectedVolumeSourcePatchArgs'] projected: projected items for all in one resources secrets, configmaps, and downward API - :param pulumi.Input['QuobyteVolumeSourcePatchArgs'] quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime - :param pulumi.Input['RBDVolumeSourcePatchArgs'] rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md - :param pulumi.Input['ScaleIOVolumeSourcePatchArgs'] scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + :param pulumi.Input['QuobyteVolumeSourcePatchArgs'] quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. + :param pulumi.Input['RBDVolumeSourcePatchArgs'] rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + :param pulumi.Input['ScaleIOVolumeSourcePatchArgs'] scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. :param pulumi.Input['SecretVolumeSourcePatchArgs'] secret: secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret - :param pulumi.Input['StorageOSVolumeSourcePatchArgs'] storageos: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. - :param pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgs'] vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + :param pulumi.Input['StorageOSVolumeSourcePatchArgs'] storageos: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. + :param pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgs'] vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ if aws_elastic_block_store is not None: pulumi.set(__self__, "aws_elastic_block_store", aws_elastic_block_store) @@ -36867,7 +37118,7 @@ def __init__(__self__, *, @pulumi.getter(name="awsElasticBlockStore") def aws_elastic_block_store(self) -> Optional[pulumi.Input['AWSElasticBlockStoreVolumeSourcePatchArgs']]: """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ return pulumi.get(self, "aws_elastic_block_store") @@ -36879,7 +37130,7 @@ def aws_elastic_block_store(self, value: Optional[pulumi.Input['AWSElasticBlockS @pulumi.getter(name="azureDisk") def azure_disk(self) -> Optional[pulumi.Input['AzureDiskVolumeSourcePatchArgs']]: """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_disk") @@ -36891,7 +37142,7 @@ def azure_disk(self, value: Optional[pulumi.Input['AzureDiskVolumeSourcePatchArg @pulumi.getter(name="azureFile") def azure_file(self) -> Optional[pulumi.Input['AzureFileVolumeSourcePatchArgs']]: """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_file") @@ -36903,7 +37154,7 @@ def azure_file(self, value: Optional[pulumi.Input['AzureFileVolumeSourcePatchArg @pulumi.getter def cephfs(self) -> Optional[pulumi.Input['CephFSVolumeSourcePatchArgs']]: """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ return pulumi.get(self, "cephfs") @@ -36915,7 +37166,7 @@ def cephfs(self, value: Optional[pulumi.Input['CephFSVolumeSourcePatchArgs']]): @pulumi.getter def cinder(self) -> Optional[pulumi.Input['CinderVolumeSourcePatchArgs']]: """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ return pulumi.get(self, "cinder") @@ -36939,7 +37190,7 @@ def config_map(self, value: Optional[pulumi.Input['ConfigMapVolumeSourcePatchArg @pulumi.getter def csi(self) -> Optional[pulumi.Input['CSIVolumeSourcePatchArgs']]: """ - csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. """ return pulumi.get(self, "csi") @@ -37012,7 +37263,7 @@ def fc(self, value: Optional[pulumi.Input['FCVolumeSourcePatchArgs']]): @pulumi.getter(name="flexVolume") def flex_volume(self) -> Optional[pulumi.Input['FlexVolumeSourcePatchArgs']]: """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ return pulumi.get(self, "flex_volume") @@ -37024,7 +37275,7 @@ def flex_volume(self, value: Optional[pulumi.Input['FlexVolumeSourcePatchArgs']] @pulumi.getter def flocker(self) -> Optional[pulumi.Input['FlockerVolumeSourcePatchArgs']]: """ - flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ return pulumi.get(self, "flocker") @@ -37036,7 +37287,7 @@ def flocker(self, value: Optional[pulumi.Input['FlockerVolumeSourcePatchArgs']]) @pulumi.getter(name="gcePersistentDisk") def gce_persistent_disk(self) -> Optional[pulumi.Input['GCEPersistentDiskVolumeSourcePatchArgs']]: """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ return pulumi.get(self, "gce_persistent_disk") @@ -37048,7 +37299,7 @@ def gce_persistent_disk(self, value: Optional[pulumi.Input['GCEPersistentDiskVol @pulumi.getter(name="gitRepo") def git_repo(self) -> Optional[pulumi.Input['GitRepoVolumeSourcePatchArgs']]: """ - gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. """ return pulumi.get(self, "git_repo") @@ -37060,7 +37311,7 @@ def git_repo(self, value: Optional[pulumi.Input['GitRepoVolumeSourcePatchArgs']] @pulumi.getter def glusterfs(self) -> Optional[pulumi.Input['GlusterfsVolumeSourcePatchArgs']]: """ - glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ return pulumi.get(self, "glusterfs") @@ -37148,7 +37399,7 @@ def persistent_volume_claim(self, value: Optional[pulumi.Input['PersistentVolume @pulumi.getter(name="photonPersistentDisk") def photon_persistent_disk(self) -> Optional[pulumi.Input['PhotonPersistentDiskVolumeSourcePatchArgs']]: """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ return pulumi.get(self, "photon_persistent_disk") @@ -37160,7 +37411,7 @@ def photon_persistent_disk(self, value: Optional[pulumi.Input['PhotonPersistentD @pulumi.getter(name="portworxVolume") def portworx_volume(self) -> Optional[pulumi.Input['PortworxVolumeSourcePatchArgs']]: """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ return pulumi.get(self, "portworx_volume") @@ -37184,7 +37435,7 @@ def projected(self, value: Optional[pulumi.Input['ProjectedVolumeSourcePatchArgs @pulumi.getter def quobyte(self) -> Optional[pulumi.Input['QuobyteVolumeSourcePatchArgs']]: """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ return pulumi.get(self, "quobyte") @@ -37196,7 +37447,7 @@ def quobyte(self, value: Optional[pulumi.Input['QuobyteVolumeSourcePatchArgs']]) @pulumi.getter def rbd(self) -> Optional[pulumi.Input['RBDVolumeSourcePatchArgs']]: """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ return pulumi.get(self, "rbd") @@ -37208,7 +37459,7 @@ def rbd(self, value: Optional[pulumi.Input['RBDVolumeSourcePatchArgs']]): @pulumi.getter(name="scaleIO") def scale_io(self) -> Optional[pulumi.Input['ScaleIOVolumeSourcePatchArgs']]: """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ return pulumi.get(self, "scale_io") @@ -37232,7 +37483,7 @@ def secret(self, value: Optional[pulumi.Input['SecretVolumeSourcePatchArgs']]): @pulumi.getter def storageos(self) -> Optional[pulumi.Input['StorageOSVolumeSourcePatchArgs']]: """ - storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. """ return pulumi.get(self, "storageos") @@ -37244,7 +37495,7 @@ def storageos(self, value: Optional[pulumi.Input['StorageOSVolumeSourcePatchArgs @pulumi.getter(name="vsphereVolume") def vsphere_volume(self) -> Optional[pulumi.Input['VsphereVirtualDiskVolumeSourcePatchArgs']]: """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ return pulumi.get(self, "vsphere_volume") @@ -37644,23 +37895,23 @@ class VolumeArgsDict(TypedDict): """ aws_elastic_block_store: NotRequired[pulumi.Input['AWSElasticBlockStoreVolumeSourceArgsDict']] """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ azure_disk: NotRequired[pulumi.Input['AzureDiskVolumeSourceArgsDict']] """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ azure_file: NotRequired[pulumi.Input['AzureFileVolumeSourceArgsDict']] """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ cephfs: NotRequired[pulumi.Input['CephFSVolumeSourceArgsDict']] """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ cinder: NotRequired[pulumi.Input['CinderVolumeSourceArgsDict']] """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ config_map: NotRequired[pulumi.Input['ConfigMapVolumeSourceArgsDict']] """ @@ -37668,7 +37919,7 @@ class VolumeArgsDict(TypedDict): """ csi: NotRequired[pulumi.Input['CSIVolumeSourceArgsDict']] """ - csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. """ downward_api: NotRequired[pulumi.Input['DownwardAPIVolumeSourceArgsDict']] """ @@ -37701,23 +37952,23 @@ class VolumeArgsDict(TypedDict): """ flex_volume: NotRequired[pulumi.Input['FlexVolumeSourceArgsDict']] """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ flocker: NotRequired[pulumi.Input['FlockerVolumeSourceArgsDict']] """ - flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ gce_persistent_disk: NotRequired[pulumi.Input['GCEPersistentDiskVolumeSourceArgsDict']] """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ git_repo: NotRequired[pulumi.Input['GitRepoVolumeSourceArgsDict']] """ - gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. """ glusterfs: NotRequired[pulumi.Input['GlusterfsVolumeSourceArgsDict']] """ - glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ host_path: NotRequired[pulumi.Input['HostPathVolumeSourceArgsDict']] """ @@ -37745,11 +37996,11 @@ class VolumeArgsDict(TypedDict): """ photon_persistent_disk: NotRequired[pulumi.Input['PhotonPersistentDiskVolumeSourceArgsDict']] """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ portworx_volume: NotRequired[pulumi.Input['PortworxVolumeSourceArgsDict']] """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ projected: NotRequired[pulumi.Input['ProjectedVolumeSourceArgsDict']] """ @@ -37757,15 +38008,15 @@ class VolumeArgsDict(TypedDict): """ quobyte: NotRequired[pulumi.Input['QuobyteVolumeSourceArgsDict']] """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ rbd: NotRequired[pulumi.Input['RBDVolumeSourceArgsDict']] """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ scale_io: NotRequired[pulumi.Input['ScaleIOVolumeSourceArgsDict']] """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ secret: NotRequired[pulumi.Input['SecretVolumeSourceArgsDict']] """ @@ -37773,11 +38024,11 @@ class VolumeArgsDict(TypedDict): """ storageos: NotRequired[pulumi.Input['StorageOSVolumeSourceArgsDict']] """ - storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. """ vsphere_volume: NotRequired[pulumi.Input['VsphereVirtualDiskVolumeSourceArgsDict']] """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ elif False: VolumeArgsDict: TypeAlias = Mapping[str, Any] @@ -37819,13 +38070,13 @@ def __init__(__self__, *, """ Volume represents a named volume in a pod that may be accessed by any container in the pod. :param pulumi.Input[str] name: name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - :param pulumi.Input['AWSElasticBlockStoreVolumeSourceArgs'] aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - :param pulumi.Input['AzureDiskVolumeSourceArgs'] azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. - :param pulumi.Input['AzureFileVolumeSourceArgs'] azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. - :param pulumi.Input['CephFSVolumeSourceArgs'] cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime - :param pulumi.Input['CinderVolumeSourceArgs'] cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + :param pulumi.Input['AWSElasticBlockStoreVolumeSourceArgs'] aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + :param pulumi.Input['AzureDiskVolumeSourceArgs'] azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. + :param pulumi.Input['AzureFileVolumeSourceArgs'] azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. + :param pulumi.Input['CephFSVolumeSourceArgs'] cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. + :param pulumi.Input['CinderVolumeSourceArgs'] cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md :param pulumi.Input['ConfigMapVolumeSourceArgs'] config_map: configMap represents a configMap that should populate this volume - :param pulumi.Input['CSIVolumeSourceArgs'] csi: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + :param pulumi.Input['CSIVolumeSourceArgs'] csi: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. :param pulumi.Input['DownwardAPIVolumeSourceArgs'] downward_api: downwardAPI represents downward API about the pod that should populate this volume :param pulumi.Input['EmptyDirVolumeSourceArgs'] empty_dir: emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir :param pulumi.Input['EphemeralVolumeSourceArgs'] ephemeral: ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. @@ -37843,11 +38094,11 @@ def __init__(__self__, *, A pod can use both types of ephemeral volumes and persistent volumes at the same time. :param pulumi.Input['FCVolumeSourceArgs'] fc: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. - :param pulumi.Input['FlexVolumeSourceArgs'] flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. - :param pulumi.Input['FlockerVolumeSourceArgs'] flocker: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running - :param pulumi.Input['GCEPersistentDiskVolumeSourceArgs'] gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - :param pulumi.Input['GitRepoVolumeSourceArgs'] git_repo: gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. - :param pulumi.Input['GlusterfsVolumeSourceArgs'] glusterfs: glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + :param pulumi.Input['FlexVolumeSourceArgs'] flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. + :param pulumi.Input['FlockerVolumeSourceArgs'] flocker: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. + :param pulumi.Input['GCEPersistentDiskVolumeSourceArgs'] gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + :param pulumi.Input['GitRepoVolumeSourceArgs'] git_repo: gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + :param pulumi.Input['GlusterfsVolumeSourceArgs'] glusterfs: glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md :param pulumi.Input['HostPathVolumeSourceArgs'] host_path: hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath :param pulumi.Input['ImageVolumeSourceArgs'] image: image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: @@ -37857,15 +38108,15 @@ def __init__(__self__, *, :param pulumi.Input['ISCSIVolumeSourceArgs'] iscsi: iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md :param pulumi.Input['NFSVolumeSourceArgs'] nfs: nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs :param pulumi.Input['PersistentVolumeClaimVolumeSourceArgs'] persistent_volume_claim: persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims - :param pulumi.Input['PhotonPersistentDiskVolumeSourceArgs'] photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine - :param pulumi.Input['PortworxVolumeSourceArgs'] portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine + :param pulumi.Input['PhotonPersistentDiskVolumeSourceArgs'] photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. + :param pulumi.Input['PortworxVolumeSourceArgs'] portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. :param pulumi.Input['ProjectedVolumeSourceArgs'] projected: projected items for all in one resources secrets, configmaps, and downward API - :param pulumi.Input['QuobyteVolumeSourceArgs'] quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime - :param pulumi.Input['RBDVolumeSourceArgs'] rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md - :param pulumi.Input['ScaleIOVolumeSourceArgs'] scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + :param pulumi.Input['QuobyteVolumeSourceArgs'] quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. + :param pulumi.Input['RBDVolumeSourceArgs'] rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + :param pulumi.Input['ScaleIOVolumeSourceArgs'] scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. :param pulumi.Input['SecretVolumeSourceArgs'] secret: secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret - :param pulumi.Input['StorageOSVolumeSourceArgs'] storageos: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. - :param pulumi.Input['VsphereVirtualDiskVolumeSourceArgs'] vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + :param pulumi.Input['StorageOSVolumeSourceArgs'] storageos: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. + :param pulumi.Input['VsphereVirtualDiskVolumeSourceArgs'] vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ pulumi.set(__self__, "name", name) if aws_elastic_block_store is not None: @@ -37945,7 +38196,7 @@ def name(self, value: pulumi.Input[str]): @pulumi.getter(name="awsElasticBlockStore") def aws_elastic_block_store(self) -> Optional[pulumi.Input['AWSElasticBlockStoreVolumeSourceArgs']]: """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ return pulumi.get(self, "aws_elastic_block_store") @@ -37957,7 +38208,7 @@ def aws_elastic_block_store(self, value: Optional[pulumi.Input['AWSElasticBlockS @pulumi.getter(name="azureDisk") def azure_disk(self) -> Optional[pulumi.Input['AzureDiskVolumeSourceArgs']]: """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_disk") @@ -37969,7 +38220,7 @@ def azure_disk(self, value: Optional[pulumi.Input['AzureDiskVolumeSourceArgs']]) @pulumi.getter(name="azureFile") def azure_file(self) -> Optional[pulumi.Input['AzureFileVolumeSourceArgs']]: """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_file") @@ -37981,7 +38232,7 @@ def azure_file(self, value: Optional[pulumi.Input['AzureFileVolumeSourceArgs']]) @pulumi.getter def cephfs(self) -> Optional[pulumi.Input['CephFSVolumeSourceArgs']]: """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ return pulumi.get(self, "cephfs") @@ -37993,7 +38244,7 @@ def cephfs(self, value: Optional[pulumi.Input['CephFSVolumeSourceArgs']]): @pulumi.getter def cinder(self) -> Optional[pulumi.Input['CinderVolumeSourceArgs']]: """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ return pulumi.get(self, "cinder") @@ -38017,7 +38268,7 @@ def config_map(self, value: Optional[pulumi.Input['ConfigMapVolumeSourceArgs']]) @pulumi.getter def csi(self) -> Optional[pulumi.Input['CSIVolumeSourceArgs']]: """ - csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. """ return pulumi.get(self, "csi") @@ -38090,7 +38341,7 @@ def fc(self, value: Optional[pulumi.Input['FCVolumeSourceArgs']]): @pulumi.getter(name="flexVolume") def flex_volume(self) -> Optional[pulumi.Input['FlexVolumeSourceArgs']]: """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ return pulumi.get(self, "flex_volume") @@ -38102,7 +38353,7 @@ def flex_volume(self, value: Optional[pulumi.Input['FlexVolumeSourceArgs']]): @pulumi.getter def flocker(self) -> Optional[pulumi.Input['FlockerVolumeSourceArgs']]: """ - flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ return pulumi.get(self, "flocker") @@ -38114,7 +38365,7 @@ def flocker(self, value: Optional[pulumi.Input['FlockerVolumeSourceArgs']]): @pulumi.getter(name="gcePersistentDisk") def gce_persistent_disk(self) -> Optional[pulumi.Input['GCEPersistentDiskVolumeSourceArgs']]: """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ return pulumi.get(self, "gce_persistent_disk") @@ -38126,7 +38377,7 @@ def gce_persistent_disk(self, value: Optional[pulumi.Input['GCEPersistentDiskVol @pulumi.getter(name="gitRepo") def git_repo(self) -> Optional[pulumi.Input['GitRepoVolumeSourceArgs']]: """ - gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. """ return pulumi.get(self, "git_repo") @@ -38138,7 +38389,7 @@ def git_repo(self, value: Optional[pulumi.Input['GitRepoVolumeSourceArgs']]): @pulumi.getter def glusterfs(self) -> Optional[pulumi.Input['GlusterfsVolumeSourceArgs']]: """ - glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ return pulumi.get(self, "glusterfs") @@ -38214,7 +38465,7 @@ def persistent_volume_claim(self, value: Optional[pulumi.Input['PersistentVolume @pulumi.getter(name="photonPersistentDisk") def photon_persistent_disk(self) -> Optional[pulumi.Input['PhotonPersistentDiskVolumeSourceArgs']]: """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ return pulumi.get(self, "photon_persistent_disk") @@ -38226,7 +38477,7 @@ def photon_persistent_disk(self, value: Optional[pulumi.Input['PhotonPersistentD @pulumi.getter(name="portworxVolume") def portworx_volume(self) -> Optional[pulumi.Input['PortworxVolumeSourceArgs']]: """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ return pulumi.get(self, "portworx_volume") @@ -38250,7 +38501,7 @@ def projected(self, value: Optional[pulumi.Input['ProjectedVolumeSourceArgs']]): @pulumi.getter def quobyte(self) -> Optional[pulumi.Input['QuobyteVolumeSourceArgs']]: """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ return pulumi.get(self, "quobyte") @@ -38262,7 +38513,7 @@ def quobyte(self, value: Optional[pulumi.Input['QuobyteVolumeSourceArgs']]): @pulumi.getter def rbd(self) -> Optional[pulumi.Input['RBDVolumeSourceArgs']]: """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ return pulumi.get(self, "rbd") @@ -38274,7 +38525,7 @@ def rbd(self, value: Optional[pulumi.Input['RBDVolumeSourceArgs']]): @pulumi.getter(name="scaleIO") def scale_io(self) -> Optional[pulumi.Input['ScaleIOVolumeSourceArgs']]: """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ return pulumi.get(self, "scale_io") @@ -38298,7 +38549,7 @@ def secret(self, value: Optional[pulumi.Input['SecretVolumeSourceArgs']]): @pulumi.getter def storageos(self) -> Optional[pulumi.Input['StorageOSVolumeSourceArgs']]: """ - storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. """ return pulumi.get(self, "storageos") @@ -38310,7 +38561,7 @@ def storageos(self, value: Optional[pulumi.Input['StorageOSVolumeSourceArgs']]): @pulumi.getter(name="vsphereVolume") def vsphere_volume(self) -> Optional[pulumi.Input['VsphereVirtualDiskVolumeSourceArgs']]: """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ return pulumi.get(self, "vsphere_volume") diff --git a/sdk/python/pulumi_kubernetes/core/v1/outputs.py b/sdk/python/pulumi_kubernetes/core/v1/outputs.py index 8de159aa17..77a578122a 100644 --- a/sdk/python/pulumi_kubernetes/core/v1/outputs.py +++ b/sdk/python/pulumi_kubernetes/core/v1/outputs.py @@ -1425,7 +1425,7 @@ def share_name(self) -> Optional[str]: @pulumi.output_type class CSIPersistentVolumeSource(dict): """ - Represents storage that is managed by an external CSI volume driver (Beta feature) + Represents storage that is managed by an external CSI volume driver """ @staticmethod def __key_warning(key: str): @@ -1472,7 +1472,7 @@ def __init__(__self__, *, read_only: Optional[bool] = None, volume_attributes: Optional[Mapping[str, str]] = None): """ - Represents storage that is managed by an external CSI volume driver (Beta feature) + Represents storage that is managed by an external CSI volume driver :param str driver: driver is the name of the driver to use for this volume. Required. :param str volume_handle: volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required. :param 'SecretReferenceArgs' controller_expand_secret_ref: controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. @@ -1587,7 +1587,7 @@ def volume_attributes(self) -> Optional[Mapping[str, str]]: @pulumi.output_type class CSIPersistentVolumeSourcePatch(dict): """ - Represents storage that is managed by an external CSI volume driver (Beta feature) + Represents storage that is managed by an external CSI volume driver """ @staticmethod def __key_warning(key: str): @@ -1634,7 +1634,7 @@ def __init__(__self__, *, volume_attributes: Optional[Mapping[str, str]] = None, volume_handle: Optional[str] = None): """ - Represents storage that is managed by an external CSI volume driver (Beta feature) + Represents storage that is managed by an external CSI volume driver :param 'SecretReferencePatchArgs' controller_expand_secret_ref: controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. :param 'SecretReferencePatchArgs' controller_publish_secret_ref: controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. :param str driver: driver is the name of the driver to use for this volume. Required. @@ -9568,10 +9568,14 @@ def read_only(self) -> Optional[bool]: @pulumi.output_type class GRPCAction(dict): + """ + GRPCAction specifies an action involving a GRPC service. + """ def __init__(__self__, *, port: int, service: Optional[str] = None): """ + GRPCAction specifies an action involving a GRPC service. :param int port: Port number of the gRPC service. Number must be in the range 1 to 65535. :param str service: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). @@ -9602,10 +9606,14 @@ def service(self) -> Optional[str]: @pulumi.output_type class GRPCActionPatch(dict): + """ + GRPCAction specifies an action involving a GRPC service. + """ def __init__(__self__, *, port: Optional[int] = None, service: Optional[str] = None): """ + GRPCAction specifies an action involving a GRPC service. :param int port: Port number of the gRPC service. Number must be in the range 1 to 65535. :param str service: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). @@ -11415,10 +11423,10 @@ def __init__(__self__, *, tcp_socket: Optional['outputs.TCPSocketAction'] = None): """ LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. - :param 'ExecActionArgs' exec_: Exec specifies the action to take. - :param 'HTTPGetActionArgs' http_get: HTTPGet specifies the http request to perform. - :param 'SleepActionArgs' sleep: Sleep represents the duration that the container should sleep before being terminated. - :param 'TCPSocketActionArgs' tcp_socket: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + :param 'ExecActionArgs' exec_: Exec specifies a command to execute in the container. + :param 'HTTPGetActionArgs' http_get: HTTPGet specifies an HTTP GET request to perform. + :param 'SleepActionArgs' sleep: Sleep represents a duration that the container should sleep. + :param 'TCPSocketActionArgs' tcp_socket: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ if exec_ is not None: pulumi.set(__self__, "exec_", exec_) @@ -11433,7 +11441,7 @@ def __init__(__self__, *, @pulumi.getter(name="exec") def exec_(self) -> Optional['outputs.ExecAction']: """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ return pulumi.get(self, "exec_") @@ -11441,7 +11449,7 @@ def exec_(self) -> Optional['outputs.ExecAction']: @pulumi.getter(name="httpGet") def http_get(self) -> Optional['outputs.HTTPGetAction']: """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ return pulumi.get(self, "http_get") @@ -11449,7 +11457,7 @@ def http_get(self) -> Optional['outputs.HTTPGetAction']: @pulumi.getter def sleep(self) -> Optional['outputs.SleepAction']: """ - Sleep represents the duration that the container should sleep before being terminated. + Sleep represents a duration that the container should sleep. """ return pulumi.get(self, "sleep") @@ -11457,7 +11465,7 @@ def sleep(self) -> Optional['outputs.SleepAction']: @pulumi.getter(name="tcpSocket") def tcp_socket(self) -> Optional['outputs.TCPSocketAction']: """ - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ return pulumi.get(self, "tcp_socket") @@ -11495,10 +11503,10 @@ def __init__(__self__, *, tcp_socket: Optional['outputs.TCPSocketActionPatch'] = None): """ LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. - :param 'ExecActionPatchArgs' exec_: Exec specifies the action to take. - :param 'HTTPGetActionPatchArgs' http_get: HTTPGet specifies the http request to perform. - :param 'SleepActionPatchArgs' sleep: Sleep represents the duration that the container should sleep before being terminated. - :param 'TCPSocketActionPatchArgs' tcp_socket: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + :param 'ExecActionPatchArgs' exec_: Exec specifies a command to execute in the container. + :param 'HTTPGetActionPatchArgs' http_get: HTTPGet specifies an HTTP GET request to perform. + :param 'SleepActionPatchArgs' sleep: Sleep represents a duration that the container should sleep. + :param 'TCPSocketActionPatchArgs' tcp_socket: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ if exec_ is not None: pulumi.set(__self__, "exec_", exec_) @@ -11513,7 +11521,7 @@ def __init__(__self__, *, @pulumi.getter(name="exec") def exec_(self) -> Optional['outputs.ExecActionPatch']: """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ return pulumi.get(self, "exec_") @@ -11521,7 +11529,7 @@ def exec_(self) -> Optional['outputs.ExecActionPatch']: @pulumi.getter(name="httpGet") def http_get(self) -> Optional['outputs.HTTPGetActionPatch']: """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ return pulumi.get(self, "http_get") @@ -11529,7 +11537,7 @@ def http_get(self) -> Optional['outputs.HTTPGetActionPatch']: @pulumi.getter def sleep(self) -> Optional['outputs.SleepActionPatch']: """ - Sleep represents the duration that the container should sleep before being terminated. + Sleep represents a duration that the container should sleep. """ return pulumi.get(self, "sleep") @@ -11537,7 +11545,7 @@ def sleep(self) -> Optional['outputs.SleepActionPatch']: @pulumi.getter(name="tcpSocket") def tcp_socket(self) -> Optional['outputs.TCPSocketActionPatch']: """ - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified. """ return pulumi.get(self, "tcp_socket") @@ -12293,7 +12301,7 @@ def name(self) -> Optional[str]: @pulumi.output_type class LocalVolumeSource(dict): """ - Local represents directly-attached storage with node affinity (Beta feature) + Local represents directly-attached storage with node affinity """ @staticmethod def __key_warning(key: str): @@ -12316,7 +12324,7 @@ def __init__(__self__, *, path: str, fs_type: Optional[str] = None): """ - Local represents directly-attached storage with node affinity (Beta feature) + Local represents directly-attached storage with node affinity :param str path: path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). :param str fs_type: fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. """ @@ -12344,7 +12352,7 @@ def fs_type(self) -> Optional[str]: @pulumi.output_type class LocalVolumeSourcePatch(dict): """ - Local represents directly-attached storage with node affinity (Beta feature) + Local represents directly-attached storage with node affinity """ @staticmethod def __key_warning(key: str): @@ -12367,7 +12375,7 @@ def __init__(__self__, *, fs_type: Optional[str] = None, path: Optional[str] = None): """ - Local represents directly-attached storage with node affinity (Beta feature) + Local represents directly-attached storage with node affinity :param str fs_type: fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. :param str path: path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). """ @@ -12778,6 +12786,9 @@ def __init__(__self__, *, NamespaceCondition contains details about state of namespace. :param str status: Status of the condition, one of True, False, Unknown. :param str type: Type of namespace controller condition. + :param str last_transition_time: Last time the condition transitioned from one status to another. + :param str message: Human-readable message indicating details about last transition. + :param str reason: Unique, one-word, CamelCase reason for the condition's last transition. """ pulumi.set(__self__, "status", status) pulumi.set(__self__, "type", type) @@ -12807,16 +12818,25 @@ def type(self) -> str: @property @pulumi.getter(name="lastTransitionTime") def last_transition_time(self) -> Optional[str]: + """ + Last time the condition transitioned from one status to another. + """ return pulumi.get(self, "last_transition_time") @property @pulumi.getter def message(self) -> Optional[str]: + """ + Human-readable message indicating details about last transition. + """ return pulumi.get(self, "message") @property @pulumi.getter def reason(self) -> Optional[str]: + """ + Unique, one-word, CamelCase reason for the condition's last transition. + """ return pulumi.get(self, "reason") @@ -12850,6 +12870,9 @@ def __init__(__self__, *, type: Optional[str] = None): """ NamespaceCondition contains details about state of namespace. + :param str last_transition_time: Last time the condition transitioned from one status to another. + :param str message: Human-readable message indicating details about last transition. + :param str reason: Unique, one-word, CamelCase reason for the condition's last transition. :param str status: Status of the condition, one of True, False, Unknown. :param str type: Type of namespace controller condition. """ @@ -12867,16 +12890,25 @@ def __init__(__self__, *, @property @pulumi.getter(name="lastTransitionTime") def last_transition_time(self) -> Optional[str]: + """ + Last time the condition transitioned from one status to another. + """ return pulumi.get(self, "last_transition_time") @property @pulumi.getter def message(self) -> Optional[str]: + """ + Human-readable message indicating details about last transition. + """ return pulumi.get(self, "message") @property @pulumi.getter def reason(self) -> Optional[str]: + """ + Unique, one-word, CamelCase reason for the condition's last transition. + """ return pulumi.get(self, "reason") @property @@ -14613,15 +14645,15 @@ def __init__(__self__, *, volumes_in_use: Optional[Sequence[str]] = None): """ NodeStatus is information about the current status of a node. - :param Sequence['NodeAddressArgs'] addresses: List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + :param Sequence['NodeAddressArgs'] addresses: List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). :param Mapping[str, str] allocatable: Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. :param Mapping[str, str] capacity: Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity - :param Sequence['NodeConditionArgs'] conditions: Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + :param Sequence['NodeConditionArgs'] conditions: Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition :param 'NodeConfigStatusArgs' config: Status of the config assigned to the node via the dynamic Kubelet config feature. :param 'NodeDaemonEndpointsArgs' daemon_endpoints: Endpoints of daemons running on the Node. :param 'NodeFeaturesArgs' features: Features describes the set of features implemented by the CRI implementation. :param Sequence['ContainerImageArgs'] images: List of container images on this node - :param 'NodeSystemInfoArgs' node_info: Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + :param 'NodeSystemInfoArgs' node_info: Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info :param str phase: NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated. :param Sequence['NodeRuntimeHandlerArgs'] runtime_handlers: The available runtime handlers. :param Sequence['AttachedVolumeArgs'] volumes_attached: List of volumes that are attached to the node. @@ -14658,7 +14690,7 @@ def __init__(__self__, *, @pulumi.getter def addresses(self) -> Optional[Sequence['outputs.NodeAddress']]: """ - List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). """ return pulumi.get(self, "addresses") @@ -14682,7 +14714,7 @@ def capacity(self) -> Optional[Mapping[str, str]]: @pulumi.getter def conditions(self) -> Optional[Sequence['outputs.NodeCondition']]: """ - Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition """ return pulumi.get(self, "conditions") @@ -14722,7 +14754,7 @@ def images(self) -> Optional[Sequence['outputs.ContainerImage']]: @pulumi.getter(name="nodeInfo") def node_info(self) -> Optional['outputs.NodeSystemInfo']: """ - Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info """ return pulumi.get(self, "node_info") @@ -14805,15 +14837,15 @@ def __init__(__self__, *, volumes_in_use: Optional[Sequence[str]] = None): """ NodeStatus is information about the current status of a node. - :param Sequence['NodeAddressPatchArgs'] addresses: List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + :param Sequence['NodeAddressPatchArgs'] addresses: List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). :param Mapping[str, str] allocatable: Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. :param Mapping[str, str] capacity: Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity - :param Sequence['NodeConditionPatchArgs'] conditions: Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + :param Sequence['NodeConditionPatchArgs'] conditions: Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition :param 'NodeConfigStatusPatchArgs' config: Status of the config assigned to the node via the dynamic Kubelet config feature. :param 'NodeDaemonEndpointsPatchArgs' daemon_endpoints: Endpoints of daemons running on the Node. :param 'NodeFeaturesPatchArgs' features: Features describes the set of features implemented by the CRI implementation. :param Sequence['ContainerImagePatchArgs'] images: List of container images on this node - :param 'NodeSystemInfoPatchArgs' node_info: Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + :param 'NodeSystemInfoPatchArgs' node_info: Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info :param str phase: NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated. :param Sequence['NodeRuntimeHandlerPatchArgs'] runtime_handlers: The available runtime handlers. :param Sequence['AttachedVolumePatchArgs'] volumes_attached: List of volumes that are attached to the node. @@ -14850,7 +14882,7 @@ def __init__(__self__, *, @pulumi.getter def addresses(self) -> Optional[Sequence['outputs.NodeAddressPatch']]: """ - List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). + List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). """ return pulumi.get(self, "addresses") @@ -14874,7 +14906,7 @@ def capacity(self) -> Optional[Mapping[str, str]]: @pulumi.getter def conditions(self) -> Optional[Sequence['outputs.NodeConditionPatch']]: """ - Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition + Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition """ return pulumi.get(self, "conditions") @@ -14914,7 +14946,7 @@ def images(self) -> Optional[Sequence['outputs.ContainerImagePatch']]: @pulumi.getter(name="nodeInfo") def node_info(self) -> Optional['outputs.NodeSystemInfoPatch']: """ - Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info """ return pulumi.get(self, "node_info") @@ -15817,6 +15849,8 @@ def __init__(__self__, *, reason: Optional[str] = None): """ PersistentVolumeClaimCondition contains details about state of pvc + :param str status: Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + :param str type: Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about :param str last_probe_time: lastProbeTime is the time we probed the condition. :param str last_transition_time: lastTransitionTime is the time the condition transitioned from one status to another. :param str message: message is the human-readable message indicating details about last transition. @@ -15836,11 +15870,17 @@ def __init__(__self__, *, @property @pulumi.getter def status(self) -> str: + """ + Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + """ return pulumi.get(self, "status") @property @pulumi.getter def type(self) -> str: + """ + Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + """ return pulumi.get(self, "type") @property @@ -15913,6 +15953,8 @@ def __init__(__self__, *, :param str last_transition_time: lastTransitionTime is the time the condition transitioned from one status to another. :param str message: message is the human-readable message indicating details about last transition. :param str reason: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "Resizing" that means the underlying persistent volume is being resized. + :param str status: Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + :param str type: Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about """ if last_probe_time is not None: pulumi.set(__self__, "last_probe_time", last_probe_time) @@ -15962,11 +16004,17 @@ def reason(self) -> Optional[str]: @property @pulumi.getter def status(self) -> Optional[str]: + """ + Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required + """ return pulumi.get(self, "status") @property @pulumi.getter def type(self) -> Optional[str]: + """ + Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about + """ return pulumi.get(self, "type") @@ -17097,19 +17145,19 @@ def __init__(__self__, *, """ PersistentVolumeSpec is the specification of a persistent volume. :param Sequence[str] access_modes: accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes - :param 'AWSElasticBlockStoreVolumeSourceArgs' aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - :param 'AzureDiskVolumeSourceArgs' azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. - :param 'AzureFilePersistentVolumeSourceArgs' azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. + :param 'AWSElasticBlockStoreVolumeSourceArgs' aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + :param 'AzureDiskVolumeSourceArgs' azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. + :param 'AzureFilePersistentVolumeSourceArgs' azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. :param Mapping[str, str] capacity: capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity - :param 'CephFSPersistentVolumeSourceArgs' cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime - :param 'CinderPersistentVolumeSourceArgs' cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + :param 'CephFSPersistentVolumeSourceArgs' cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. + :param 'CinderPersistentVolumeSourceArgs' cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md :param 'ObjectReferenceArgs' claim_ref: claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding - :param 'CSIPersistentVolumeSourceArgs' csi: csi represents storage that is handled by an external CSI driver (Beta feature). + :param 'CSIPersistentVolumeSourceArgs' csi: csi represents storage that is handled by an external CSI driver. :param 'FCVolumeSourceArgs' fc: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. - :param 'FlexPersistentVolumeSourceArgs' flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. - :param 'FlockerVolumeSourceArgs' flocker: flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running - :param 'GCEPersistentDiskVolumeSourceArgs' gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - :param 'GlusterfsPersistentVolumeSourceArgs' glusterfs: glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + :param 'FlexPersistentVolumeSourceArgs' flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. + :param 'FlockerVolumeSourceArgs' flocker: flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. + :param 'GCEPersistentDiskVolumeSourceArgs' gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + :param 'GlusterfsPersistentVolumeSourceArgs' glusterfs: glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md :param 'HostPathVolumeSourceArgs' host_path: hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath :param 'ISCSIPersistentVolumeSourceArgs' iscsi: iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. :param 'LocalVolumeSourceArgs' local: local represents directly-attached storage with node affinity @@ -17117,16 +17165,16 @@ def __init__(__self__, *, :param 'NFSVolumeSourceArgs' nfs: nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs :param 'VolumeNodeAffinityArgs' node_affinity: nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. :param str persistent_volume_reclaim_policy: persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming - :param 'PhotonPersistentDiskVolumeSourceArgs' photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine - :param 'PortworxVolumeSourceArgs' portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine - :param 'QuobyteVolumeSourceArgs' quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime - :param 'RBDPersistentVolumeSourceArgs' rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md - :param 'ScaleIOPersistentVolumeSourceArgs' scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + :param 'PhotonPersistentDiskVolumeSourceArgs' photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. + :param 'PortworxVolumeSourceArgs' portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. + :param 'QuobyteVolumeSourceArgs' quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. + :param 'RBDPersistentVolumeSourceArgs' rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + :param 'ScaleIOPersistentVolumeSourceArgs' scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. :param str storage_class_name: storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. - :param 'StorageOSPersistentVolumeSourceArgs' storageos: storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + :param 'StorageOSPersistentVolumeSourceArgs' storageos: storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md :param str volume_attributes_class_name: Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). :param str volume_mode: volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. - :param 'VsphereVirtualDiskVolumeSourceArgs' vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + :param 'VsphereVirtualDiskVolumeSourceArgs' vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ if access_modes is not None: pulumi.set(__self__, "access_modes", access_modes) @@ -17203,7 +17251,7 @@ def access_modes(self) -> Optional[Sequence[str]]: @pulumi.getter(name="awsElasticBlockStore") def aws_elastic_block_store(self) -> Optional['outputs.AWSElasticBlockStoreVolumeSource']: """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ return pulumi.get(self, "aws_elastic_block_store") @@ -17211,7 +17259,7 @@ def aws_elastic_block_store(self) -> Optional['outputs.AWSElasticBlockStoreVolum @pulumi.getter(name="azureDisk") def azure_disk(self) -> Optional['outputs.AzureDiskVolumeSource']: """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_disk") @@ -17219,7 +17267,7 @@ def azure_disk(self) -> Optional['outputs.AzureDiskVolumeSource']: @pulumi.getter(name="azureFile") def azure_file(self) -> Optional['outputs.AzureFilePersistentVolumeSource']: """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_file") @@ -17235,7 +17283,7 @@ def capacity(self) -> Optional[Mapping[str, str]]: @pulumi.getter def cephfs(self) -> Optional['outputs.CephFSPersistentVolumeSource']: """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ return pulumi.get(self, "cephfs") @@ -17243,7 +17291,7 @@ def cephfs(self) -> Optional['outputs.CephFSPersistentVolumeSource']: @pulumi.getter def cinder(self) -> Optional['outputs.CinderPersistentVolumeSource']: """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ return pulumi.get(self, "cinder") @@ -17259,7 +17307,7 @@ def claim_ref(self) -> Optional['outputs.ObjectReference']: @pulumi.getter def csi(self) -> Optional['outputs.CSIPersistentVolumeSource']: """ - csi represents storage that is handled by an external CSI driver (Beta feature). + csi represents storage that is handled by an external CSI driver. """ return pulumi.get(self, "csi") @@ -17275,7 +17323,7 @@ def fc(self) -> Optional['outputs.FCVolumeSource']: @pulumi.getter(name="flexVolume") def flex_volume(self) -> Optional['outputs.FlexPersistentVolumeSource']: """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ return pulumi.get(self, "flex_volume") @@ -17283,7 +17331,7 @@ def flex_volume(self) -> Optional['outputs.FlexPersistentVolumeSource']: @pulumi.getter def flocker(self) -> Optional['outputs.FlockerVolumeSource']: """ - flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ return pulumi.get(self, "flocker") @@ -17291,7 +17339,7 @@ def flocker(self) -> Optional['outputs.FlockerVolumeSource']: @pulumi.getter(name="gcePersistentDisk") def gce_persistent_disk(self) -> Optional['outputs.GCEPersistentDiskVolumeSource']: """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ return pulumi.get(self, "gce_persistent_disk") @@ -17299,7 +17347,7 @@ def gce_persistent_disk(self) -> Optional['outputs.GCEPersistentDiskVolumeSource @pulumi.getter def glusterfs(self) -> Optional['outputs.GlusterfsPersistentVolumeSource']: """ - glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ return pulumi.get(self, "glusterfs") @@ -17363,7 +17411,7 @@ def persistent_volume_reclaim_policy(self) -> Optional[str]: @pulumi.getter(name="photonPersistentDisk") def photon_persistent_disk(self) -> Optional['outputs.PhotonPersistentDiskVolumeSource']: """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ return pulumi.get(self, "photon_persistent_disk") @@ -17371,7 +17419,7 @@ def photon_persistent_disk(self) -> Optional['outputs.PhotonPersistentDiskVolume @pulumi.getter(name="portworxVolume") def portworx_volume(self) -> Optional['outputs.PortworxVolumeSource']: """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ return pulumi.get(self, "portworx_volume") @@ -17379,7 +17427,7 @@ def portworx_volume(self) -> Optional['outputs.PortworxVolumeSource']: @pulumi.getter def quobyte(self) -> Optional['outputs.QuobyteVolumeSource']: """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ return pulumi.get(self, "quobyte") @@ -17387,7 +17435,7 @@ def quobyte(self) -> Optional['outputs.QuobyteVolumeSource']: @pulumi.getter def rbd(self) -> Optional['outputs.RBDPersistentVolumeSource']: """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ return pulumi.get(self, "rbd") @@ -17395,7 +17443,7 @@ def rbd(self) -> Optional['outputs.RBDPersistentVolumeSource']: @pulumi.getter(name="scaleIO") def scale_io(self) -> Optional['outputs.ScaleIOPersistentVolumeSource']: """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ return pulumi.get(self, "scale_io") @@ -17411,7 +17459,7 @@ def storage_class_name(self) -> Optional[str]: @pulumi.getter def storageos(self) -> Optional['outputs.StorageOSPersistentVolumeSource']: """ - storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md """ return pulumi.get(self, "storageos") @@ -17435,7 +17483,7 @@ def volume_mode(self) -> Optional[str]: @pulumi.getter(name="vsphereVolume") def vsphere_volume(self) -> Optional['outputs.VsphereVirtualDiskVolumeSource']: """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ return pulumi.get(self, "vsphere_volume") @@ -17531,19 +17579,19 @@ def __init__(__self__, *, """ PersistentVolumeSpec is the specification of a persistent volume. :param Sequence[str] access_modes: accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes - :param 'AWSElasticBlockStoreVolumeSourcePatchArgs' aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - :param 'AzureDiskVolumeSourcePatchArgs' azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. - :param 'AzureFilePersistentVolumeSourcePatchArgs' azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. + :param 'AWSElasticBlockStoreVolumeSourcePatchArgs' aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + :param 'AzureDiskVolumeSourcePatchArgs' azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. + :param 'AzureFilePersistentVolumeSourcePatchArgs' azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. :param Mapping[str, str] capacity: capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity - :param 'CephFSPersistentVolumeSourcePatchArgs' cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime - :param 'CinderPersistentVolumeSourcePatchArgs' cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + :param 'CephFSPersistentVolumeSourcePatchArgs' cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. + :param 'CinderPersistentVolumeSourcePatchArgs' cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md :param 'ObjectReferencePatchArgs' claim_ref: claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding - :param 'CSIPersistentVolumeSourcePatchArgs' csi: csi represents storage that is handled by an external CSI driver (Beta feature). + :param 'CSIPersistentVolumeSourcePatchArgs' csi: csi represents storage that is handled by an external CSI driver. :param 'FCVolumeSourcePatchArgs' fc: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. - :param 'FlexPersistentVolumeSourcePatchArgs' flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. - :param 'FlockerVolumeSourcePatchArgs' flocker: flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running - :param 'GCEPersistentDiskVolumeSourcePatchArgs' gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - :param 'GlusterfsPersistentVolumeSourcePatchArgs' glusterfs: glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + :param 'FlexPersistentVolumeSourcePatchArgs' flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. + :param 'FlockerVolumeSourcePatchArgs' flocker: flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. + :param 'GCEPersistentDiskVolumeSourcePatchArgs' gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + :param 'GlusterfsPersistentVolumeSourcePatchArgs' glusterfs: glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md :param 'HostPathVolumeSourcePatchArgs' host_path: hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath :param 'ISCSIPersistentVolumeSourcePatchArgs' iscsi: iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. :param 'LocalVolumeSourcePatchArgs' local: local represents directly-attached storage with node affinity @@ -17551,16 +17599,16 @@ def __init__(__self__, *, :param 'NFSVolumeSourcePatchArgs' nfs: nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs :param 'VolumeNodeAffinityPatchArgs' node_affinity: nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. :param str persistent_volume_reclaim_policy: persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming - :param 'PhotonPersistentDiskVolumeSourcePatchArgs' photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine - :param 'PortworxVolumeSourcePatchArgs' portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine - :param 'QuobyteVolumeSourcePatchArgs' quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime - :param 'RBDPersistentVolumeSourcePatchArgs' rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md - :param 'ScaleIOPersistentVolumeSourcePatchArgs' scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + :param 'PhotonPersistentDiskVolumeSourcePatchArgs' photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. + :param 'PortworxVolumeSourcePatchArgs' portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. + :param 'QuobyteVolumeSourcePatchArgs' quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. + :param 'RBDPersistentVolumeSourcePatchArgs' rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + :param 'ScaleIOPersistentVolumeSourcePatchArgs' scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. :param str storage_class_name: storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. - :param 'StorageOSPersistentVolumeSourcePatchArgs' storageos: storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + :param 'StorageOSPersistentVolumeSourcePatchArgs' storageos: storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md :param str volume_attributes_class_name: Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). :param str volume_mode: volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. - :param 'VsphereVirtualDiskVolumeSourcePatchArgs' vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + :param 'VsphereVirtualDiskVolumeSourcePatchArgs' vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ if access_modes is not None: pulumi.set(__self__, "access_modes", access_modes) @@ -17637,7 +17685,7 @@ def access_modes(self) -> Optional[Sequence[str]]: @pulumi.getter(name="awsElasticBlockStore") def aws_elastic_block_store(self) -> Optional['outputs.AWSElasticBlockStoreVolumeSourcePatch']: """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ return pulumi.get(self, "aws_elastic_block_store") @@ -17645,7 +17693,7 @@ def aws_elastic_block_store(self) -> Optional['outputs.AWSElasticBlockStoreVolum @pulumi.getter(name="azureDisk") def azure_disk(self) -> Optional['outputs.AzureDiskVolumeSourcePatch']: """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_disk") @@ -17653,7 +17701,7 @@ def azure_disk(self) -> Optional['outputs.AzureDiskVolumeSourcePatch']: @pulumi.getter(name="azureFile") def azure_file(self) -> Optional['outputs.AzureFilePersistentVolumeSourcePatch']: """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_file") @@ -17669,7 +17717,7 @@ def capacity(self) -> Optional[Mapping[str, str]]: @pulumi.getter def cephfs(self) -> Optional['outputs.CephFSPersistentVolumeSourcePatch']: """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ return pulumi.get(self, "cephfs") @@ -17677,7 +17725,7 @@ def cephfs(self) -> Optional['outputs.CephFSPersistentVolumeSourcePatch']: @pulumi.getter def cinder(self) -> Optional['outputs.CinderPersistentVolumeSourcePatch']: """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ return pulumi.get(self, "cinder") @@ -17693,7 +17741,7 @@ def claim_ref(self) -> Optional['outputs.ObjectReferencePatch']: @pulumi.getter def csi(self) -> Optional['outputs.CSIPersistentVolumeSourcePatch']: """ - csi represents storage that is handled by an external CSI driver (Beta feature). + csi represents storage that is handled by an external CSI driver. """ return pulumi.get(self, "csi") @@ -17709,7 +17757,7 @@ def fc(self) -> Optional['outputs.FCVolumeSourcePatch']: @pulumi.getter(name="flexVolume") def flex_volume(self) -> Optional['outputs.FlexPersistentVolumeSourcePatch']: """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ return pulumi.get(self, "flex_volume") @@ -17717,7 +17765,7 @@ def flex_volume(self) -> Optional['outputs.FlexPersistentVolumeSourcePatch']: @pulumi.getter def flocker(self) -> Optional['outputs.FlockerVolumeSourcePatch']: """ - flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ return pulumi.get(self, "flocker") @@ -17725,7 +17773,7 @@ def flocker(self) -> Optional['outputs.FlockerVolumeSourcePatch']: @pulumi.getter(name="gcePersistentDisk") def gce_persistent_disk(self) -> Optional['outputs.GCEPersistentDiskVolumeSourcePatch']: """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ return pulumi.get(self, "gce_persistent_disk") @@ -17733,7 +17781,7 @@ def gce_persistent_disk(self) -> Optional['outputs.GCEPersistentDiskVolumeSource @pulumi.getter def glusterfs(self) -> Optional['outputs.GlusterfsPersistentVolumeSourcePatch']: """ - glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ return pulumi.get(self, "glusterfs") @@ -17797,7 +17845,7 @@ def persistent_volume_reclaim_policy(self) -> Optional[str]: @pulumi.getter(name="photonPersistentDisk") def photon_persistent_disk(self) -> Optional['outputs.PhotonPersistentDiskVolumeSourcePatch']: """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ return pulumi.get(self, "photon_persistent_disk") @@ -17805,7 +17853,7 @@ def photon_persistent_disk(self) -> Optional['outputs.PhotonPersistentDiskVolume @pulumi.getter(name="portworxVolume") def portworx_volume(self) -> Optional['outputs.PortworxVolumeSourcePatch']: """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ return pulumi.get(self, "portworx_volume") @@ -17813,7 +17861,7 @@ def portworx_volume(self) -> Optional['outputs.PortworxVolumeSourcePatch']: @pulumi.getter def quobyte(self) -> Optional['outputs.QuobyteVolumeSourcePatch']: """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ return pulumi.get(self, "quobyte") @@ -17821,7 +17869,7 @@ def quobyte(self) -> Optional['outputs.QuobyteVolumeSourcePatch']: @pulumi.getter def rbd(self) -> Optional['outputs.RBDPersistentVolumeSourcePatch']: """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ return pulumi.get(self, "rbd") @@ -17829,7 +17877,7 @@ def rbd(self) -> Optional['outputs.RBDPersistentVolumeSourcePatch']: @pulumi.getter(name="scaleIO") def scale_io(self) -> Optional['outputs.ScaleIOPersistentVolumeSourcePatch']: """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ return pulumi.get(self, "scale_io") @@ -17845,7 +17893,7 @@ def storage_class_name(self) -> Optional[str]: @pulumi.getter def storageos(self) -> Optional['outputs.StorageOSPersistentVolumeSourcePatch']: """ - storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md + storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md """ return pulumi.get(self, "storageos") @@ -17869,7 +17917,7 @@ def volume_mode(self) -> Optional[str]: @pulumi.getter(name="vsphereVolume") def vsphere_volume(self) -> Optional['outputs.VsphereVirtualDiskVolumeSourcePatch']: """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ return pulumi.get(self, "vsphere_volume") @@ -18941,7 +18989,8 @@ def __init__(__self__, *, value: Optional[str] = None): """ PodDNSConfigOption defines DNS resolver options of a pod. - :param str name: Required. + :param str name: Name is this DNS resolver option's name. Required. + :param str value: Value is this DNS resolver option's value. """ if name is not None: pulumi.set(__self__, "name", name) @@ -18952,13 +19001,16 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> Optional[str]: """ - Required. + Name is this DNS resolver option's name. Required. """ return pulumi.get(self, "name") @property @pulumi.getter def value(self) -> Optional[str]: + """ + Value is this DNS resolver option's value. + """ return pulumi.get(self, "value") @@ -18972,7 +19024,8 @@ def __init__(__self__, *, value: Optional[str] = None): """ PodDNSConfigOption defines DNS resolver options of a pod. - :param str name: Required. + :param str name: Name is this DNS resolver option's name. Required. + :param str value: Value is this DNS resolver option's value. """ if name is not None: pulumi.set(__self__, "name", name) @@ -18983,13 +19036,16 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> Optional[str]: """ - Required. + Name is this DNS resolver option's name. Required. """ return pulumi.get(self, "name") @property @pulumi.getter def value(self) -> Optional[str]: + """ + Value is this DNS resolver option's value. + """ return pulumi.get(self, "value") @@ -19572,6 +19628,8 @@ def __key_warning(key: str): suggest = "run_as_non_root" elif key == "runAsUser": suggest = "run_as_user" + elif key == "seLinuxChangePolicy": + suggest = "se_linux_change_policy" elif key == "seLinuxOptions": suggest = "se_linux_options" elif key == "seccompProfile": @@ -19601,6 +19659,7 @@ def __init__(__self__, *, run_as_group: Optional[int] = None, run_as_non_root: Optional[bool] = None, run_as_user: Optional[int] = None, + se_linux_change_policy: Optional[str] = None, se_linux_options: Optional['outputs.SELinuxOptions'] = None, seccomp_profile: Optional['outputs.SeccompProfile'] = None, supplemental_groups: Optional[Sequence[int]] = None, @@ -19619,6 +19678,17 @@ def __init__(__self__, *, :param int run_as_group: The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. :param bool run_as_non_root: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. :param int run_as_user: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + :param str se_linux_change_policy: seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. :param 'SELinuxOptionsArgs' se_linux_options: The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. :param 'SeccompProfileArgs' seccomp_profile: The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. :param Sequence[int] supplemental_groups: A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. @@ -19638,6 +19708,8 @@ def __init__(__self__, *, pulumi.set(__self__, "run_as_non_root", run_as_non_root) if run_as_user is not None: pulumi.set(__self__, "run_as_user", run_as_user) + if se_linux_change_policy is not None: + pulumi.set(__self__, "se_linux_change_policy", se_linux_change_policy) if se_linux_options is not None: pulumi.set(__self__, "se_linux_options", se_linux_options) if seccomp_profile is not None: @@ -19703,6 +19775,24 @@ def run_as_user(self) -> Optional[int]: """ return pulumi.get(self, "run_as_user") + @property + @pulumi.getter(name="seLinuxChangePolicy") + def se_linux_change_policy(self) -> Optional[str]: + """ + seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + """ + return pulumi.get(self, "se_linux_change_policy") + @property @pulumi.getter(name="seLinuxOptions") def se_linux_options(self) -> Optional['outputs.SELinuxOptions']: @@ -19772,6 +19862,8 @@ def __key_warning(key: str): suggest = "run_as_non_root" elif key == "runAsUser": suggest = "run_as_user" + elif key == "seLinuxChangePolicy": + suggest = "se_linux_change_policy" elif key == "seLinuxOptions": suggest = "se_linux_options" elif key == "seccompProfile": @@ -19801,6 +19893,7 @@ def __init__(__self__, *, run_as_group: Optional[int] = None, run_as_non_root: Optional[bool] = None, run_as_user: Optional[int] = None, + se_linux_change_policy: Optional[str] = None, se_linux_options: Optional['outputs.SELinuxOptionsPatch'] = None, seccomp_profile: Optional['outputs.SeccompProfilePatch'] = None, supplemental_groups: Optional[Sequence[int]] = None, @@ -19819,6 +19912,17 @@ def __init__(__self__, *, :param int run_as_group: The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. :param bool run_as_non_root: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. :param int run_as_user: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + :param str se_linux_change_policy: seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. :param 'SELinuxOptionsPatchArgs' se_linux_options: The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. :param 'SeccompProfilePatchArgs' seccomp_profile: The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. :param Sequence[int] supplemental_groups: A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. @@ -19838,6 +19942,8 @@ def __init__(__self__, *, pulumi.set(__self__, "run_as_non_root", run_as_non_root) if run_as_user is not None: pulumi.set(__self__, "run_as_user", run_as_user) + if se_linux_change_policy is not None: + pulumi.set(__self__, "se_linux_change_policy", se_linux_change_policy) if se_linux_options is not None: pulumi.set(__self__, "se_linux_options", se_linux_options) if seccomp_profile is not None: @@ -19903,6 +20009,24 @@ def run_as_user(self) -> Optional[int]: """ return pulumi.get(self, "run_as_user") + @property + @pulumi.getter(name="seLinuxChangePolicy") + def se_linux_change_policy(self) -> Optional[str]: + """ + seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are "MountOption" and "Recursive". + + "Recursive" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node. + + "MountOption" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. "MountOption" value is allowed only when SELinuxMount feature gate is enabled. + + If not specified and SELinuxMount feature gate is enabled, "MountOption" is used. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all other volumes. + + This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers. + + All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows. + """ + return pulumi.get(self, "se_linux_change_policy") + @property @pulumi.getter(name="seLinuxOptions") def se_linux_options(self) -> Optional['outputs.SELinuxOptionsPatch']: @@ -20058,6 +20182,7 @@ def __init__(__self__, *, priority_class_name: Optional[str] = None, readiness_gates: Optional[Sequence['outputs.PodReadinessGate']] = None, resource_claims: Optional[Sequence['outputs.PodResourceClaim']] = None, + resources: Optional['outputs.ResourceRequirements'] = None, restart_policy: Optional[str] = None, runtime_class_name: Optional[str] = None, scheduler_name: Optional[str] = None, @@ -20107,6 +20232,11 @@ def __init__(__self__, *, This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. + :param 'ResourceRequirementsArgs' resources: Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. :param str restart_policy: Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy :param str runtime_class_name: RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class :param str scheduler_name: If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. @@ -20116,7 +20246,7 @@ def __init__(__self__, *, :param 'PodSecurityContextArgs' security_context: SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. :param str service_account: DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. :param str service_account_name: ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ - :param bool set_hostname_as_fqdn: If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + :param bool set_hostname_as_fqdn: If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. :param bool share_process_namespace: Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. :param str subdomain: If specified, the fully qualified Pod hostname will be "...svc.". If not specified, the pod will not have a domainname at all. :param int termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds. @@ -20173,6 +20303,8 @@ def __init__(__self__, *, pulumi.set(__self__, "readiness_gates", readiness_gates) if resource_claims is not None: pulumi.set(__self__, "resource_claims", resource_claims) + if resources is not None: + pulumi.set(__self__, "resources", resources) if restart_policy is not None: pulumi.set(__self__, "restart_policy", restart_policy) if runtime_class_name is not None: @@ -20410,6 +20542,18 @@ def resource_claims(self) -> Optional[Sequence['outputs.PodResourceClaim']]: """ return pulumi.get(self, "resource_claims") + @property + @pulumi.getter + def resources(self) -> Optional['outputs.ResourceRequirements']: + """ + Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. + """ + return pulumi.get(self, "resources") + @property @pulumi.getter(name="restartPolicy") def restart_policy(self) -> Optional[str]: @@ -20472,7 +20616,7 @@ def service_account_name(self) -> Optional[str]: @pulumi.getter(name="setHostnameAsFQDN") def set_hostname_as_fqdn(self) -> Optional[bool]: """ - If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. """ return pulumi.get(self, "set_hostname_as_fqdn") @@ -20631,6 +20775,7 @@ def __init__(__self__, *, priority_class_name: Optional[str] = None, readiness_gates: Optional[Sequence['outputs.PodReadinessGatePatch']] = None, resource_claims: Optional[Sequence['outputs.PodResourceClaimPatch']] = None, + resources: Optional['outputs.ResourceRequirementsPatch'] = None, restart_policy: Optional[str] = None, runtime_class_name: Optional[str] = None, scheduler_name: Optional[str] = None, @@ -20680,6 +20825,11 @@ def __init__(__self__, *, This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. + :param 'ResourceRequirementsPatchArgs' resources: Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. :param str restart_policy: Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy :param str runtime_class_name: RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class :param str scheduler_name: If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. @@ -20689,7 +20839,7 @@ def __init__(__self__, *, :param 'PodSecurityContextPatchArgs' security_context: SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. :param str service_account: DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. :param str service_account_name: ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ - :param bool set_hostname_as_fqdn: If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + :param bool set_hostname_as_fqdn: If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. :param bool share_process_namespace: Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. :param str subdomain: If specified, the fully qualified Pod hostname will be "...svc.". If not specified, the pod will not have a domainname at all. :param int termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds. @@ -20747,6 +20897,8 @@ def __init__(__self__, *, pulumi.set(__self__, "readiness_gates", readiness_gates) if resource_claims is not None: pulumi.set(__self__, "resource_claims", resource_claims) + if resources is not None: + pulumi.set(__self__, "resources", resources) if restart_policy is not None: pulumi.set(__self__, "restart_policy", restart_policy) if runtime_class_name is not None: @@ -20984,6 +21136,18 @@ def resource_claims(self) -> Optional[Sequence['outputs.PodResourceClaimPatch']] """ return pulumi.get(self, "resource_claims") + @property + @pulumi.getter + def resources(self) -> Optional['outputs.ResourceRequirementsPatch']: + """ + Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + + This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. + + This is an alpha field and requires enabling the PodLevelResources feature gate. + """ + return pulumi.get(self, "resources") + @property @pulumi.getter(name="restartPolicy") def restart_policy(self) -> Optional[str]: @@ -21046,7 +21210,7 @@ def service_account_name(self) -> Optional[str]: @pulumi.getter(name="setHostnameAsFQDN") def set_hostname_as_fqdn(self) -> Optional[bool]: """ - If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. + If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. """ return pulumi.get(self, "set_hostname_as_fqdn") @@ -21161,11 +21325,11 @@ def __init__(__self__, *, """ PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. :param Sequence['PodConditionArgs'] conditions: Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions - :param Sequence['ContainerStatusArgs'] container_statuses: The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status - :param Sequence['ContainerStatusArgs'] ephemeral_container_statuses: Status for any ephemeral containers that have run in this pod. + :param Sequence['ContainerStatusArgs'] container_statuses: Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + :param Sequence['ContainerStatusArgs'] ephemeral_container_statuses: Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status :param str host_ip: hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod :param Sequence['HostIPArgs'] host_ips: hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. - :param Sequence['ContainerStatusArgs'] init_container_statuses: The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + :param Sequence['ContainerStatusArgs'] init_container_statuses: Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status :param str message: A human readable message indicating details about why the pod is in this condition. :param str nominated_node_name: nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. :param str phase: The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values: @@ -21226,7 +21390,7 @@ def conditions(self) -> Optional[Sequence['outputs.PodCondition']]: @pulumi.getter(name="containerStatuses") def container_statuses(self) -> Optional[Sequence['outputs.ContainerStatus']]: """ - The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status """ return pulumi.get(self, "container_statuses") @@ -21234,7 +21398,7 @@ def container_statuses(self) -> Optional[Sequence['outputs.ContainerStatus']]: @pulumi.getter(name="ephemeralContainerStatuses") def ephemeral_container_statuses(self) -> Optional[Sequence['outputs.ContainerStatus']]: """ - Status for any ephemeral containers that have run in this pod. + Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status """ return pulumi.get(self, "ephemeral_container_statuses") @@ -21258,7 +21422,7 @@ def host_ips(self) -> Optional[Sequence['outputs.HostIP']]: @pulumi.getter(name="initContainerStatuses") def init_container_statuses(self) -> Optional[Sequence['outputs.ContainerStatus']]: """ - The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status """ return pulumi.get(self, "init_container_statuses") @@ -21409,11 +21573,11 @@ def __init__(__self__, *, """ PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. :param Sequence['PodConditionPatchArgs'] conditions: Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions - :param Sequence['ContainerStatusPatchArgs'] container_statuses: The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status - :param Sequence['ContainerStatusPatchArgs'] ephemeral_container_statuses: Status for any ephemeral containers that have run in this pod. + :param Sequence['ContainerStatusPatchArgs'] container_statuses: Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + :param Sequence['ContainerStatusPatchArgs'] ephemeral_container_statuses: Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status :param str host_ip: hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod :param Sequence['HostIPPatchArgs'] host_ips: hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. - :param Sequence['ContainerStatusPatchArgs'] init_container_statuses: The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + :param Sequence['ContainerStatusPatchArgs'] init_container_statuses: Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status :param str message: A human readable message indicating details about why the pod is in this condition. :param str nominated_node_name: nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. :param str phase: The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values: @@ -21474,7 +21638,7 @@ def conditions(self) -> Optional[Sequence['outputs.PodConditionPatch']]: @pulumi.getter(name="containerStatuses") def container_statuses(self) -> Optional[Sequence['outputs.ContainerStatusPatch']]: """ - The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status """ return pulumi.get(self, "container_statuses") @@ -21482,7 +21646,7 @@ def container_statuses(self) -> Optional[Sequence['outputs.ContainerStatusPatch' @pulumi.getter(name="ephemeralContainerStatuses") def ephemeral_container_statuses(self) -> Optional[Sequence['outputs.ContainerStatusPatch']]: """ - Status for any ephemeral containers that have run in this pod. + Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status """ return pulumi.get(self, "ephemeral_container_statuses") @@ -21506,7 +21670,7 @@ def host_ips(self) -> Optional[Sequence['outputs.HostIPPatch']]: @pulumi.getter(name="initContainerStatuses") def init_container_statuses(self) -> Optional[Sequence['outputs.ContainerStatusPatch']]: """ - The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status + Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status """ return pulumi.get(self, "init_container_statuses") @@ -21743,11 +21907,15 @@ def spec(self) -> Optional['outputs.PodSpecPatch']: @pulumi.output_type class PortStatus(dict): + """ + PortStatus represents the error condition of a service port + """ def __init__(__self__, *, port: int, protocol: str, error: Optional[str] = None): """ + PortStatus represents the error condition of a service port :param int port: Port is the port number of the service port of which status is recorded here :param str protocol: Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP" :param str error: Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use @@ -21790,11 +21958,15 @@ def error(self) -> Optional[str]: @pulumi.output_type class PortStatusPatch(dict): + """ + PortStatus represents the error condition of a service port + """ def __init__(__self__, *, error: Optional[str] = None, port: Optional[int] = None, protocol: Optional[str] = None): """ + PortStatus represents the error condition of a service port :param str error: Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use CamelCase names - cloud provider specific error values must have names that comply with the @@ -22091,14 +22263,14 @@ def __init__(__self__, *, timeout_seconds: Optional[int] = None): """ Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. - :param 'ExecActionArgs' exec_: Exec specifies the action to take. + :param 'ExecActionArgs' exec_: Exec specifies a command to execute in the container. :param int failure_threshold: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. - :param 'GRPCActionArgs' grpc: GRPC specifies an action involving a GRPC port. - :param 'HTTPGetActionArgs' http_get: HTTPGet specifies the http request to perform. + :param 'GRPCActionArgs' grpc: GRPC specifies a GRPC HealthCheckRequest. + :param 'HTTPGetActionArgs' http_get: HTTPGet specifies an HTTP GET request to perform. :param int initial_delay_seconds: Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes :param int period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. :param int success_threshold: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - :param 'TCPSocketActionArgs' tcp_socket: TCPSocket specifies an action involving a TCP port. + :param 'TCPSocketActionArgs' tcp_socket: TCPSocket specifies a connection to a TCP port. :param int termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. :param int timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes """ @@ -22127,7 +22299,7 @@ def __init__(__self__, *, @pulumi.getter(name="exec") def exec_(self) -> Optional['outputs.ExecAction']: """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ return pulumi.get(self, "exec_") @@ -22143,7 +22315,7 @@ def failure_threshold(self) -> Optional[int]: @pulumi.getter def grpc(self) -> Optional['outputs.GRPCAction']: """ - GRPC specifies an action involving a GRPC port. + GRPC specifies a GRPC HealthCheckRequest. """ return pulumi.get(self, "grpc") @@ -22151,7 +22323,7 @@ def grpc(self) -> Optional['outputs.GRPCAction']: @pulumi.getter(name="httpGet") def http_get(self) -> Optional['outputs.HTTPGetAction']: """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ return pulumi.get(self, "http_get") @@ -22183,7 +22355,7 @@ def success_threshold(self) -> Optional[int]: @pulumi.getter(name="tcpSocket") def tcp_socket(self) -> Optional['outputs.TCPSocketAction']: """ - TCPSocket specifies an action involving a TCP port. + TCPSocket specifies a connection to a TCP port. """ return pulumi.get(self, "tcp_socket") @@ -22255,14 +22427,14 @@ def __init__(__self__, *, timeout_seconds: Optional[int] = None): """ Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. - :param 'ExecActionPatchArgs' exec_: Exec specifies the action to take. + :param 'ExecActionPatchArgs' exec_: Exec specifies a command to execute in the container. :param int failure_threshold: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. - :param 'GRPCActionPatchArgs' grpc: GRPC specifies an action involving a GRPC port. - :param 'HTTPGetActionPatchArgs' http_get: HTTPGet specifies the http request to perform. + :param 'GRPCActionPatchArgs' grpc: GRPC specifies a GRPC HealthCheckRequest. + :param 'HTTPGetActionPatchArgs' http_get: HTTPGet specifies an HTTP GET request to perform. :param int initial_delay_seconds: Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes :param int period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. :param int success_threshold: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - :param 'TCPSocketActionPatchArgs' tcp_socket: TCPSocket specifies an action involving a TCP port. + :param 'TCPSocketActionPatchArgs' tcp_socket: TCPSocket specifies a connection to a TCP port. :param int termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. :param int timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes """ @@ -22291,7 +22463,7 @@ def __init__(__self__, *, @pulumi.getter(name="exec") def exec_(self) -> Optional['outputs.ExecActionPatch']: """ - Exec specifies the action to take. + Exec specifies a command to execute in the container. """ return pulumi.get(self, "exec_") @@ -22307,7 +22479,7 @@ def failure_threshold(self) -> Optional[int]: @pulumi.getter def grpc(self) -> Optional['outputs.GRPCActionPatch']: """ - GRPC specifies an action involving a GRPC port. + GRPC specifies a GRPC HealthCheckRequest. """ return pulumi.get(self, "grpc") @@ -22315,7 +22487,7 @@ def grpc(self) -> Optional['outputs.GRPCActionPatch']: @pulumi.getter(name="httpGet") def http_get(self) -> Optional['outputs.HTTPGetActionPatch']: """ - HTTPGet specifies the http request to perform. + HTTPGet specifies an HTTP GET request to perform. """ return pulumi.get(self, "http_get") @@ -22347,7 +22519,7 @@ def success_threshold(self) -> Optional[int]: @pulumi.getter(name="tcpSocket") def tcp_socket(self) -> Optional['outputs.TCPSocketActionPatch']: """ - TCPSocket specifies an action involving a TCP port. + TCPSocket specifies a connection to a TCP port. """ return pulumi.get(self, "tcp_socket") @@ -24001,7 +24173,7 @@ def resource(self) -> Optional[str]: @pulumi.output_type class ResourceHealth(dict): """ - ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. """ @staticmethod def __key_warning(key: str): @@ -24024,7 +24196,7 @@ def __init__(__self__, *, resource_id: str, health: Optional[str] = None): """ - ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. :param str resource_id: ResourceID is the unique identifier of the resource. See the ResourceID type for more information. :param str health: Health of the resource. can be one of: - Healthy: operates as normal @@ -24068,7 +24240,7 @@ def health(self) -> Optional[str]: @pulumi.output_type class ResourceHealthPatch(dict): """ - ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. """ @staticmethod def __key_warning(key: str): @@ -24091,7 +24263,7 @@ def __init__(__self__, *, health: Optional[str] = None, resource_id: Optional[str] = None): """ - ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. + ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680. :param str health: Health of the resource. can be one of: - Healthy: operates as normal - Unhealthy: reported unhealthy. We consider this a temporary health issue @@ -24531,12 +24703,16 @@ def requests(self) -> Optional[Mapping[str, str]]: @pulumi.output_type class ResourceStatus(dict): + """ + ResourceStatus represents the status of a single resource allocated to a Pod. + """ def __init__(__self__, *, name: str, resources: Optional[Sequence['outputs.ResourceHealth']] = None): """ - :param str name: Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. - :param Sequence['ResourceHealthArgs'] resources: List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + ResourceStatus represents the status of a single resource allocated to a Pod. + :param str name: Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. + :param Sequence['ResourceHealthArgs'] resources: List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. """ pulumi.set(__self__, "name", name) if resources is not None: @@ -24546,7 +24722,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> str: """ - Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. """ return pulumi.get(self, "name") @@ -24554,19 +24730,23 @@ def name(self) -> str: @pulumi.getter def resources(self) -> Optional[Sequence['outputs.ResourceHealth']]: """ - List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. """ return pulumi.get(self, "resources") @pulumi.output_type class ResourceStatusPatch(dict): + """ + ResourceStatus represents the status of a single resource allocated to a Pod. + """ def __init__(__self__, *, name: Optional[str] = None, resources: Optional[Sequence['outputs.ResourceHealthPatch']] = None): """ - :param str name: Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. - :param Sequence['ResourceHealthPatchArgs'] resources: List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + ResourceStatus represents the status of a single resource allocated to a Pod. + :param str name: Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. + :param Sequence['ResourceHealthPatchArgs'] resources: List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. """ if name is not None: pulumi.set(__self__, "name", name) @@ -24577,7 +24757,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> Optional[str]: """ - Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. + Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be "claim:/". When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container. """ return pulumi.get(self, "name") @@ -24585,7 +24765,7 @@ def name(self) -> Optional[str]: @pulumi.getter def resources(self) -> Optional[Sequence['outputs.ResourceHealthPatch']]: """ - List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. + List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases. """ return pulumi.get(self, "resources") @@ -26850,7 +27030,7 @@ def __init__(__self__, *, :param Sequence['LocalObjectReferenceArgs'] image_pull_secrets: ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod :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 :param '_meta.v1.ObjectMetaArgs' metadata: Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - :param Sequence['ObjectReferenceArgs'] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + :param Sequence['ObjectReferenceArgs'] secrets: Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ if api_version is not None: pulumi.set(__self__, "api_version", 'v1') @@ -26909,7 +27089,7 @@ def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: @pulumi.getter def secrets(self) -> Optional[Sequence['outputs.ObjectReference']]: """ - Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret + Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". The "kubernetes.io/enforce-mountable-secrets" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret """ return pulumi.get(self, "secrets") @@ -27391,7 +27571,7 @@ def __init__(__self__, *, :param str session_affinity: Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies :param 'SessionAffinityConfigArgs' session_affinity_config: sessionAffinityConfig contains the configurations of session affinity. :param Sequence[str] topology_keys: topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value "*" may be used to mean "any topology". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. - :param str traffic_distribution: TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + :param str traffic_distribution: TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. :param Union[str, 'ServiceSpecType'] type: type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types """ if allocate_load_balancer_node_ports is not None: @@ -27607,7 +27787,7 @@ def topology_keys(self) -> Optional[Sequence[str]]: @pulumi.getter(name="trafficDistribution") def traffic_distribution(self) -> Optional[str]: """ - TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. """ return pulumi.get(self, "traffic_distribution") @@ -27727,7 +27907,7 @@ def __init__(__self__, *, :param str session_affinity: Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies :param 'SessionAffinityConfigPatchArgs' session_affinity_config: sessionAffinityConfig contains the configurations of session affinity. :param Sequence[str] topology_keys: topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value "*" may be used to mean "any topology". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. - :param str traffic_distribution: TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + :param str traffic_distribution: TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. :param Union[str, 'ServiceSpecType'] type: type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types """ if allocate_load_balancer_node_ports is not None: @@ -27943,7 +28123,7 @@ def topology_keys(self) -> Optional[Sequence[str]]: @pulumi.getter(name="trafficDistribution") def traffic_distribution(self) -> Optional[str]: """ - TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. + TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature. """ return pulumi.get(self, "traffic_distribution") @@ -29625,6 +29805,9 @@ def name(self) -> Optional[str]: @pulumi.output_type class TypedObjectReference(dict): + """ + TypedObjectReference contains enough information to let you locate the typed referenced object + """ @staticmethod def __key_warning(key: str): suggest = None @@ -29648,6 +29831,7 @@ def __init__(__self__, *, api_group: Optional[str] = None, namespace: Optional[str] = None): """ + TypedObjectReference contains enough information to let you locate the typed referenced object :param str kind: Kind is the type of resource being referenced :param str name: Name is the name of resource being referenced :param str api_group: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. @@ -29695,6 +29879,9 @@ def namespace(self) -> Optional[str]: @pulumi.output_type class TypedObjectReferencePatch(dict): + """ + TypedObjectReference contains enough information to let you locate the typed referenced object + """ @staticmethod def __key_warning(key: str): suggest = None @@ -29718,6 +29905,7 @@ def __init__(__self__, *, name: Optional[str] = None, namespace: Optional[str] = None): """ + TypedObjectReference contains enough information to let you locate the typed referenced object :param str api_group: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. :param str kind: Kind is the type of resource being referenced :param str name: Name is the name of resource being referenced @@ -29850,13 +30038,13 @@ def __init__(__self__, *, """ Volume represents a named volume in a pod that may be accessed by any container in the pod. :param str name: name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - :param 'AWSElasticBlockStoreVolumeSourceArgs' aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - :param 'AzureDiskVolumeSourceArgs' azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. - :param 'AzureFileVolumeSourceArgs' azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. - :param 'CephFSVolumeSourceArgs' cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime - :param 'CinderVolumeSourceArgs' cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + :param 'AWSElasticBlockStoreVolumeSourceArgs' aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + :param 'AzureDiskVolumeSourceArgs' azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. + :param 'AzureFileVolumeSourceArgs' azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. + :param 'CephFSVolumeSourceArgs' cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. + :param 'CinderVolumeSourceArgs' cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md :param 'ConfigMapVolumeSourceArgs' config_map: configMap represents a configMap that should populate this volume - :param 'CSIVolumeSourceArgs' csi: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + :param 'CSIVolumeSourceArgs' csi: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. :param 'DownwardAPIVolumeSourceArgs' downward_api: downwardAPI represents downward API about the pod that should populate this volume :param 'EmptyDirVolumeSourceArgs' empty_dir: emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir :param 'EphemeralVolumeSourceArgs' ephemeral: ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. @@ -29874,11 +30062,11 @@ def __init__(__self__, *, A pod can use both types of ephemeral volumes and persistent volumes at the same time. :param 'FCVolumeSourceArgs' fc: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. - :param 'FlexVolumeSourceArgs' flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. - :param 'FlockerVolumeSourceArgs' flocker: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running - :param 'GCEPersistentDiskVolumeSourceArgs' gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - :param 'GitRepoVolumeSourceArgs' git_repo: gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. - :param 'GlusterfsVolumeSourceArgs' glusterfs: glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + :param 'FlexVolumeSourceArgs' flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. + :param 'FlockerVolumeSourceArgs' flocker: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. + :param 'GCEPersistentDiskVolumeSourceArgs' gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + :param 'GitRepoVolumeSourceArgs' git_repo: gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + :param 'GlusterfsVolumeSourceArgs' glusterfs: glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md :param 'HostPathVolumeSourceArgs' host_path: hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath :param 'ImageVolumeSourceArgs' image: image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: @@ -29888,15 +30076,15 @@ def __init__(__self__, *, :param 'ISCSIVolumeSourceArgs' iscsi: iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md :param 'NFSVolumeSourceArgs' nfs: nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs :param 'PersistentVolumeClaimVolumeSourceArgs' persistent_volume_claim: persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims - :param 'PhotonPersistentDiskVolumeSourceArgs' photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine - :param 'PortworxVolumeSourceArgs' portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine + :param 'PhotonPersistentDiskVolumeSourceArgs' photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. + :param 'PortworxVolumeSourceArgs' portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. :param 'ProjectedVolumeSourceArgs' projected: projected items for all in one resources secrets, configmaps, and downward API - :param 'QuobyteVolumeSourceArgs' quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime - :param 'RBDVolumeSourceArgs' rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md - :param 'ScaleIOVolumeSourceArgs' scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + :param 'QuobyteVolumeSourceArgs' quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. + :param 'RBDVolumeSourceArgs' rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + :param 'ScaleIOVolumeSourceArgs' scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. :param 'SecretVolumeSourceArgs' secret: secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret - :param 'StorageOSVolumeSourceArgs' storageos: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. - :param 'VsphereVirtualDiskVolumeSourceArgs' vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + :param 'StorageOSVolumeSourceArgs' storageos: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. + :param 'VsphereVirtualDiskVolumeSourceArgs' vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ pulumi.set(__self__, "name", name) if aws_elastic_block_store is not None: @@ -29972,7 +30160,7 @@ def name(self) -> str: @pulumi.getter(name="awsElasticBlockStore") def aws_elastic_block_store(self) -> Optional['outputs.AWSElasticBlockStoreVolumeSource']: """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ return pulumi.get(self, "aws_elastic_block_store") @@ -29980,7 +30168,7 @@ def aws_elastic_block_store(self) -> Optional['outputs.AWSElasticBlockStoreVolum @pulumi.getter(name="azureDisk") def azure_disk(self) -> Optional['outputs.AzureDiskVolumeSource']: """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_disk") @@ -29988,7 +30176,7 @@ def azure_disk(self) -> Optional['outputs.AzureDiskVolumeSource']: @pulumi.getter(name="azureFile") def azure_file(self) -> Optional['outputs.AzureFileVolumeSource']: """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_file") @@ -29996,7 +30184,7 @@ def azure_file(self) -> Optional['outputs.AzureFileVolumeSource']: @pulumi.getter def cephfs(self) -> Optional['outputs.CephFSVolumeSource']: """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ return pulumi.get(self, "cephfs") @@ -30004,7 +30192,7 @@ def cephfs(self) -> Optional['outputs.CephFSVolumeSource']: @pulumi.getter def cinder(self) -> Optional['outputs.CinderVolumeSource']: """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ return pulumi.get(self, "cinder") @@ -30020,7 +30208,7 @@ def config_map(self) -> Optional['outputs.ConfigMapVolumeSource']: @pulumi.getter def csi(self) -> Optional['outputs.CSIVolumeSource']: """ - csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. """ return pulumi.get(self, "csi") @@ -30073,7 +30261,7 @@ def fc(self) -> Optional['outputs.FCVolumeSource']: @pulumi.getter(name="flexVolume") def flex_volume(self) -> Optional['outputs.FlexVolumeSource']: """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ return pulumi.get(self, "flex_volume") @@ -30081,7 +30269,7 @@ def flex_volume(self) -> Optional['outputs.FlexVolumeSource']: @pulumi.getter def flocker(self) -> Optional['outputs.FlockerVolumeSource']: """ - flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ return pulumi.get(self, "flocker") @@ -30089,7 +30277,7 @@ def flocker(self) -> Optional['outputs.FlockerVolumeSource']: @pulumi.getter(name="gcePersistentDisk") def gce_persistent_disk(self) -> Optional['outputs.GCEPersistentDiskVolumeSource']: """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ return pulumi.get(self, "gce_persistent_disk") @@ -30097,7 +30285,7 @@ def gce_persistent_disk(self) -> Optional['outputs.GCEPersistentDiskVolumeSource @pulumi.getter(name="gitRepo") def git_repo(self) -> Optional['outputs.GitRepoVolumeSource']: """ - gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. """ return pulumi.get(self, "git_repo") @@ -30105,7 +30293,7 @@ def git_repo(self) -> Optional['outputs.GitRepoVolumeSource']: @pulumi.getter def glusterfs(self) -> Optional['outputs.GlusterfsVolumeSource']: """ - glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ return pulumi.get(self, "glusterfs") @@ -30157,7 +30345,7 @@ def persistent_volume_claim(self) -> Optional['outputs.PersistentVolumeClaimVolu @pulumi.getter(name="photonPersistentDisk") def photon_persistent_disk(self) -> Optional['outputs.PhotonPersistentDiskVolumeSource']: """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ return pulumi.get(self, "photon_persistent_disk") @@ -30165,7 +30353,7 @@ def photon_persistent_disk(self) -> Optional['outputs.PhotonPersistentDiskVolume @pulumi.getter(name="portworxVolume") def portworx_volume(self) -> Optional['outputs.PortworxVolumeSource']: """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ return pulumi.get(self, "portworx_volume") @@ -30181,7 +30369,7 @@ def projected(self) -> Optional['outputs.ProjectedVolumeSource']: @pulumi.getter def quobyte(self) -> Optional['outputs.QuobyteVolumeSource']: """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ return pulumi.get(self, "quobyte") @@ -30189,7 +30377,7 @@ def quobyte(self) -> Optional['outputs.QuobyteVolumeSource']: @pulumi.getter def rbd(self) -> Optional['outputs.RBDVolumeSource']: """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ return pulumi.get(self, "rbd") @@ -30197,7 +30385,7 @@ def rbd(self) -> Optional['outputs.RBDVolumeSource']: @pulumi.getter(name="scaleIO") def scale_io(self) -> Optional['outputs.ScaleIOVolumeSource']: """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ return pulumi.get(self, "scale_io") @@ -30213,7 +30401,7 @@ def secret(self) -> Optional['outputs.SecretVolumeSource']: @pulumi.getter def storageos(self) -> Optional['outputs.StorageOSVolumeSource']: """ - storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. """ return pulumi.get(self, "storageos") @@ -30221,7 +30409,7 @@ def storageos(self) -> Optional['outputs.StorageOSVolumeSource']: @pulumi.getter(name="vsphereVolume") def vsphere_volume(self) -> Optional['outputs.VsphereVirtualDiskVolumeSource']: """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ return pulumi.get(self, "vsphere_volume") @@ -30890,13 +31078,13 @@ def __init__(__self__, *, vsphere_volume: Optional['outputs.VsphereVirtualDiskVolumeSourcePatch'] = None): """ Volume represents a named volume in a pod that may be accessed by any container in the pod. - :param 'AWSElasticBlockStoreVolumeSourcePatchArgs' aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - :param 'AzureDiskVolumeSourcePatchArgs' azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. - :param 'AzureFileVolumeSourcePatchArgs' azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. - :param 'CephFSVolumeSourcePatchArgs' cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime - :param 'CinderVolumeSourcePatchArgs' cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + :param 'AWSElasticBlockStoreVolumeSourcePatchArgs' aws_elastic_block_store: awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + :param 'AzureDiskVolumeSourcePatchArgs' azure_disk: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. + :param 'AzureFileVolumeSourcePatchArgs' azure_file: azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. + :param 'CephFSVolumeSourcePatchArgs' cephfs: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. + :param 'CinderVolumeSourcePatchArgs' cinder: cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md :param 'ConfigMapVolumeSourcePatchArgs' config_map: configMap represents a configMap that should populate this volume - :param 'CSIVolumeSourcePatchArgs' csi: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + :param 'CSIVolumeSourcePatchArgs' csi: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. :param 'DownwardAPIVolumeSourcePatchArgs' downward_api: downwardAPI represents downward API about the pod that should populate this volume :param 'EmptyDirVolumeSourcePatchArgs' empty_dir: emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir :param 'EphemeralVolumeSourcePatchArgs' ephemeral: ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. @@ -30914,11 +31102,11 @@ def __init__(__self__, *, A pod can use both types of ephemeral volumes and persistent volumes at the same time. :param 'FCVolumeSourcePatchArgs' fc: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. - :param 'FlexVolumeSourcePatchArgs' flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. - :param 'FlockerVolumeSourcePatchArgs' flocker: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running - :param 'GCEPersistentDiskVolumeSourcePatchArgs' gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - :param 'GitRepoVolumeSourcePatchArgs' git_repo: gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. - :param 'GlusterfsVolumeSourcePatchArgs' glusterfs: glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + :param 'FlexVolumeSourcePatchArgs' flex_volume: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. + :param 'FlockerVolumeSourcePatchArgs' flocker: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. + :param 'GCEPersistentDiskVolumeSourcePatchArgs' gce_persistent_disk: gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + :param 'GitRepoVolumeSourcePatchArgs' git_repo: gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + :param 'GlusterfsVolumeSourcePatchArgs' glusterfs: glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md :param 'HostPathVolumeSourcePatchArgs' host_path: hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath :param 'ImageVolumeSourcePatchArgs' image: image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: @@ -30929,15 +31117,15 @@ def __init__(__self__, *, :param str name: name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names :param 'NFSVolumeSourcePatchArgs' nfs: nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs :param 'PersistentVolumeClaimVolumeSourcePatchArgs' persistent_volume_claim: persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims - :param 'PhotonPersistentDiskVolumeSourcePatchArgs' photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine - :param 'PortworxVolumeSourcePatchArgs' portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine + :param 'PhotonPersistentDiskVolumeSourcePatchArgs' photon_persistent_disk: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. + :param 'PortworxVolumeSourcePatchArgs' portworx_volume: portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. :param 'ProjectedVolumeSourcePatchArgs' projected: projected items for all in one resources secrets, configmaps, and downward API - :param 'QuobyteVolumeSourcePatchArgs' quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime - :param 'RBDVolumeSourcePatchArgs' rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md - :param 'ScaleIOVolumeSourcePatchArgs' scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + :param 'QuobyteVolumeSourcePatchArgs' quobyte: quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. + :param 'RBDVolumeSourcePatchArgs' rbd: rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + :param 'ScaleIOVolumeSourcePatchArgs' scale_io: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. :param 'SecretVolumeSourcePatchArgs' secret: secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret - :param 'StorageOSVolumeSourcePatchArgs' storageos: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. - :param 'VsphereVirtualDiskVolumeSourcePatchArgs' vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + :param 'StorageOSVolumeSourcePatchArgs' storageos: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. + :param 'VsphereVirtualDiskVolumeSourcePatchArgs' vsphere_volume: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ if aws_elastic_block_store is not None: pulumi.set(__self__, "aws_elastic_block_store", aws_elastic_block_store) @@ -31006,7 +31194,7 @@ def __init__(__self__, *, @pulumi.getter(name="awsElasticBlockStore") def aws_elastic_block_store(self) -> Optional['outputs.AWSElasticBlockStoreVolumeSourcePatch']: """ - awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore """ return pulumi.get(self, "aws_elastic_block_store") @@ -31014,7 +31202,7 @@ def aws_elastic_block_store(self) -> Optional['outputs.AWSElasticBlockStoreVolum @pulumi.getter(name="azureDisk") def azure_disk(self) -> Optional['outputs.AzureDiskVolumeSourcePatch']: """ - azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_disk") @@ -31022,7 +31210,7 @@ def azure_disk(self) -> Optional['outputs.AzureDiskVolumeSourcePatch']: @pulumi.getter(name="azureFile") def azure_file(self) -> Optional['outputs.AzureFileVolumeSourcePatch']: """ - azureFile represents an Azure File Service mount on the host and bind mount to the pod. + azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver. """ return pulumi.get(self, "azure_file") @@ -31030,7 +31218,7 @@ def azure_file(self) -> Optional['outputs.AzureFileVolumeSourcePatch']: @pulumi.getter def cephfs(self) -> Optional['outputs.CephFSVolumeSourcePatch']: """ - cephFS represents a Ceph FS mount on the host that shares a pod's lifetime + cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported. """ return pulumi.get(self, "cephfs") @@ -31038,7 +31226,7 @@ def cephfs(self) -> Optional['outputs.CephFSVolumeSourcePatch']: @pulumi.getter def cinder(self) -> Optional['outputs.CinderVolumeSourcePatch']: """ - cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md """ return pulumi.get(self, "cinder") @@ -31054,7 +31242,7 @@ def config_map(self) -> Optional['outputs.ConfigMapVolumeSourcePatch']: @pulumi.getter def csi(self) -> Optional['outputs.CSIVolumeSourcePatch']: """ - csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. """ return pulumi.get(self, "csi") @@ -31107,7 +31295,7 @@ def fc(self) -> Optional['outputs.FCVolumeSourcePatch']: @pulumi.getter(name="flexVolume") def flex_volume(self) -> Optional['outputs.FlexVolumeSourcePatch']: """ - flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead. """ return pulumi.get(self, "flex_volume") @@ -31115,7 +31303,7 @@ def flex_volume(self) -> Optional['outputs.FlexVolumeSourcePatch']: @pulumi.getter def flocker(self) -> Optional['outputs.FlockerVolumeSourcePatch']: """ - flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported. """ return pulumi.get(self, "flocker") @@ -31123,7 +31311,7 @@ def flocker(self) -> Optional['outputs.FlockerVolumeSourcePatch']: @pulumi.getter(name="gcePersistentDisk") def gce_persistent_disk(self) -> Optional['outputs.GCEPersistentDiskVolumeSourcePatch']: """ - gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk """ return pulumi.get(self, "gce_persistent_disk") @@ -31131,7 +31319,7 @@ def gce_persistent_disk(self) -> Optional['outputs.GCEPersistentDiskVolumeSource @pulumi.getter(name="gitRepo") def git_repo(self) -> Optional['outputs.GitRepoVolumeSourcePatch']: """ - gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. """ return pulumi.get(self, "git_repo") @@ -31139,7 +31327,7 @@ def git_repo(self) -> Optional['outputs.GitRepoVolumeSourcePatch']: @pulumi.getter def glusterfs(self) -> Optional['outputs.GlusterfsVolumeSourcePatch']: """ - glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md """ return pulumi.get(self, "glusterfs") @@ -31199,7 +31387,7 @@ def persistent_volume_claim(self) -> Optional['outputs.PersistentVolumeClaimVolu @pulumi.getter(name="photonPersistentDisk") def photon_persistent_disk(self) -> Optional['outputs.PhotonPersistentDiskVolumeSourcePatch']: """ - photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported. """ return pulumi.get(self, "photon_persistent_disk") @@ -31207,7 +31395,7 @@ def photon_persistent_disk(self) -> Optional['outputs.PhotonPersistentDiskVolume @pulumi.getter(name="portworxVolume") def portworx_volume(self) -> Optional['outputs.PortworxVolumeSourcePatch']: """ - portworxVolume represents a portworx volume attached and mounted on kubelets host machine + portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on. """ return pulumi.get(self, "portworx_volume") @@ -31223,7 +31411,7 @@ def projected(self) -> Optional['outputs.ProjectedVolumeSourcePatch']: @pulumi.getter def quobyte(self) -> Optional['outputs.QuobyteVolumeSourcePatch']: """ - quobyte represents a Quobyte mount on the host that shares a pod's lifetime + quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. """ return pulumi.get(self, "quobyte") @@ -31231,7 +31419,7 @@ def quobyte(self) -> Optional['outputs.QuobyteVolumeSourcePatch']: @pulumi.getter def rbd(self) -> Optional['outputs.RBDVolumeSourcePatch']: """ - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md """ return pulumi.get(self, "rbd") @@ -31239,7 +31427,7 @@ def rbd(self) -> Optional['outputs.RBDVolumeSourcePatch']: @pulumi.getter(name="scaleIO") def scale_io(self) -> Optional['outputs.ScaleIOVolumeSourcePatch']: """ - scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. """ return pulumi.get(self, "scale_io") @@ -31255,7 +31443,7 @@ def secret(self) -> Optional['outputs.SecretVolumeSourcePatch']: @pulumi.getter def storageos(self) -> Optional['outputs.StorageOSVolumeSourcePatch']: """ - storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. """ return pulumi.get(self, "storageos") @@ -31263,7 +31451,7 @@ def storageos(self) -> Optional['outputs.StorageOSVolumeSourcePatch']: @pulumi.getter(name="vsphereVolume") def vsphere_volume(self) -> Optional['outputs.VsphereVirtualDiskVolumeSourcePatch']: """ - vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver. """ return pulumi.get(self, "vsphere_volume") diff --git a/sdk/python/pulumi_kubernetes/flowcontrol/v1beta3/_inputs.py b/sdk/python/pulumi_kubernetes/flowcontrol/v1beta3/_inputs.py index b4cba536ce..7d36dd8299 100644 --- a/sdk/python/pulumi_kubernetes/flowcontrol/v1beta3/_inputs.py +++ b/sdk/python/pulumi_kubernetes/flowcontrol/v1beta3/_inputs.py @@ -981,9 +981,9 @@ class LimitedPriorityLevelConfigurationPatchArgsDict(TypedDict): """ `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ elif False: LimitedPriorityLevelConfigurationPatchArgsDict: TypeAlias = Mapping[str, Any] @@ -1010,9 +1010,9 @@ def __init__(__self__, *, :param pulumi.Input['LimitResponsePatchArgs'] limit_response: `limitResponse` indicates what to do with requests that can not be executed right now :param pulumi.Input[int] nominal_concurrency_shares: `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ if borrowing_limit_percent is not None: pulumi.set(__self__, "borrowing_limit_percent", borrowing_limit_percent) @@ -1071,9 +1071,9 @@ def nominal_concurrency_shares(self) -> Optional[pulumi.Input[int]]: """ `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ return pulumi.get(self, "nominal_concurrency_shares") @@ -1111,9 +1111,9 @@ class LimitedPriorityLevelConfigurationArgsDict(TypedDict): """ `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ elif False: LimitedPriorityLevelConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -1140,9 +1140,9 @@ def __init__(__self__, *, :param pulumi.Input['LimitResponseArgs'] limit_response: `limitResponse` indicates what to do with requests that can not be executed right now :param pulumi.Input[int] nominal_concurrency_shares: `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ if borrowing_limit_percent is not None: pulumi.set(__self__, "borrowing_limit_percent", borrowing_limit_percent) @@ -1201,9 +1201,9 @@ def nominal_concurrency_shares(self) -> Optional[pulumi.Input[int]]: """ `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ return pulumi.get(self, "nominal_concurrency_shares") diff --git a/sdk/python/pulumi_kubernetes/flowcontrol/v1beta3/outputs.py b/sdk/python/pulumi_kubernetes/flowcontrol/v1beta3/outputs.py index da18291e2a..d50917aa17 100644 --- a/sdk/python/pulumi_kubernetes/flowcontrol/v1beta3/outputs.py +++ b/sdk/python/pulumi_kubernetes/flowcontrol/v1beta3/outputs.py @@ -869,9 +869,9 @@ def __init__(__self__, *, :param 'LimitResponseArgs' limit_response: `limitResponse` indicates what to do with requests that can not be executed right now :param int nominal_concurrency_shares: `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ if borrowing_limit_percent is not None: pulumi.set(__self__, "borrowing_limit_percent", borrowing_limit_percent) @@ -918,9 +918,9 @@ def nominal_concurrency_shares(self) -> Optional[int]: """ `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ return pulumi.get(self, "nominal_concurrency_shares") @@ -975,9 +975,9 @@ def __init__(__self__, *, :param 'LimitResponsePatchArgs' limit_response: `limitResponse` indicates what to do with requests that can not be executed right now :param int nominal_concurrency_shares: `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ if borrowing_limit_percent is not None: pulumi.set(__self__, "borrowing_limit_percent", borrowing_limit_percent) @@ -1024,9 +1024,9 @@ def nominal_concurrency_shares(self) -> Optional[int]: """ `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: - NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) + NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k) - Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. + Bigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30. """ return pulumi.get(self, "nominal_concurrency_shares") diff --git a/sdk/python/pulumi_kubernetes/resource/__init__.py b/sdk/python/pulumi_kubernetes/resource/__init__.py index eb2b0dd7ae..3a659caa84 100644 --- a/sdk/python/pulumi_kubernetes/resource/__init__.py +++ b/sdk/python/pulumi_kubernetes/resource/__init__.py @@ -13,8 +13,11 @@ v1alpha2 = __v1alpha2 import pulumi_kubernetes.resource.v1alpha3 as __v1alpha3 v1alpha3 = __v1alpha3 + import pulumi_kubernetes.resource.v1beta1 as __v1beta1 + v1beta1 = __v1beta1 else: v1alpha1 = _utilities.lazy_import('pulumi_kubernetes.resource.v1alpha1') v1alpha2 = _utilities.lazy_import('pulumi_kubernetes.resource.v1alpha2') v1alpha3 = _utilities.lazy_import('pulumi_kubernetes.resource.v1alpha3') + v1beta1 = _utilities.lazy_import('pulumi_kubernetes.resource.v1beta1') diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaim.py b/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaim.py index 7c2d97f624..f6af1b957f 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaim.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaim.py @@ -159,7 +159,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec __props__.__dict__["status"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaim")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaim")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaim, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha1:ResourceClaim', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimPatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimPatch.py index b91daecd71..0a413938c8 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimPatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimPatch.py @@ -170,7 +170,7 @@ def _internal_init(__self__, __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec __props__.__dict__["status"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimPatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplate.py b/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplate.py index fa28d48053..0379410821 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplate.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplate.py @@ -159,7 +159,7 @@ def _internal_init(__self__, if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimTemplate, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.py index 5dab044e18..091fcb7039 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.py @@ -170,7 +170,7 @@ def _internal_init(__self__, __props__.__dict__["kind"] = 'ResourceClaimTemplate' __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimTemplatePatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaim.py b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaim.py index b16a8ed467..e3b8097639 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaim.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaim.py @@ -159,7 +159,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec __props__.__dict__["status"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaim")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaim")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaim, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha2:ResourceClaim', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimPatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimPatch.py index c57d0acf0e..cd523268b1 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimPatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimPatch.py @@ -170,7 +170,7 @@ def _internal_init(__self__, __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec __props__.__dict__["status"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimPatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplate.py b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplate.py index 27d8586502..3447d28140 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplate.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplate.py @@ -159,7 +159,7 @@ def _internal_init(__self__, if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimTemplate, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.py index b0b8e20190..fae5ee1b9f 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.py @@ -170,7 +170,7 @@ def _internal_init(__self__, __props__.__dict__["kind"] = 'ResourceClaimTemplate' __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimTemplatePatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceSlice.py b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceSlice.py index c739398493..66b1984504 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceSlice.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceSlice.py @@ -199,7 +199,7 @@ def _internal_init(__self__, __props__.__dict__["metadata"] = metadata __props__.__dict__["named_resources"] = named_resources __props__.__dict__["node_name"] = node_name - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceSlice")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceSlice"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceSlice")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceSlice, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha2:ResourceSlice', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceSlicePatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceSlicePatch.py index 649b2ce479..7f281f25c7 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceSlicePatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha2/ResourceSlicePatch.py @@ -210,7 +210,7 @@ def _internal_init(__self__, __props__.__dict__["metadata"] = metadata __props__.__dict__["named_resources"] = named_resources __props__.__dict__["node_name"] = node_name - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceSlicePatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/DeviceClass.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/DeviceClass.py index 8b00ee0e7e..bc11469205 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/DeviceClass.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/DeviceClass.py @@ -170,6 +170,8 @@ def _internal_init(__self__, if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:DeviceClass")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(DeviceClass, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha3:DeviceClass', resource_name, diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/DeviceClassPatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/DeviceClassPatch.py index cc0239e763..982c05a9bb 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/DeviceClassPatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/DeviceClassPatch.py @@ -181,6 +181,8 @@ def _internal_init(__self__, __props__.__dict__["kind"] = 'DeviceClass' __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(DeviceClassPatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha3:DeviceClassPatch', resource_name, diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaim.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaim.py index a37212bc0e..00ecf65489 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaim.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaim.py @@ -159,7 +159,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec __props__.__dict__["status"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaim")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaim")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaim, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha3:ResourceClaim', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimPatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimPatch.py index 2223d8ca50..925d9c8214 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimPatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimPatch.py @@ -170,7 +170,7 @@ def _internal_init(__self__, __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec __props__.__dict__["status"] = None - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimPatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplate.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplate.py index ad596ffc98..9b38a663d3 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplate.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplate.py @@ -163,7 +163,7 @@ def _internal_init(__self__, if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimTemplate, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.py index b357ac21f8..8dbbb24660 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.py @@ -174,7 +174,7 @@ def _internal_init(__self__, __props__.__dict__["kind"] = 'ResourceClaimTemplate' __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceClaimTemplatePatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSlice.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSlice.py index 69b09dc2ea..17933b5a7b 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSlice.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSlice.py @@ -18,10 +18,10 @@ from ... import meta as _meta from ._inputs import * -__all__ = ['ResourceSliceArgs', 'ResourceSlice'] +__all__ = ['ResourceSliceInitArgs', 'ResourceSlice'] @pulumi.input_type -class ResourceSliceArgs: +class ResourceSliceInitArgs: def __init__(__self__, *, spec: pulumi.Input['ResourceSliceSpecArgs'], api_version: Optional[pulumi.Input[str]] = None, @@ -131,7 +131,7 @@ def __init__(__self__, @overload def __init__(__self__, resource_name: str, - args: ResourceSliceArgs, + args: ResourceSliceInitArgs, opts: Optional[pulumi.ResourceOptions] = None): """ 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. @@ -147,12 +147,12 @@ def __init__(__self__, This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. :param str resource_name: The name of the resource. - :param ResourceSliceArgs args: The arguments to use to populate this resource's properties. + :param ResourceSliceInitArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. """ ... def __init__(__self__, resource_name: str, *args, **kwargs): - resource_args, opts = _utilities.get_resource_args_opts(ResourceSliceArgs, pulumi.ResourceOptions, *args, **kwargs) + resource_args, opts = _utilities.get_resource_args_opts(ResourceSliceInitArgs, pulumi.ResourceOptions, *args, **kwargs) if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: @@ -172,7 +172,7 @@ def _internal_init(__self__, if opts.id is None: if __props__ is not None: raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') - __props__ = ResourceSliceArgs.__new__(ResourceSliceArgs) + __props__ = ResourceSliceInitArgs.__new__(ResourceSliceInitArgs) __props__.__dict__["api_version"] = 'resource.k8s.io/v1alpha3' __props__.__dict__["kind"] = 'ResourceSlice' @@ -180,7 +180,7 @@ def _internal_init(__self__, if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceSlice")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceSlice"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceSlice")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceSlice, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha3:ResourceSlice', @@ -202,7 +202,7 @@ def get(resource_name: str, """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) - __props__ = ResourceSliceArgs.__new__(ResourceSliceArgs) + __props__ = ResourceSliceInitArgs.__new__(ResourceSliceInitArgs) __props__.__dict__["api_version"] = None __props__.__dict__["kind"] = None diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSliceList.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSliceList.py new file mode 100644 index 0000000000..ae6f1b0c16 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSliceList.py @@ -0,0 +1,245 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import core as _core +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceSliceListArgs', 'ResourceSliceList'] + +@pulumi.input_type +class ResourceSliceListArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input['ResourceSliceArgs']]], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + list_meta: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None, + metadata: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None): + """ + The set of arguments for constructing a ResourceSliceList resource. + :param pulumi.Input[Sequence[pulumi.Input['ResourceSliceArgs']]] items: Items is the list of resource ResourceSlices. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ListMetaArgs'] list_meta: Standard list metadata + :param pulumi.Input['_meta.v1.ListMetaArgs'] metadata: Standard list metadata + """ + pulumi.set(__self__, "items", items) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1alpha3') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceSliceList') + if list_meta is not None: + pulumi.set(__self__, "list_meta", list_meta) + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input['ResourceSliceArgs']]]: + """ + Items is the list of resource ResourceSlices. + """ + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input['ResourceSliceArgs']]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter(name="listMeta") + def list_meta(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata + """ + return pulumi.get(self, "list_meta") + + @list_meta.setter + def list_meta(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "list_meta", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class ResourceSliceList(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceSliceArgs', 'ResourceSliceArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + list_meta: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + """ + ResourceSliceList is a collection of ResourceSlices. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[Sequence[pulumi.Input[Union['ResourceSliceArgs', 'ResourceSliceArgsDict']]]] items: Items is the list of resource ResourceSlices. + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] list_meta: Standard list metadata + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] metadata: Standard list metadata + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResourceSliceListArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ResourceSliceList is a collection of ResourceSlices. + + :param str resource_name: The name of the resource. + :param ResourceSliceListArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceSliceListArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceSliceArgs', 'ResourceSliceArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + list_meta: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceSliceListArgs.__new__(ResourceSliceListArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1alpha3' + if items is None and not opts.urn: + raise TypeError("Missing required property 'items'") + __props__.__dict__["items"] = items + __props__.__dict__["kind"] = 'ResourceSliceList' + __props__.__dict__["list_meta"] = list_meta + __props__.__dict__["metadata"] = metadata + super(ResourceSliceList, __self__).__init__( + 'kubernetes:resource.k8s.io/v1alpha3:ResourceSliceList', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceSliceList': + """ + Get an existing ResourceSliceList resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceSliceListArgs.__new__(ResourceSliceListArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["items"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["list_meta"] = None + __props__.__dict__["metadata"] = None + return ResourceSliceList(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def items(self) -> pulumi.Output[Sequence['outputs.ResourceSlice']]: + """ + Items is the list of resource ResourceSlices. + """ + return pulumi.get(self, "items") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter(name="listMeta") + def list_meta(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata + """ + return pulumi.get(self, "list_meta") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSlicePatch.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSlicePatch.py index e7c64edac3..629ae8d7f2 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSlicePatch.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/ResourceSlicePatch.py @@ -191,7 +191,7 @@ def _internal_init(__self__, __props__.__dict__["kind"] = 'ResourceSlice' __props__.__dict__["metadata"] = metadata __props__.__dict__["spec"] = spec - alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch")]) + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ResourceSlicePatch, __self__).__init__( 'kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch', diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/__init__.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/__init__.py index 155fee6928..41e4d26f24 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/__init__.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/__init__.py @@ -18,6 +18,7 @@ from .ResourceClaimTemplateList import * from .ResourceClaimTemplatePatch import * from .ResourceSlice import * +from .ResourceSliceList import * from .ResourceSlicePatch import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/_inputs.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/_inputs.py index 64179f4b34..990bad9eb8 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/_inputs.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/_inputs.py @@ -17,6 +17,8 @@ from ... import meta as _meta __all__ = [ + 'AllocatedDeviceStatusArgs', + 'AllocatedDeviceStatusArgsDict', 'AllocationResultArgs', 'AllocationResultArgsDict', 'BasicDevicePatchArgs', @@ -69,6 +71,8 @@ 'DeviceSelectorArgsDict', 'DeviceArgs', 'DeviceArgsDict', + 'NetworkDeviceDataArgs', + 'NetworkDeviceDataArgsDict', 'OpaqueDeviceConfigurationPatchArgs', 'OpaqueDeviceConfigurationPatchArgsDict', 'OpaqueDeviceConfigurationArgs', @@ -107,10 +111,163 @@ 'ResourceSliceSpecPatchArgsDict', 'ResourceSliceSpecArgs', 'ResourceSliceSpecArgsDict', + 'ResourceSliceArgs', + 'ResourceSliceArgsDict', ] MYPY = False +if not MYPY: + class AllocatedDeviceStatusArgsDict(TypedDict): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + """ + device: pulumi.Input[str] + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + driver: pulumi.Input[str] + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + pool: pulumi.Input[str] + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgsDict']]]] + """ + 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. + """ + data: NotRequired[Any] + """ + Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + network_data: NotRequired[pulumi.Input['NetworkDeviceDataArgsDict']] + """ + NetworkData contains network-related information specific to the device. + """ +elif False: + AllocatedDeviceStatusArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AllocatedDeviceStatusArgs: + def __init__(__self__, *, + device: pulumi.Input[str], + driver: pulumi.Input[str], + pool: pulumi.Input[str], + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]] = None, + data: Optional[Any] = None, + network_data: Optional[pulumi.Input['NetworkDeviceDataArgs']] = None): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + :param pulumi.Input[str] device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :param pulumi.Input[str] driver: Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param pulumi.Input[str] pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + :param pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]] conditions: Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True. + :param Any data: Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + :param pulumi.Input['NetworkDeviceDataArgs'] network_data: NetworkData contains network-related information specific to the device. + """ + pulumi.set(__self__, "device", device) + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "pool", pool) + if conditions is not None: + pulumi.set(__self__, "conditions", conditions) + if data is not None: + pulumi.set(__self__, "data", data) + if network_data is not None: + pulumi.set(__self__, "network_data", network_data) + + @property + @pulumi.getter + def device(self) -> pulumi.Input[str]: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @device.setter + def device(self, value: pulumi.Input[str]): + pulumi.set(self, "device", value) + + @property + @pulumi.getter + def driver(self) -> pulumi.Input[str]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @driver.setter + def driver(self, value: pulumi.Input[str]): + pulumi.set(self, "driver", value) + + @property + @pulumi.getter + def pool(self) -> pulumi.Input[str]: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: pulumi.Input[str]): + pulumi.set(self, "pool", value) + + @property + @pulumi.getter + def conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]]: + """ + 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. + """ + return pulumi.get(self, "conditions") + + @conditions.setter + def conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]]): + pulumi.set(self, "conditions", value) + + @property + @pulumi.getter + def data(self) -> Optional[Any]: + """ + Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "data") + + @data.setter + def data(self, value: Optional[Any]): + pulumi.set(self, "data", value) + + @property + @pulumi.getter(name="networkData") + def network_data(self) -> Optional[pulumi.Input['NetworkDeviceDataArgs']]: + """ + NetworkData contains network-related information specific to the device. + """ + return pulumi.get(self, "network_data") + + @network_data.setter + def network_data(self, value: Optional[pulumi.Input['NetworkDeviceDataArgs']]): + pulumi.set(self, "network_data", value) + + if not MYPY: class AllocationResultArgsDict(TypedDict): """ @@ -369,6 +526,8 @@ class CELDeviceSelectorPatchArgsDict(TypedDict): For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ elif False: CELDeviceSelectorPatchArgsDict: TypeAlias = Mapping[str, Any] @@ -406,6 +565,8 @@ def __init__(__self__, *, For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ if expression is not None: pulumi.set(__self__, "expression", expression) @@ -441,6 +602,8 @@ def expression(self) -> Optional[pulumi.Input[str]]: For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ return pulumi.get(self, "expression") @@ -483,6 +646,8 @@ class CELDeviceSelectorArgsDict(TypedDict): For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ elif False: CELDeviceSelectorArgsDict: TypeAlias = Mapping[str, Any] @@ -520,6 +685,8 @@ def __init__(__self__, *, For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ pulumi.set(__self__, "expression", expression) @@ -554,6 +721,8 @@ def expression(self) -> pulumi.Input[str]: For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ return pulumi.get(self, "expression") @@ -1647,6 +1816,12 @@ class DeviceRequestAllocationResultArgsDict(TypedDict): """ 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. """ + admin_access: NotRequired[pulumi.Input[bool]] + """ + AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ elif False: DeviceRequestAllocationResultArgsDict: TypeAlias = Mapping[str, Any] @@ -1656,7 +1831,8 @@ def __init__(__self__, *, device: pulumi.Input[str], driver: pulumi.Input[str], pool: pulumi.Input[str], - request: pulumi.Input[str]): + request: pulumi.Input[str], + admin_access: Optional[pulumi.Input[bool]] = None): """ DeviceRequestAllocationResult contains the allocation result for one request. :param pulumi.Input[str] device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. @@ -1667,11 +1843,16 @@ def __init__(__self__, *, Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. :param pulumi.Input[str] request: Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request. + :param pulumi.Input[bool] admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. """ pulumi.set(__self__, "device", device) pulumi.set(__self__, "driver", driver) pulumi.set(__self__, "pool", pool) pulumi.set(__self__, "request", request) + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) @property @pulumi.getter @@ -1725,6 +1906,20 @@ def request(self) -> pulumi.Input[str]: def request(self, value: pulumi.Input[str]): pulumi.set(self, "request", value) + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[pulumi.Input[bool]]: + """ + AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ + return pulumi.get(self, "admin_access") + + @admin_access.setter + def admin_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "admin_access", value) + if not MYPY: class DeviceRequestPatchArgsDict(TypedDict): @@ -1736,6 +1931,8 @@ class DeviceRequestPatchArgsDict(TypedDict): admin_access: NotRequired[pulumi.Input[bool]] """ 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. + + 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. """ allocation_mode: NotRequired[pulumi.Input[str]] """ @@ -1792,6 +1989,8 @@ def __init__(__self__, *, 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. :param pulumi.Input[bool] admin_access: AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations. + + 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. :param pulumi.Input[str] allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: - ExactCount: This request is for a specific number of devices. @@ -1834,6 +2033,8 @@ def __init__(__self__, *, def admin_access(self) -> Optional[pulumi.Input[bool]]: """ 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. + + 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. """ return pulumi.get(self, "admin_access") @@ -1944,6 +2145,8 @@ class DeviceRequestArgsDict(TypedDict): admin_access: NotRequired[pulumi.Input[bool]] """ 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. + + 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. """ allocation_mode: NotRequired[pulumi.Input[str]] """ @@ -1994,6 +2197,8 @@ def __init__(__self__, *, Must be a DNS label. :param pulumi.Input[bool] admin_access: AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations. + + 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. :param pulumi.Input[str] allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: - ExactCount: This request is for a specific number of devices. @@ -2056,6 +2261,8 @@ def name(self, value: pulumi.Input[str]): def admin_access(self) -> Optional[pulumi.Input[bool]]: """ 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. + + 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. """ return pulumi.get(self, "admin_access") @@ -2239,6 +2446,94 @@ def basic(self, value: Optional[pulumi.Input['BasicDeviceArgs']]): pulumi.set(self, "basic", value) +if not MYPY: + class NetworkDeviceDataArgsDict(TypedDict): + """ + 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. + """ + hardware_address: NotRequired[pulumi.Input[str]] + """ + HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + """ + interface_name: NotRequired[pulumi.Input[str]] + """ + 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. + + Must not be longer than 256 characters. + """ + ips: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + """ +elif False: + NetworkDeviceDataArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class NetworkDeviceDataArgs: + def __init__(__self__, *, + hardware_address: Optional[pulumi.Input[str]] = None, + interface_name: Optional[pulumi.Input[str]] = None, + ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + 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. + :param pulumi.Input[str] hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + :param pulumi.Input[str] interface_name: InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod. + + Must not be longer than 256 characters. + :param pulumi.Input[Sequence[pulumi.Input[str]]] ips: IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6. + """ + if hardware_address is not None: + pulumi.set(__self__, "hardware_address", hardware_address) + if interface_name is not None: + pulumi.set(__self__, "interface_name", interface_name) + if ips is not None: + pulumi.set(__self__, "ips", ips) + + @property + @pulumi.getter(name="hardwareAddress") + def hardware_address(self) -> Optional[pulumi.Input[str]]: + """ + HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + """ + return pulumi.get(self, "hardware_address") + + @hardware_address.setter + def hardware_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hardware_address", value) + + @property + @pulumi.getter(name="interfaceName") + def interface_name(self) -> Optional[pulumi.Input[str]]: + """ + 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. + + Must not be longer than 256 characters. + """ + return pulumi.get(self, "interface_name") + + @interface_name.setter + def interface_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "interface_name", value) + + @property + @pulumi.getter + def ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "ips") + + @ips.setter + def ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "ips", value) + + if not MYPY: class OpaqueDeviceConfigurationPatchArgsDict(TypedDict): """ @@ -2255,6 +2550,8 @@ class OpaqueDeviceConfigurationPatchArgsDict(TypedDict): parameters: NotRequired[Any] """ Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ elif False: OpaqueDeviceConfigurationPatchArgsDict: TypeAlias = Mapping[str, Any] @@ -2272,6 +2569,8 @@ def __init__(__self__, *, Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ if driver is not None: pulumi.set(__self__, "driver", driver) @@ -2299,6 +2598,8 @@ def driver(self, value: Optional[pulumi.Input[str]]): def parameters(self) -> Optional[Any]: """ Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ return pulumi.get(self, "parameters") @@ -2323,6 +2624,8 @@ class OpaqueDeviceConfigurationArgsDict(TypedDict): parameters: Any """ Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ elif False: OpaqueDeviceConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -2340,6 +2643,8 @@ def __init__(__self__, *, Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ pulumi.set(__self__, "driver", driver) pulumi.set(__self__, "parameters", parameters) @@ -2365,6 +2670,8 @@ def driver(self, value: pulumi.Input[str]): def parameters(self) -> Any: """ Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ return pulumi.get(self, "parameters") @@ -2959,6 +3266,10 @@ class ResourceClaimStatusArgsDict(TypedDict): This is an alpha field and requires enabling the DRAControlPlaneController feature gate. """ + devices: NotRequired[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgsDict']]]] + """ + Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + """ reserved_for: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgsDict']]]] """ ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. @@ -2977,6 +3288,7 @@ class ResourceClaimStatusArgs: def __init__(__self__, *, allocation: Optional[pulumi.Input['AllocationResultArgs']] = None, deallocation_requested: Optional[pulumi.Input[bool]] = None, + devices: Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]] = None, reserved_for: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]]] = None): """ ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. @@ -2986,6 +3298,7 @@ def __init__(__self__, *, This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + :param pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. :param pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -2998,6 +3311,8 @@ def __init__(__self__, *, pulumi.set(__self__, "allocation", allocation) if deallocation_requested is not None: pulumi.set(__self__, "deallocation_requested", deallocation_requested) + if devices is not None: + pulumi.set(__self__, "devices", devices) if reserved_for is not None: pulumi.set(__self__, "reserved_for", reserved_for) @@ -3029,6 +3344,18 @@ def deallocation_requested(self) -> Optional[pulumi.Input[bool]]: def deallocation_requested(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "deallocation_requested", value) + @property + @pulumi.getter + def devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]]: + """ + Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + """ + return pulumi.get(self, "devices") + + @devices.setter + def devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]]): + pulumi.set(self, "devices", value) + @property @pulumi.getter(name="reservedFor") def reserved_for(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]]]: @@ -3055,7 +3382,7 @@ class ResourceClaimTemplateSpecPatchArgsDict(TypedDict): """ metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaPatchArgsDict']] """ - ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. """ spec: NotRequired[pulumi.Input['ResourceClaimSpecPatchArgsDict']] """ @@ -3071,7 +3398,7 @@ def __init__(__self__, *, spec: Optional[pulumi.Input['ResourceClaimSpecPatchArgs']] = None): """ ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. - :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. :param pulumi.Input['ResourceClaimSpecPatchArgs'] spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. """ if metadata is not None: @@ -3083,7 +3410,7 @@ def __init__(__self__, *, @pulumi.getter def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: """ - ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. """ return pulumi.get(self, "metadata") @@ -3115,7 +3442,7 @@ class ResourceClaimTemplateSpecArgsDict(TypedDict): """ metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] """ - ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. """ elif False: ResourceClaimTemplateSpecArgsDict: TypeAlias = Mapping[str, Any] @@ -3128,7 +3455,7 @@ def __init__(__self__, *, """ ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. :param pulumi.Input['ResourceClaimSpecArgs'] spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. - :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. """ pulumi.set(__self__, "spec", spec) if metadata is not None: @@ -3150,7 +3477,7 @@ def spec(self, value: pulumi.Input['ResourceClaimSpecArgs']): @pulumi.getter def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: """ - ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. """ return pulumi.get(self, "metadata") @@ -3922,3 +4249,124 @@ def node_selector(self, value: Optional[pulumi.Input['_core.v1.NodeSelectorArgs' pulumi.set(self, "node_selector", value) +if not MYPY: + class ResourceSliceArgsDict(TypedDict): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + spec: pulumi.Input['ResourceSliceSpecArgsDict'] + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + api_version: NotRequired[pulumi.Input[str]] + """ + 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 + """ + kind: NotRequired[pulumi.Input[str]] + """ + 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 + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + Standard object metadata + """ +elif False: + ResourceSliceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceSliceArgs: + def __init__(__self__, *, + spec: pulumi.Input['ResourceSliceSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param pulumi.Input['ResourceSliceSpecArgs'] spec: Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1alpha3') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceSlice') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['ResourceSliceSpecArgs']: + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['ResourceSliceSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + diff --git a/sdk/python/pulumi_kubernetes/resource/v1alpha3/outputs.py b/sdk/python/pulumi_kubernetes/resource/v1alpha3/outputs.py index dc27e1b422..70210a783e 100644 --- a/sdk/python/pulumi_kubernetes/resource/v1alpha3/outputs.py +++ b/sdk/python/pulumi_kubernetes/resource/v1alpha3/outputs.py @@ -18,6 +18,8 @@ from ... import meta as _meta __all__ = [ + 'AllocatedDeviceStatus', + 'AllocatedDeviceStatusPatch', 'AllocationResult', 'AllocationResultPatch', 'BasicDevice', @@ -48,6 +50,8 @@ 'DeviceRequestPatch', 'DeviceSelector', 'DeviceSelectorPatch', + 'NetworkDeviceData', + 'NetworkDeviceDataPatch', 'OpaqueDeviceConfiguration', 'OpaqueDeviceConfigurationPatch', 'PodSchedulingContext', @@ -69,10 +73,232 @@ 'ResourceClaimTemplateSpecPatch', 'ResourcePool', 'ResourcePoolPatch', + 'ResourceSlice', 'ResourceSliceSpec', 'ResourceSliceSpecPatch', ] +@pulumi.output_type +class AllocatedDeviceStatus(dict): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "networkData": + suggest = "network_data" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AllocatedDeviceStatus. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AllocatedDeviceStatus.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AllocatedDeviceStatus.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + device: str, + driver: str, + pool: str, + conditions: Optional[Sequence['_meta.v1.outputs.Condition']] = None, + data: Optional[Any] = None, + network_data: Optional['outputs.NetworkDeviceData'] = None): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param str pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + :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. + :param Any data: Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + :param 'NetworkDeviceDataArgs' network_data: NetworkData contains network-related information specific to the device. + """ + pulumi.set(__self__, "device", device) + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "pool", pool) + if conditions is not None: + pulumi.set(__self__, "conditions", conditions) + if data is not None: + pulumi.set(__self__, "data", data) + if network_data is not None: + pulumi.set(__self__, "network_data", network_data) + + @property + @pulumi.getter + def device(self) -> str: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @property + @pulumi.getter + def driver(self) -> str: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter + def pool(self) -> str: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + @property + @pulumi.getter + def conditions(self) -> Optional[Sequence['_meta.v1.outputs.Condition']]: + """ + 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. + """ + return pulumi.get(self, "conditions") + + @property + @pulumi.getter + def data(self) -> Optional[Any]: + """ + Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "data") + + @property + @pulumi.getter(name="networkData") + def network_data(self) -> Optional['outputs.NetworkDeviceData']: + """ + NetworkData contains network-related information specific to the device. + """ + return pulumi.get(self, "network_data") + + +@pulumi.output_type +class AllocatedDeviceStatusPatch(dict): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "networkData": + suggest = "network_data" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AllocatedDeviceStatusPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AllocatedDeviceStatusPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AllocatedDeviceStatusPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + conditions: Optional[Sequence['_meta.v1.outputs.ConditionPatch']] = None, + data: Optional[Any] = None, + device: Optional[str] = None, + driver: Optional[str] = None, + network_data: Optional['outputs.NetworkDeviceDataPatch'] = None, + pool: Optional[str] = None): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + :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. + :param Any data: Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param 'NetworkDeviceDataPatchArgs' network_data: NetworkData contains network-related information specific to the device. + :param str pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + if conditions is not None: + pulumi.set(__self__, "conditions", conditions) + if data is not None: + pulumi.set(__self__, "data", data) + if device is not None: + pulumi.set(__self__, "device", device) + if driver is not None: + pulumi.set(__self__, "driver", driver) + if network_data is not None: + pulumi.set(__self__, "network_data", network_data) + if pool is not None: + pulumi.set(__self__, "pool", pool) + + @property + @pulumi.getter + def conditions(self) -> Optional[Sequence['_meta.v1.outputs.ConditionPatch']]: + """ + 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. + """ + return pulumi.get(self, "conditions") + + @property + @pulumi.getter + def data(self) -> Optional[Any]: + """ + Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "data") + + @property + @pulumi.getter + def device(self) -> Optional[str]: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @property + @pulumi.getter + def driver(self) -> Optional[str]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter(name="networkData") + def network_data(self) -> Optional['outputs.NetworkDeviceDataPatch']: + """ + NetworkData contains network-related information specific to the device. + """ + return pulumi.get(self, "network_data") + + @property + @pulumi.getter + def pool(self) -> Optional[str]: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + @pulumi.output_type class AllocationResult(dict): """ @@ -339,6 +565,8 @@ def __init__(__self__, *, For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ pulumi.set(__self__, "expression", expression) @@ -373,6 +601,8 @@ def expression(self) -> str: For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ return pulumi.get(self, "expression") @@ -413,6 +643,8 @@ def __init__(__self__, *, For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ if expression is not None: pulumi.set(__self__, "expression", expression) @@ -448,6 +680,8 @@ def expression(self) -> Optional[str]: For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. """ return pulumi.get(self, "expression") @@ -1368,6 +1602,8 @@ def __init__(__self__, *, Must be a DNS label. :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. + + 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. :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: - ExactCount: This request is for a specific number of devices. @@ -1422,6 +1658,8 @@ def name(self) -> str: def admin_access(self) -> Optional[bool]: """ 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. + + 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. """ return pulumi.get(self, "admin_access") @@ -1467,11 +1705,29 @@ class DeviceRequestAllocationResult(dict): """ DeviceRequestAllocationResult contains the allocation result for one request. """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "adminAccess": + suggest = "admin_access" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResult. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceRequestAllocationResult.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceRequestAllocationResult.__key_warning(key) + return super().get(key, default) + def __init__(__self__, *, device: str, driver: str, pool: str, - request: str): + request: str, + admin_access: Optional[bool] = None): """ DeviceRequestAllocationResult contains the allocation result for one request. :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. @@ -1482,11 +1738,16 @@ def __init__(__self__, *, Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. :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. + :param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. """ pulumi.set(__self__, "device", device) pulumi.set(__self__, "driver", driver) pulumi.set(__self__, "pool", pool) pulumi.set(__self__, "request", request) + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) @property @pulumi.getter @@ -1524,19 +1785,50 @@ def request(self) -> str: """ return pulumi.get(self, "request") + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[bool]: + """ + AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ + return pulumi.get(self, "admin_access") + @pulumi.output_type class DeviceRequestAllocationResultPatch(dict): """ DeviceRequestAllocationResult contains the allocation result for one request. """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "adminAccess": + suggest = "admin_access" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResultPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceRequestAllocationResultPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceRequestAllocationResultPatch.__key_warning(key) + return super().get(key, default) + def __init__(__self__, *, + admin_access: Optional[bool] = None, device: Optional[str] = None, driver: Optional[str] = None, pool: Optional[str] = None, request: Optional[str] = None): """ DeviceRequestAllocationResult contains the allocation result for one request. + :param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. :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. @@ -1546,6 +1838,8 @@ def __init__(__self__, *, Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. :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. """ + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) if device is not None: pulumi.set(__self__, "device", device) if driver is not None: @@ -1555,6 +1849,16 @@ def __init__(__self__, *, if request is not None: pulumi.set(__self__, "request", request) + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[bool]: + """ + AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ + return pulumi.get(self, "admin_access") + @property @pulumi.getter def device(self) -> Optional[str]: @@ -1632,6 +1936,8 @@ def __init__(__self__, *, 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. :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. + + 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. :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: - ExactCount: This request is for a specific number of devices. @@ -1674,6 +1980,8 @@ def __init__(__self__, *, def admin_access(self) -> Optional[bool]: """ 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. + + 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. """ return pulumi.get(self, "admin_access") @@ -1782,6 +2090,154 @@ def cel(self) -> Optional['outputs.CELDeviceSelectorPatch']: return pulumi.get(self, "cel") +@pulumi.output_type +class NetworkDeviceData(dict): + """ + 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. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "hardwareAddress": + suggest = "hardware_address" + elif key == "interfaceName": + suggest = "interface_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NetworkDeviceData. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NetworkDeviceData.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NetworkDeviceData.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + hardware_address: Optional[str] = None, + interface_name: Optional[str] = None, + ips: Optional[Sequence[str]] = None): + """ + 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. + :param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + :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. + + Must not be longer than 256 characters. + :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. + """ + if hardware_address is not None: + pulumi.set(__self__, "hardware_address", hardware_address) + if interface_name is not None: + pulumi.set(__self__, "interface_name", interface_name) + if ips is not None: + pulumi.set(__self__, "ips", ips) + + @property + @pulumi.getter(name="hardwareAddress") + def hardware_address(self) -> Optional[str]: + """ + HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + """ + return pulumi.get(self, "hardware_address") + + @property + @pulumi.getter(name="interfaceName") + def interface_name(self) -> Optional[str]: + """ + 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. + + Must not be longer than 256 characters. + """ + return pulumi.get(self, "interface_name") + + @property + @pulumi.getter + def ips(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "ips") + + +@pulumi.output_type +class NetworkDeviceDataPatch(dict): + """ + 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. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "hardwareAddress": + suggest = "hardware_address" + elif key == "interfaceName": + suggest = "interface_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NetworkDeviceDataPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NetworkDeviceDataPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NetworkDeviceDataPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + hardware_address: Optional[str] = None, + interface_name: Optional[str] = None, + ips: Optional[Sequence[str]] = None): + """ + 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. + :param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + :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. + + Must not be longer than 256 characters. + :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. + """ + if hardware_address is not None: + pulumi.set(__self__, "hardware_address", hardware_address) + if interface_name is not None: + pulumi.set(__self__, "interface_name", interface_name) + if ips is not None: + pulumi.set(__self__, "ips", ips) + + @property + @pulumi.getter(name="hardwareAddress") + def hardware_address(self) -> Optional[str]: + """ + HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + """ + return pulumi.get(self, "hardware_address") + + @property + @pulumi.getter(name="interfaceName") + def interface_name(self) -> Optional[str]: + """ + 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. + + Must not be longer than 256 characters. + """ + return pulumi.get(self, "interface_name") + + @property + @pulumi.getter + def ips(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "ips") + + @pulumi.output_type class OpaqueDeviceConfiguration(dict): """ @@ -1798,6 +2254,8 @@ def __init__(__self__, *, Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ pulumi.set(__self__, "driver", driver) pulumi.set(__self__, "parameters", parameters) @@ -1819,6 +2277,8 @@ def driver(self) -> str: def parameters(self) -> Any: """ Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ return pulumi.get(self, "parameters") @@ -1839,6 +2299,8 @@ def __init__(__self__, *, Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ if driver is not None: pulumi.set(__self__, "driver", driver) @@ -1862,6 +2324,8 @@ def driver(self) -> Optional[str]: def parameters(self) -> Optional[Any]: """ Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. """ return pulumi.get(self, "parameters") @@ -2617,6 +3081,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, allocation: Optional['outputs.AllocationResult'] = None, deallocation_requested: Optional[bool] = None, + devices: Optional[Sequence['outputs.AllocatedDeviceStatus']] = None, reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReference']] = None): """ ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. @@ -2626,6 +3091,7 @@ def __init__(__self__, *, This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + :param Sequence['AllocatedDeviceStatusArgs'] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. :param Sequence['ResourceClaimConsumerReferenceArgs'] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -2638,6 +3104,8 @@ def __init__(__self__, *, pulumi.set(__self__, "allocation", allocation) if deallocation_requested is not None: pulumi.set(__self__, "deallocation_requested", deallocation_requested) + if devices is not None: + pulumi.set(__self__, "devices", devices) if reserved_for is not None: pulumi.set(__self__, "reserved_for", reserved_for) @@ -2661,6 +3129,14 @@ def deallocation_requested(self) -> Optional[bool]: """ return pulumi.get(self, "deallocation_requested") + @property + @pulumi.getter + def devices(self) -> Optional[Sequence['outputs.AllocatedDeviceStatus']]: + """ + Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + """ + return pulumi.get(self, "devices") + @property @pulumi.getter(name="reservedFor") def reserved_for(self) -> Optional[Sequence['outputs.ResourceClaimConsumerReference']]: @@ -2703,6 +3179,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, allocation: Optional['outputs.AllocationResultPatch'] = None, deallocation_requested: Optional[bool] = None, + devices: Optional[Sequence['outputs.AllocatedDeviceStatusPatch']] = None, reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']] = None): """ ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. @@ -2712,6 +3189,7 @@ def __init__(__self__, *, This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. This is an alpha field and requires enabling the DRAControlPlaneController feature gate. + :param Sequence['AllocatedDeviceStatusPatchArgs'] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. :param Sequence['ResourceClaimConsumerReferencePatchArgs'] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. @@ -2724,6 +3202,8 @@ def __init__(__self__, *, pulumi.set(__self__, "allocation", allocation) if deallocation_requested is not None: pulumi.set(__self__, "deallocation_requested", deallocation_requested) + if devices is not None: + pulumi.set(__self__, "devices", devices) if reserved_for is not None: pulumi.set(__self__, "reserved_for", reserved_for) @@ -2747,6 +3227,14 @@ def deallocation_requested(self) -> Optional[bool]: """ return pulumi.get(self, "deallocation_requested") + @property + @pulumi.getter + def devices(self) -> Optional[Sequence['outputs.AllocatedDeviceStatusPatch']]: + """ + Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + """ + return pulumi.get(self, "devices") + @property @pulumi.getter(name="reservedFor") def reserved_for(self) -> Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']]: @@ -2856,7 +3344,7 @@ def __init__(__self__, *, """ ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. :param 'ResourceClaimSpecArgs' spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. - :param '_meta.v1.ObjectMetaArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + :param '_meta.v1.ObjectMetaArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. """ pulumi.set(__self__, "spec", spec) if metadata is not None: @@ -2874,7 +3362,7 @@ def spec(self) -> 'outputs.ResourceClaimSpec': @pulumi.getter def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: """ - ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. """ return pulumi.get(self, "metadata") @@ -2889,7 +3377,7 @@ def __init__(__self__, *, spec: Optional['outputs.ResourceClaimSpecPatch'] = None): """ ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. - :param '_meta.v1.ObjectMetaPatchArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + :param '_meta.v1.ObjectMetaPatchArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. :param 'ResourceClaimSpecPatchArgs' spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. """ if metadata is not None: @@ -2901,7 +3389,7 @@ def __init__(__self__, *, @pulumi.getter def metadata(self) -> Optional['_meta.v1.outputs.ObjectMetaPatch']: """ - ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. """ return pulumi.get(self, "metadata") @@ -3063,6 +3551,105 @@ def resource_slice_count(self) -> Optional[int]: return pulumi.get(self, "resource_slice_count") +@pulumi.output_type +class ResourceSlice(dict): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiVersion": + suggest = "api_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceSlice. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceSlice.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceSlice.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + spec: 'outputs.ResourceSliceSpec', + api_version: Optional[str] = None, + kind: Optional[str] = None, + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param 'ResourceSliceSpecArgs' spec: Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + :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 + :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 + :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1alpha3') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceSlice') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> 'outputs.ResourceSliceSpec': + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @pulumi.output_type class ResourceSliceSpec(dict): """ diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClass.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClass.py new file mode 100644 index 0000000000..a08e7a2cd7 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClass.py @@ -0,0 +1,237 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['DeviceClassInitArgs', 'DeviceClass'] + +@pulumi.input_type +class DeviceClassInitArgs: + def __init__(__self__, *, + spec: pulumi.Input['DeviceClassSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + The set of arguments for constructing a DeviceClass resource. + :param pulumi.Input['DeviceClassSpecArgs'] spec: Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'DeviceClass') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['DeviceClassSpecArgs']: + """ + Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['DeviceClassSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class DeviceClass(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['DeviceClassSpecArgs', 'DeviceClassSpecArgsDict']]] = None, + __props__=None): + """ + 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. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: Standard object metadata + :param pulumi.Input[Union['DeviceClassSpecArgs', 'DeviceClassSpecArgsDict']] spec: Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DeviceClassInitArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + 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. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param DeviceClassInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(DeviceClassInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['DeviceClassSpecArgs', 'DeviceClassSpecArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = DeviceClassInitArgs.__new__(DeviceClassInitArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + __props__.__dict__["kind"] = 'DeviceClass' + __props__.__dict__["metadata"] = metadata + if spec is None and not opts.urn: + raise TypeError("Missing required property 'spec'") + __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:DeviceClass")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(DeviceClass, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:DeviceClass', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'DeviceClass': + """ + Get an existing DeviceClass resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = DeviceClassInitArgs.__new__(DeviceClassInitArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return DeviceClass(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.DeviceClassSpec']: + """ + Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClassList.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClassList.py new file mode 100644 index 0000000000..7ba9c6c63f --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClassList.py @@ -0,0 +1,215 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['DeviceClassListArgs', 'DeviceClassList'] + +@pulumi.input_type +class DeviceClassListArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input['DeviceClassArgs']]], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None): + """ + The set of arguments for constructing a DeviceClassList resource. + :param pulumi.Input[Sequence[pulumi.Input['DeviceClassArgs']]] items: Items is the list of resource classes. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ListMetaArgs'] metadata: Standard list metadata + """ + pulumi.set(__self__, "items", items) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'DeviceClassList') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input['DeviceClassArgs']]]: + """ + Items is the list of resource classes. + """ + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input['DeviceClassArgs']]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class DeviceClassList(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeviceClassArgs', 'DeviceClassArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + """ + DeviceClassList is a collection of classes. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[Sequence[pulumi.Input[Union['DeviceClassArgs', 'DeviceClassArgsDict']]]] items: Items is the list of resource classes. + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] metadata: Standard list metadata + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DeviceClassListArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + DeviceClassList is a collection of classes. + + :param str resource_name: The name of the resource. + :param DeviceClassListArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(DeviceClassListArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeviceClassArgs', 'DeviceClassArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = DeviceClassListArgs.__new__(DeviceClassListArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + if items is None and not opts.urn: + raise TypeError("Missing required property 'items'") + __props__.__dict__["items"] = items + __props__.__dict__["kind"] = 'DeviceClassList' + __props__.__dict__["metadata"] = metadata + super(DeviceClassList, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:DeviceClassList', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'DeviceClassList': + """ + Get an existing DeviceClassList resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = DeviceClassListArgs.__new__(DeviceClassListArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["items"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + return DeviceClassList(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def items(self) -> pulumi.Output[Sequence['outputs.DeviceClass']]: + """ + Items is the list of resource classes. + """ + return pulumi.get(self, "items") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClassPatch.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClassPatch.py new file mode 100644 index 0000000000..ac0dd69575 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/DeviceClassPatch.py @@ -0,0 +1,248 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['DeviceClassPatchArgs', 'DeviceClassPatch'] + +@pulumi.input_type +class DeviceClassPatchArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] = None, + spec: Optional[pulumi.Input['DeviceClassSpecPatchArgs']] = None): + """ + The set of arguments for constructing a DeviceClassPatch resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: Standard object metadata + :param pulumi.Input['DeviceClassSpecPatchArgs'] spec: Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'DeviceClass') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['DeviceClassSpecPatchArgs']]: + """ + Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['DeviceClassSpecPatchArgs']]): + pulumi.set(self, "spec", value) + + +class DeviceClassPatch(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['DeviceClassSpecPatchArgs', 'DeviceClassSpecPatchArgsDict']]] = None, + __props__=None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + 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. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']] metadata: Standard object metadata + :param pulumi.Input[Union['DeviceClassSpecPatchArgs', 'DeviceClassSpecPatchArgsDict']] spec: Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[DeviceClassPatchArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + 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. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param DeviceClassPatchArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(DeviceClassPatchArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['DeviceClassSpecPatchArgs', 'DeviceClassSpecPatchArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = DeviceClassPatchArgs.__new__(DeviceClassPatchArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + __props__.__dict__["kind"] = 'DeviceClass' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:DeviceClassPatch")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(DeviceClassPatch, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'DeviceClassPatch': + """ + Get an existing DeviceClassPatch resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = DeviceClassPatchArgs.__new__(DeviceClassPatchArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return DeviceClassPatch(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output[Optional['_meta.v1.outputs.ObjectMetaPatch']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output[Optional['outputs.DeviceClassSpecPatch']]: + """ + Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaim.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaim.py new file mode 100644 index 0000000000..470fb02211 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaim.py @@ -0,0 +1,232 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import core as _core +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceClaimInitArgs', 'ResourceClaim'] + +@pulumi.input_type +class ResourceClaimInitArgs: + def __init__(__self__, *, + spec: pulumi.Input['ResourceClaimSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + The set of arguments for constructing a ResourceClaim resource. + :param pulumi.Input['ResourceClaimSpecArgs'] spec: Spec describes what is being requested and how to configure it. The spec is immutable. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaim') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['ResourceClaimSpecArgs']: + """ + Spec describes what is being requested and how to configure it. The spec is immutable. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['ResourceClaimSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class ResourceClaim(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceClaimSpecArgs', 'ResourceClaimSpecArgsDict']]] = None, + __props__=None): + """ + ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: Standard object metadata + :param pulumi.Input[Union['ResourceClaimSpecArgs', 'ResourceClaimSpecArgsDict']] spec: Spec describes what is being requested and how to configure it. The spec is immutable. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResourceClaimInitArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param ResourceClaimInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceClaimInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceClaimSpecArgs', 'ResourceClaimSpecArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceClaimInitArgs.__new__(ResourceClaimInitArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + __props__.__dict__["kind"] = 'ResourceClaim' + __props__.__dict__["metadata"] = metadata + if spec is None and not opts.urn: + raise TypeError("Missing required property 'spec'") + __props__.__dict__["spec"] = spec + __props__.__dict__["status"] = None + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaim"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaim")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(ResourceClaim, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceClaim', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceClaim': + """ + Get an existing ResourceClaim resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceClaimInitArgs.__new__(ResourceClaimInitArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + __props__.__dict__["status"] = None + return ResourceClaim(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.ResourceClaimSpec']: + """ + Spec describes what is being requested and how to configure it. The spec is immutable. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[Optional['outputs.ResourceClaimStatus']]: + """ + Status describes whether the claim is ready to use and what has been allocated. + """ + return pulumi.get(self, "status") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimList.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimList.py new file mode 100644 index 0000000000..bab54acc21 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimList.py @@ -0,0 +1,216 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import core as _core +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceClaimListArgs', 'ResourceClaimList'] + +@pulumi.input_type +class ResourceClaimListArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input['ResourceClaimArgs']]], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None): + """ + The set of arguments for constructing a ResourceClaimList resource. + :param pulumi.Input[Sequence[pulumi.Input['ResourceClaimArgs']]] items: Items is the list of resource claims. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ListMetaArgs'] metadata: Standard list metadata + """ + pulumi.set(__self__, "items", items) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaimList') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input['ResourceClaimArgs']]]: + """ + Items is the list of resource claims. + """ + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input['ResourceClaimArgs']]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class ResourceClaimList(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceClaimArgs', 'ResourceClaimArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + """ + ResourceClaimList is a collection of claims. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[Sequence[pulumi.Input[Union['ResourceClaimArgs', 'ResourceClaimArgsDict']]]] items: Items is the list of resource claims. + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] metadata: Standard list metadata + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResourceClaimListArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ResourceClaimList is a collection of claims. + + :param str resource_name: The name of the resource. + :param ResourceClaimListArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceClaimListArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceClaimArgs', 'ResourceClaimArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceClaimListArgs.__new__(ResourceClaimListArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + if items is None and not opts.urn: + raise TypeError("Missing required property 'items'") + __props__.__dict__["items"] = items + __props__.__dict__["kind"] = 'ResourceClaimList' + __props__.__dict__["metadata"] = metadata + super(ResourceClaimList, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimList', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceClaimList': + """ + Get an existing ResourceClaimList resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceClaimListArgs.__new__(ResourceClaimListArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["items"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + return ResourceClaimList(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def items(self) -> pulumi.Output[Sequence['outputs.ResourceClaim']]: + """ + Items is the list of resource claims. + """ + return pulumi.get(self, "items") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimPatch.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimPatch.py new file mode 100644 index 0000000000..50328e4e32 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimPatch.py @@ -0,0 +1,243 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import core as _core +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceClaimPatchArgs', 'ResourceClaimPatch'] + +@pulumi.input_type +class ResourceClaimPatchArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] = None, + spec: Optional[pulumi.Input['ResourceClaimSpecPatchArgs']] = None): + """ + The set of arguments for constructing a ResourceClaimPatch resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: Standard object metadata + :param pulumi.Input['ResourceClaimSpecPatchArgs'] spec: Spec describes what is being requested and how to configure it. The spec is immutable. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaim') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['ResourceClaimSpecPatchArgs']]: + """ + Spec describes what is being requested and how to configure it. The spec is immutable. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['ResourceClaimSpecPatchArgs']]): + pulumi.set(self, "spec", value) + + +class ResourceClaimPatch(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceClaimSpecPatchArgs', 'ResourceClaimSpecPatchArgsDict']]] = None, + __props__=None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']] metadata: Standard object metadata + :param pulumi.Input[Union['ResourceClaimSpecPatchArgs', 'ResourceClaimSpecPatchArgsDict']] spec: Spec describes what is being requested and how to configure it. The spec is immutable. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[ResourceClaimPatchArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param ResourceClaimPatchArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceClaimPatchArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceClaimSpecPatchArgs', 'ResourceClaimSpecPatchArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceClaimPatchArgs.__new__(ResourceClaimPatchArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + __props__.__dict__["kind"] = 'ResourceClaim' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + __props__.__dict__["status"] = None + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimPatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimPatch")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(ResourceClaimPatch, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimPatch', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceClaimPatch': + """ + Get an existing ResourceClaimPatch resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceClaimPatchArgs.__new__(ResourceClaimPatchArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + __props__.__dict__["status"] = None + return ResourceClaimPatch(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output[Optional['_meta.v1.outputs.ObjectMetaPatch']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output[Optional['outputs.ResourceClaimSpecPatch']]: + """ + Spec describes what is being requested and how to configure it. The spec is immutable. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[Optional['outputs.ResourceClaimStatusPatch']]: + """ + Status describes whether the claim is ready to use and what has been allocated. + """ + return pulumi.get(self, "status") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplate.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplate.py new file mode 100644 index 0000000000..488c538594 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplate.py @@ -0,0 +1,229 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceClaimTemplateInitArgs', 'ResourceClaimTemplate'] + +@pulumi.input_type +class ResourceClaimTemplateInitArgs: + def __init__(__self__, *, + spec: pulumi.Input['ResourceClaimTemplateSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + The set of arguments for constructing a ResourceClaimTemplate resource. + :param pulumi.Input['ResourceClaimTemplateSpecArgs'] spec: Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaimTemplate') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['ResourceClaimTemplateSpecArgs']: + """ + Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['ResourceClaimTemplateSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class ResourceClaimTemplate(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceClaimTemplateSpecArgs', 'ResourceClaimTemplateSpecArgsDict']]] = None, + __props__=None): + """ + ResourceClaimTemplate is used to produce ResourceClaim objects. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: Standard object metadata + :param pulumi.Input[Union['ResourceClaimTemplateSpecArgs', 'ResourceClaimTemplateSpecArgsDict']] spec: Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResourceClaimTemplateInitArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ResourceClaimTemplate is used to produce ResourceClaim objects. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param ResourceClaimTemplateInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceClaimTemplateInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceClaimTemplateSpecArgs', 'ResourceClaimTemplateSpecArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceClaimTemplateInitArgs.__new__(ResourceClaimTemplateInitArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + __props__.__dict__["kind"] = 'ResourceClaimTemplate' + __props__.__dict__["metadata"] = metadata + if spec is None and not opts.urn: + raise TypeError("Missing required property 'spec'") + __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplate")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(ResourceClaimTemplate, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplate', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceClaimTemplate': + """ + Get an existing ResourceClaimTemplate resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceClaimTemplateInitArgs.__new__(ResourceClaimTemplateInitArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return ResourceClaimTemplate(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.ResourceClaimTemplateSpec']: + """ + Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplateList.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplateList.py new file mode 100644 index 0000000000..2fd5cc2694 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplateList.py @@ -0,0 +1,215 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceClaimTemplateListArgs', 'ResourceClaimTemplateList'] + +@pulumi.input_type +class ResourceClaimTemplateListArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input['ResourceClaimTemplateArgs']]], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None): + """ + The set of arguments for constructing a ResourceClaimTemplateList resource. + :param pulumi.Input[Sequence[pulumi.Input['ResourceClaimTemplateArgs']]] items: Items is the list of resource claim templates. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ListMetaArgs'] metadata: Standard list metadata + """ + pulumi.set(__self__, "items", items) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaimTemplateList') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input['ResourceClaimTemplateArgs']]]: + """ + Items is the list of resource claim templates. + """ + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input['ResourceClaimTemplateArgs']]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class ResourceClaimTemplateList(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceClaimTemplateArgs', 'ResourceClaimTemplateArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + """ + ResourceClaimTemplateList is a collection of claim templates. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[Sequence[pulumi.Input[Union['ResourceClaimTemplateArgs', 'ResourceClaimTemplateArgsDict']]]] items: Items is the list of resource claim templates. + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] metadata: Standard list metadata + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResourceClaimTemplateListArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ResourceClaimTemplateList is a collection of claim templates. + + :param str resource_name: The name of the resource. + :param ResourceClaimTemplateListArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceClaimTemplateListArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceClaimTemplateArgs', 'ResourceClaimTemplateArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceClaimTemplateListArgs.__new__(ResourceClaimTemplateListArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + if items is None and not opts.urn: + raise TypeError("Missing required property 'items'") + __props__.__dict__["items"] = items + __props__.__dict__["kind"] = 'ResourceClaimTemplateList' + __props__.__dict__["metadata"] = metadata + super(ResourceClaimTemplateList, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplateList', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceClaimTemplateList': + """ + Get an existing ResourceClaimTemplateList resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceClaimTemplateListArgs.__new__(ResourceClaimTemplateListArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["items"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + return ResourceClaimTemplateList(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def items(self) -> pulumi.Output[Sequence['outputs.ResourceClaimTemplate']]: + """ + Items is the list of resource claim templates. + """ + return pulumi.get(self, "items") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.py new file mode 100644 index 0000000000..dd964a93d3 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.py @@ -0,0 +1,240 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceClaimTemplatePatchArgs', 'ResourceClaimTemplatePatch'] + +@pulumi.input_type +class ResourceClaimTemplatePatchArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] = None, + spec: Optional[pulumi.Input['ResourceClaimTemplateSpecPatchArgs']] = None): + """ + The set of arguments for constructing a ResourceClaimTemplatePatch resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: Standard object metadata + :param pulumi.Input['ResourceClaimTemplateSpecPatchArgs'] spec: Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaimTemplate') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['ResourceClaimTemplateSpecPatchArgs']]: + """ + Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['ResourceClaimTemplateSpecPatchArgs']]): + pulumi.set(self, "spec", value) + + +class ResourceClaimTemplatePatch(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceClaimTemplateSpecPatchArgs', 'ResourceClaimTemplateSpecPatchArgsDict']]] = None, + __props__=None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + ResourceClaimTemplate is used to produce ResourceClaim objects. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']] metadata: Standard object metadata + :param pulumi.Input[Union['ResourceClaimTemplateSpecPatchArgs', 'ResourceClaimTemplateSpecPatchArgsDict']] spec: Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[ResourceClaimTemplatePatchArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + ResourceClaimTemplate is used to produce ResourceClaim objects. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param ResourceClaimTemplatePatchArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceClaimTemplatePatchArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceClaimTemplateSpecPatchArgs', 'ResourceClaimTemplateSpecPatchArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceClaimTemplatePatchArgs.__new__(ResourceClaimTemplatePatchArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + __props__.__dict__["kind"] = 'ResourceClaimTemplate' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplatePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceClaimTemplatePatch")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(ResourceClaimTemplatePatch, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceClaimTemplatePatch', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceClaimTemplatePatch': + """ + Get an existing ResourceClaimTemplatePatch resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceClaimTemplatePatchArgs.__new__(ResourceClaimTemplatePatchArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return ResourceClaimTemplatePatch(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output[Optional['_meta.v1.outputs.ObjectMetaPatch']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output[Optional['outputs.ResourceClaimTemplateSpecPatch']]: + """ + Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSlice.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSlice.py new file mode 100644 index 0000000000..3edcdad8a0 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSlice.py @@ -0,0 +1,246 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import core as _core +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceSliceInitArgs', 'ResourceSlice'] + +@pulumi.input_type +class ResourceSliceInitArgs: + def __init__(__self__, *, + spec: pulumi.Input['ResourceSliceSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + The set of arguments for constructing a ResourceSlice resource. + :param pulumi.Input['ResourceSliceSpecArgs'] spec: Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceSlice') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['ResourceSliceSpecArgs']: + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['ResourceSliceSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class ResourceSlice(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceSliceSpecArgs', 'ResourceSliceSpecArgsDict']]] = None, + __props__=None): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: Standard object metadata + :param pulumi.Input[Union['ResourceSliceSpecArgs', 'ResourceSliceSpecArgsDict']] spec: Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResourceSliceInitArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param ResourceSliceInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceSliceInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceSliceSpecArgs', 'ResourceSliceSpecArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceSliceInitArgs.__new__(ResourceSliceInitArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + __props__.__dict__["kind"] = 'ResourceSlice' + __props__.__dict__["metadata"] = metadata + if spec is None and not opts.urn: + raise TypeError("Missing required property 'spec'") + __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceSlice"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceSlice")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(ResourceSlice, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceSlice', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceSlice': + """ + Get an existing ResourceSlice resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceSliceInitArgs.__new__(ResourceSliceInitArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return ResourceSlice(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.ResourceSliceSpec']: + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSliceList.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSliceList.py new file mode 100644 index 0000000000..e2a47a0742 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSliceList.py @@ -0,0 +1,216 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import core as _core +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceSliceListArgs', 'ResourceSliceList'] + +@pulumi.input_type +class ResourceSliceListArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input['ResourceSliceArgs']]], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ListMetaArgs']] = None): + """ + The set of arguments for constructing a ResourceSliceList resource. + :param pulumi.Input[Sequence[pulumi.Input['ResourceSliceArgs']]] items: Items is the list of resource ResourceSlices. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ListMetaArgs'] metadata: Standard list metadata + """ + pulumi.set(__self__, "items", items) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceSliceList') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input['ResourceSliceArgs']]]: + """ + Items is the list of resource ResourceSlices. + """ + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input['ResourceSliceArgs']]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ListMetaArgs']]: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ListMetaArgs']]): + pulumi.set(self, "metadata", value) + + +class ResourceSliceList(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceSliceArgs', 'ResourceSliceArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + """ + ResourceSliceList is a collection of ResourceSlices. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[Sequence[pulumi.Input[Union['ResourceSliceArgs', 'ResourceSliceArgsDict']]]] items: Items is the list of resource ResourceSlices. + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']] metadata: Standard list metadata + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResourceSliceListArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ResourceSliceList is a collection of ResourceSlices. + + :param str resource_name: The name of the resource. + :param ResourceSliceListArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceSliceListArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceSliceArgs', 'ResourceSliceArgsDict']]]]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ListMetaArgs', '_meta.v1.ListMetaArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceSliceListArgs.__new__(ResourceSliceListArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + if items is None and not opts.urn: + raise TypeError("Missing required property 'items'") + __props__.__dict__["items"] = items + __props__.__dict__["kind"] = 'ResourceSliceList' + __props__.__dict__["metadata"] = metadata + super(ResourceSliceList, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceSliceList', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceSliceList': + """ + Get an existing ResourceSliceList resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceSliceListArgs.__new__(ResourceSliceListArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["items"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + return ResourceSliceList(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def items(self) -> pulumi.Output[Sequence['outputs.ResourceSlice']]: + """ + Items is the list of resource ResourceSlices. + """ + return pulumi.get(self, "items") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output['_meta.v1.outputs.ListMeta']: + """ + Standard list metadata + """ + return pulumi.get(self, "metadata") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSlicePatch.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSlicePatch.py new file mode 100644 index 0000000000..34ecbdc59e --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/ResourceSlicePatch.py @@ -0,0 +1,257 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import core as _core +from ... import meta as _meta +from ._inputs import * + +__all__ = ['ResourceSlicePatchArgs', 'ResourceSlicePatch'] + +@pulumi.input_type +class ResourceSlicePatchArgs: + def __init__(__self__, *, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] = None, + spec: Optional[pulumi.Input['ResourceSliceSpecPatchArgs']] = None): + """ + The set of arguments for constructing a ResourceSlicePatch resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: Standard object metadata + :param pulumi.Input['ResourceSliceSpecPatchArgs'] spec: Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceSlice') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['ResourceSliceSpecPatchArgs']]: + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['ResourceSliceSpecPatchArgs']]): + pulumi.set(self, "spec", value) + + +class ResourceSlicePatch(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceSliceSpecPatchArgs', 'ResourceSliceSpecPatchArgsDict']]] = None, + __props__=None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']] metadata: Standard object metadata + :param pulumi.Input[Union['ResourceSliceSpecPatchArgs', 'ResourceSliceSpecPatchArgsDict']] spec: Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[ResourceSlicePatchArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Patch resources are used to modify existing Kubernetes resources by using + Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than + one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. + Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the + [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for + additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + + :param str resource_name: The name of the resource. + :param ResourceSlicePatchArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResourceSlicePatchArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaPatchArgs', '_meta.v1.ObjectMetaPatchArgsDict']]] = None, + spec: Optional[pulumi.Input[Union['ResourceSliceSpecPatchArgs', 'ResourceSliceSpecPatchArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResourceSlicePatchArgs.__new__(ResourceSlicePatchArgs) + + __props__.__dict__["api_version"] = 'resource.k8s.io/v1beta1' + __props__.__dict__["kind"] = 'ResourceSlice' + __props__.__dict__["metadata"] = metadata + __props__.__dict__["spec"] = spec + alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha2:ResourceSlicePatch"), pulumi.Alias(type_="kubernetes:resource.k8s.io/v1alpha3:ResourceSlicePatch")]) + opts = pulumi.ResourceOptions.merge(opts, alias_opts) + super(ResourceSlicePatch, __self__).__init__( + 'kubernetes:resource.k8s.io/v1beta1:ResourceSlicePatch', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ResourceSlicePatch': + """ + Get an existing ResourceSlicePatch resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ResourceSlicePatchArgs.__new__(ResourceSlicePatchArgs) + + __props__.__dict__["api_version"] = None + __props__.__dict__["kind"] = None + __props__.__dict__["metadata"] = None + __props__.__dict__["spec"] = None + return ResourceSlicePatch(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> pulumi.Output[Optional[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output[Optional['_meta.v1.outputs.ObjectMetaPatch']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output[Optional['outputs.ResourceSliceSpecPatch']]: + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/__init__.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/__init__.py new file mode 100644 index 0000000000..32f6837924 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/__init__.py @@ -0,0 +1,21 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +from ... import _utilities +import typing +# Export this package's modules as members: +from .DeviceClass import * +from .DeviceClassList import * +from .DeviceClassPatch import * +from .ResourceClaim import * +from .ResourceClaimList import * +from .ResourceClaimPatch import * +from .ResourceClaimTemplate import * +from .ResourceClaimTemplateList import * +from .ResourceClaimTemplatePatch import * +from .ResourceSlice import * +from .ResourceSliceList import * +from .ResourceSlicePatch import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/_inputs.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/_inputs.py new file mode 100644 index 0000000000..35936bcded --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/_inputs.py @@ -0,0 +1,3867 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from ... import core as _core +from ... import meta as _meta + +__all__ = [ + 'AllocatedDeviceStatusArgs', + 'AllocatedDeviceStatusArgsDict', + 'AllocationResultArgs', + 'AllocationResultArgsDict', + 'BasicDevicePatchArgs', + 'BasicDevicePatchArgsDict', + 'BasicDeviceArgs', + 'BasicDeviceArgsDict', + 'CELDeviceSelectorPatchArgs', + 'CELDeviceSelectorPatchArgsDict', + 'CELDeviceSelectorArgs', + 'CELDeviceSelectorArgsDict', + 'DeviceAllocationConfigurationArgs', + 'DeviceAllocationConfigurationArgsDict', + 'DeviceAllocationResultArgs', + 'DeviceAllocationResultArgsDict', + 'DeviceAttributeArgs', + 'DeviceAttributeArgsDict', + 'DeviceCapacityArgs', + 'DeviceCapacityArgsDict', + 'DeviceClaimConfigurationPatchArgs', + 'DeviceClaimConfigurationPatchArgsDict', + 'DeviceClaimConfigurationArgs', + 'DeviceClaimConfigurationArgsDict', + 'DeviceClaimPatchArgs', + 'DeviceClaimPatchArgsDict', + 'DeviceClaimArgs', + 'DeviceClaimArgsDict', + 'DeviceClassConfigurationPatchArgs', + 'DeviceClassConfigurationPatchArgsDict', + 'DeviceClassConfigurationArgs', + 'DeviceClassConfigurationArgsDict', + 'DeviceClassSpecPatchArgs', + 'DeviceClassSpecPatchArgsDict', + 'DeviceClassSpecArgs', + 'DeviceClassSpecArgsDict', + 'DeviceClassArgs', + 'DeviceClassArgsDict', + 'DeviceConstraintPatchArgs', + 'DeviceConstraintPatchArgsDict', + 'DeviceConstraintArgs', + 'DeviceConstraintArgsDict', + 'DevicePatchArgs', + 'DevicePatchArgsDict', + 'DeviceRequestAllocationResultArgs', + 'DeviceRequestAllocationResultArgsDict', + 'DeviceRequestPatchArgs', + 'DeviceRequestPatchArgsDict', + 'DeviceRequestArgs', + 'DeviceRequestArgsDict', + 'DeviceSelectorPatchArgs', + 'DeviceSelectorPatchArgsDict', + 'DeviceSelectorArgs', + 'DeviceSelectorArgsDict', + 'DeviceArgs', + 'DeviceArgsDict', + 'NetworkDeviceDataArgs', + 'NetworkDeviceDataArgsDict', + 'OpaqueDeviceConfigurationPatchArgs', + 'OpaqueDeviceConfigurationPatchArgsDict', + 'OpaqueDeviceConfigurationArgs', + 'OpaqueDeviceConfigurationArgsDict', + 'ResourceClaimConsumerReferenceArgs', + 'ResourceClaimConsumerReferenceArgsDict', + 'ResourceClaimSpecPatchArgs', + 'ResourceClaimSpecPatchArgsDict', + 'ResourceClaimSpecArgs', + 'ResourceClaimSpecArgsDict', + 'ResourceClaimStatusArgs', + 'ResourceClaimStatusArgsDict', + 'ResourceClaimTemplateSpecPatchArgs', + 'ResourceClaimTemplateSpecPatchArgsDict', + 'ResourceClaimTemplateSpecArgs', + 'ResourceClaimTemplateSpecArgsDict', + 'ResourceClaimTemplateArgs', + 'ResourceClaimTemplateArgsDict', + 'ResourceClaimArgs', + 'ResourceClaimArgsDict', + 'ResourcePoolPatchArgs', + 'ResourcePoolPatchArgsDict', + 'ResourcePoolArgs', + 'ResourcePoolArgsDict', + 'ResourceSliceSpecPatchArgs', + 'ResourceSliceSpecPatchArgsDict', + 'ResourceSliceSpecArgs', + 'ResourceSliceSpecArgsDict', + 'ResourceSliceArgs', + 'ResourceSliceArgsDict', +] + +MYPY = False + +if not MYPY: + class AllocatedDeviceStatusArgsDict(TypedDict): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + """ + device: pulumi.Input[str] + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + driver: pulumi.Input[str] + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + pool: pulumi.Input[str] + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgsDict']]]] + """ + 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. + """ + data: NotRequired[Any] + """ + Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + network_data: NotRequired[pulumi.Input['NetworkDeviceDataArgsDict']] + """ + NetworkData contains network-related information specific to the device. + """ +elif False: + AllocatedDeviceStatusArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AllocatedDeviceStatusArgs: + def __init__(__self__, *, + device: pulumi.Input[str], + driver: pulumi.Input[str], + pool: pulumi.Input[str], + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]] = None, + data: Optional[Any] = None, + network_data: Optional[pulumi.Input['NetworkDeviceDataArgs']] = None): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + :param pulumi.Input[str] device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :param pulumi.Input[str] driver: Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param pulumi.Input[str] pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + :param pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]] conditions: Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True. + :param Any data: Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + :param pulumi.Input['NetworkDeviceDataArgs'] network_data: NetworkData contains network-related information specific to the device. + """ + pulumi.set(__self__, "device", device) + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "pool", pool) + if conditions is not None: + pulumi.set(__self__, "conditions", conditions) + if data is not None: + pulumi.set(__self__, "data", data) + if network_data is not None: + pulumi.set(__self__, "network_data", network_data) + + @property + @pulumi.getter + def device(self) -> pulumi.Input[str]: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @device.setter + def device(self, value: pulumi.Input[str]): + pulumi.set(self, "device", value) + + @property + @pulumi.getter + def driver(self) -> pulumi.Input[str]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @driver.setter + def driver(self, value: pulumi.Input[str]): + pulumi.set(self, "driver", value) + + @property + @pulumi.getter + def pool(self) -> pulumi.Input[str]: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: pulumi.Input[str]): + pulumi.set(self, "pool", value) + + @property + @pulumi.getter + def conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]]: + """ + 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. + """ + return pulumi.get(self, "conditions") + + @conditions.setter + def conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_meta.v1.ConditionArgs']]]]): + pulumi.set(self, "conditions", value) + + @property + @pulumi.getter + def data(self) -> Optional[Any]: + """ + Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "data") + + @data.setter + def data(self, value: Optional[Any]): + pulumi.set(self, "data", value) + + @property + @pulumi.getter(name="networkData") + def network_data(self) -> Optional[pulumi.Input['NetworkDeviceDataArgs']]: + """ + NetworkData contains network-related information specific to the device. + """ + return pulumi.get(self, "network_data") + + @network_data.setter + def network_data(self, value: Optional[pulumi.Input['NetworkDeviceDataArgs']]): + pulumi.set(self, "network_data", value) + + +if not MYPY: + class AllocationResultArgsDict(TypedDict): + """ + AllocationResult contains attributes of an allocated resource. + """ + devices: NotRequired[pulumi.Input['DeviceAllocationResultArgsDict']] + """ + Devices is the result of allocating devices. + """ + node_selector: NotRequired[pulumi.Input['_core.v1.NodeSelectorArgsDict']] + """ + NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + """ +elif False: + AllocationResultArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AllocationResultArgs: + def __init__(__self__, *, + devices: Optional[pulumi.Input['DeviceAllocationResultArgs']] = None, + node_selector: Optional[pulumi.Input['_core.v1.NodeSelectorArgs']] = None): + """ + AllocationResult contains attributes of an allocated resource. + :param pulumi.Input['DeviceAllocationResultArgs'] devices: Devices is the result of allocating devices. + :param pulumi.Input['_core.v1.NodeSelectorArgs'] node_selector: NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + """ + if devices is not None: + pulumi.set(__self__, "devices", devices) + if node_selector is not None: + pulumi.set(__self__, "node_selector", node_selector) + + @property + @pulumi.getter + def devices(self) -> Optional[pulumi.Input['DeviceAllocationResultArgs']]: + """ + Devices is the result of allocating devices. + """ + return pulumi.get(self, "devices") + + @devices.setter + def devices(self, value: Optional[pulumi.Input['DeviceAllocationResultArgs']]): + pulumi.set(self, "devices", value) + + @property + @pulumi.getter(name="nodeSelector") + def node_selector(self) -> Optional[pulumi.Input['_core.v1.NodeSelectorArgs']]: + """ + NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + """ + return pulumi.get(self, "node_selector") + + @node_selector.setter + def node_selector(self, value: Optional[pulumi.Input['_core.v1.NodeSelectorArgs']]): + pulumi.set(self, "node_selector", value) + + +if not MYPY: + class BasicDevicePatchArgsDict(TypedDict): + """ + BasicDevice defines one device instance. + """ + attributes: NotRequired[pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgsDict']]]] + """ + Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + capacity: NotRequired[pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgsDict']]]] + """ + Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ +elif False: + BasicDevicePatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BasicDevicePatchArgs: + def __init__(__self__, *, + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgs']]]] = None, + capacity: Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgs']]]] = None): + """ + BasicDevice defines one device instance. + :param pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgs']]] attributes: Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + :param pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgs']]] capacity: Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + if attributes is not None: + pulumi.set(__self__, "attributes", attributes) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + + @property + @pulumi.getter + def attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgs']]]]: + """ + Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + return pulumi.get(self, "attributes") + + @attributes.setter + def attributes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgs']]]]): + pulumi.set(self, "attributes", value) + + @property + @pulumi.getter + def capacity(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgs']]]]: + """ + Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + return pulumi.get(self, "capacity") + + @capacity.setter + def capacity(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgs']]]]): + pulumi.set(self, "capacity", value) + + +if not MYPY: + class BasicDeviceArgsDict(TypedDict): + """ + BasicDevice defines one device instance. + """ + attributes: NotRequired[pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgsDict']]]] + """ + Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + capacity: NotRequired[pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgsDict']]]] + """ + Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ +elif False: + BasicDeviceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BasicDeviceArgs: + def __init__(__self__, *, + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgs']]]] = None, + capacity: Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgs']]]] = None): + """ + BasicDevice defines one device instance. + :param pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgs']]] attributes: Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + :param pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgs']]] capacity: Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + if attributes is not None: + pulumi.set(__self__, "attributes", attributes) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + + @property + @pulumi.getter + def attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgs']]]]: + """ + Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + return pulumi.get(self, "attributes") + + @attributes.setter + def attributes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceAttributeArgs']]]]): + pulumi.set(self, "attributes", value) + + @property + @pulumi.getter + def capacity(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgs']]]]: + """ + Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + return pulumi.get(self, "capacity") + + @capacity.setter + def capacity(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input['DeviceCapacityArgs']]]]): + pulumi.set(self, "capacity", value) + + +if not MYPY: + class CELDeviceSelectorPatchArgsDict(TypedDict): + """ + CELDeviceSelector contains a CEL expression for selecting a device. + """ + expression: NotRequired[pulumi.Input[str]] + """ + 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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ +elif False: + CELDeviceSelectorPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CELDeviceSelectorPatchArgs: + def __init__(__self__, *, + expression: Optional[pulumi.Input[str]] = None): + """ + CELDeviceSelector contains a CEL expression for selecting a device. + :param pulumi.Input[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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[pulumi.Input[str]]: + """ + 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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expression", value) + + +if not MYPY: + class CELDeviceSelectorArgsDict(TypedDict): + """ + CELDeviceSelector contains a CEL expression for selecting a device. + """ + expression: pulumi.Input[str] + """ + 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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ +elif False: + CELDeviceSelectorArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CELDeviceSelectorArgs: + def __init__(__self__, *, + expression: pulumi.Input[str]): + """ + CELDeviceSelector contains a CEL expression for selecting a device. + :param pulumi.Input[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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> pulumi.Input[str]: + """ + 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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: pulumi.Input[str]): + pulumi.set(self, "expression", value) + + +if not MYPY: + class DeviceAllocationConfigurationArgsDict(TypedDict): + """ + DeviceAllocationConfiguration gets embedded in an AllocationResult. + """ + source: pulumi.Input[str] + """ + 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. + """ + opaque: NotRequired[pulumi.Input['OpaqueDeviceConfigurationArgsDict']] + """ + Opaque provides driver-specific configuration parameters. + """ + requests: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + """ +elif False: + DeviceAllocationConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceAllocationConfigurationArgs: + def __init__(__self__, *, + source: pulumi.Input[str], + opaque: Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']] = None, + requests: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + DeviceAllocationConfiguration gets embedded in an AllocationResult. + :param pulumi.Input[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. + :param pulumi.Input['OpaqueDeviceConfigurationArgs'] opaque: Opaque provides driver-specific configuration parameters. + :param pulumi.Input[Sequence[pulumi.Input[str]]] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + """ + pulumi.set(__self__, "source", source) + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def source(self) -> pulumi.Input[str]: + """ + 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. + """ + return pulumi.get(self, "source") + + @source.setter + def source(self, value: pulumi.Input[str]): + pulumi.set(self, "source", value) + + @property + @pulumi.getter + def opaque(self) -> Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']]: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @opaque.setter + def opaque(self, value: Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']]): + pulumi.set(self, "opaque", value) + + @property + @pulumi.getter + def requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + """ + return pulumi.get(self, "requests") + + @requests.setter + def requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "requests", value) + + +if not MYPY: + class DeviceAllocationResultArgsDict(TypedDict): + """ + DeviceAllocationResult is the result of allocating devices. + """ + config: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceAllocationConfigurationArgsDict']]]] + """ + This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + + This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + """ + results: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceRequestAllocationResultArgsDict']]]] + """ + Results lists all allocated devices. + """ +elif False: + DeviceAllocationResultArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceAllocationResultArgs: + def __init__(__self__, *, + config: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceAllocationConfigurationArgs']]]] = None, + results: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestAllocationResultArgs']]]] = None): + """ + DeviceAllocationResult is the result of allocating devices. + :param pulumi.Input[Sequence[pulumi.Input['DeviceAllocationConfigurationArgs']]] config: This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + + This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + :param pulumi.Input[Sequence[pulumi.Input['DeviceRequestAllocationResultArgs']]] results: Results lists all allocated devices. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if results is not None: + pulumi.set(__self__, "results", results) + + @property + @pulumi.getter + def config(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceAllocationConfigurationArgs']]]]: + """ + This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + + This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + """ + return pulumi.get(self, "config") + + @config.setter + def config(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceAllocationConfigurationArgs']]]]): + pulumi.set(self, "config", value) + + @property + @pulumi.getter + def results(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestAllocationResultArgs']]]]: + """ + Results lists all allocated devices. + """ + return pulumi.get(self, "results") + + @results.setter + def results(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestAllocationResultArgs']]]]): + pulumi.set(self, "results", value) + + +if not MYPY: + class DeviceAttributeArgsDict(TypedDict): + """ + DeviceAttribute must have exactly one field set. + """ + bool: NotRequired[pulumi.Input[bool]] + """ + BoolValue is a true/false value. + """ + int: NotRequired[pulumi.Input[int]] + """ + IntValue is a number. + """ + string: NotRequired[pulumi.Input[str]] + """ + StringValue is a string. Must not be longer than 64 characters. + """ + version: NotRequired[pulumi.Input[str]] + """ + VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + """ +elif False: + DeviceAttributeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceAttributeArgs: + def __init__(__self__, *, + bool: Optional[pulumi.Input[bool]] = None, + int: Optional[pulumi.Input[int]] = None, + string: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None): + """ + DeviceAttribute must have exactly one field set. + :param pulumi.Input[bool] bool: BoolValue is a true/false value. + :param pulumi.Input[int] int: IntValue is a number. + :param pulumi.Input[str] string: StringValue is a string. Must not be longer than 64 characters. + :param pulumi.Input[str] version: VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + """ + if bool is not None: + pulumi.set(__self__, "bool", bool) + if int is not None: + pulumi.set(__self__, "int", int) + if string is not None: + pulumi.set(__self__, "string", string) + if version is not None: + pulumi.set(__self__, "version", version) + + @property + @pulumi.getter + def bool(self) -> Optional[pulumi.Input[bool]]: + """ + BoolValue is a true/false value. + """ + return pulumi.get(self, "bool") + + @bool.setter + def bool(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "bool", value) + + @property + @pulumi.getter + def int(self) -> Optional[pulumi.Input[int]]: + """ + IntValue is a number. + """ + return pulumi.get(self, "int") + + @int.setter + def int(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "int", value) + + @property + @pulumi.getter + def string(self) -> Optional[pulumi.Input[str]]: + """ + StringValue is a string. Must not be longer than 64 characters. + """ + return pulumi.get(self, "string") + + @string.setter + def string(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "string", value) + + @property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[str]]: + """ + VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + """ + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "version", value) + + +if not MYPY: + class DeviceCapacityArgsDict(TypedDict): + """ + DeviceCapacity describes a quantity associated with a device. + """ + value: pulumi.Input[str] + """ + Value defines how much of a certain device capacity is available. + """ +elif False: + DeviceCapacityArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceCapacityArgs: + def __init__(__self__, *, + value: pulumi.Input[str]): + """ + DeviceCapacity describes a quantity associated with a device. + :param pulumi.Input[str] value: Value defines how much of a certain device capacity is available. + """ + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + Value defines how much of a certain device capacity is available. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + +if not MYPY: + class DeviceClaimConfigurationPatchArgsDict(TypedDict): + """ + DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + """ + opaque: NotRequired[pulumi.Input['OpaqueDeviceConfigurationPatchArgsDict']] + """ + Opaque provides driver-specific configuration parameters. + """ + requests: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ +elif False: + DeviceClaimConfigurationPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClaimConfigurationPatchArgs: + def __init__(__self__, *, + opaque: Optional[pulumi.Input['OpaqueDeviceConfigurationPatchArgs']] = None, + requests: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + :param pulumi.Input['OpaqueDeviceConfigurationPatchArgs'] opaque: Opaque provides driver-specific configuration parameters. + :param pulumi.Input[Sequence[pulumi.Input[str]]] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def opaque(self) -> Optional[pulumi.Input['OpaqueDeviceConfigurationPatchArgs']]: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @opaque.setter + def opaque(self, value: Optional[pulumi.Input['OpaqueDeviceConfigurationPatchArgs']]): + pulumi.set(self, "opaque", value) + + @property + @pulumi.getter + def requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ + return pulumi.get(self, "requests") + + @requests.setter + def requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "requests", value) + + +if not MYPY: + class DeviceClaimConfigurationArgsDict(TypedDict): + """ + DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + """ + opaque: NotRequired[pulumi.Input['OpaqueDeviceConfigurationArgsDict']] + """ + Opaque provides driver-specific configuration parameters. + """ + requests: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ +elif False: + DeviceClaimConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClaimConfigurationArgs: + def __init__(__self__, *, + opaque: Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']] = None, + requests: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + :param pulumi.Input['OpaqueDeviceConfigurationArgs'] opaque: Opaque provides driver-specific configuration parameters. + :param pulumi.Input[Sequence[pulumi.Input[str]]] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def opaque(self) -> Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']]: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @opaque.setter + def opaque(self, value: Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']]): + pulumi.set(self, "opaque", value) + + @property + @pulumi.getter + def requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ + return pulumi.get(self, "requests") + + @requests.setter + def requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "requests", value) + + +if not MYPY: + class DeviceClaimPatchArgsDict(TypedDict): + """ + DeviceClaim defines how to request devices with a ResourceClaim. + """ + config: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationPatchArgsDict']]]] + """ + This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + """ + constraints: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceConstraintPatchArgsDict']]]] + """ + These constraints must be satisfied by the set of devices that get allocated for the claim. + """ + requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceRequestPatchArgsDict']]]] + """ + Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ +elif False: + DeviceClaimPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClaimPatchArgs: + def __init__(__self__, *, + config: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationPatchArgs']]]] = None, + constraints: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceConstraintPatchArgs']]]] = None, + requests: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestPatchArgs']]]] = None): + """ + DeviceClaim defines how to request devices with a ResourceClaim. + :param pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationPatchArgs']]] config: This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + :param pulumi.Input[Sequence[pulumi.Input['DeviceConstraintPatchArgs']]] constraints: These constraints must be satisfied by the set of devices that get allocated for the claim. + :param pulumi.Input[Sequence[pulumi.Input['DeviceRequestPatchArgs']]] requests: Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if constraints is not None: + pulumi.set(__self__, "constraints", constraints) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def config(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationPatchArgs']]]]: + """ + This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + """ + return pulumi.get(self, "config") + + @config.setter + def config(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationPatchArgs']]]]): + pulumi.set(self, "config", value) + + @property + @pulumi.getter + def constraints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceConstraintPatchArgs']]]]: + """ + These constraints must be satisfied by the set of devices that get allocated for the claim. + """ + return pulumi.get(self, "constraints") + + @constraints.setter + def constraints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceConstraintPatchArgs']]]]): + pulumi.set(self, "constraints", value) + + @property + @pulumi.getter + def requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestPatchArgs']]]]: + """ + Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ + return pulumi.get(self, "requests") + + @requests.setter + def requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestPatchArgs']]]]): + pulumi.set(self, "requests", value) + + +if not MYPY: + class DeviceClaimArgsDict(TypedDict): + """ + DeviceClaim defines how to request devices with a ResourceClaim. + """ + config: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationArgsDict']]]] + """ + This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + """ + constraints: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceConstraintArgsDict']]]] + """ + These constraints must be satisfied by the set of devices that get allocated for the claim. + """ + requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceRequestArgsDict']]]] + """ + Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ +elif False: + DeviceClaimArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClaimArgs: + def __init__(__self__, *, + config: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationArgs']]]] = None, + constraints: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceConstraintArgs']]]] = None, + requests: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestArgs']]]] = None): + """ + DeviceClaim defines how to request devices with a ResourceClaim. + :param pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationArgs']]] config: This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + :param pulumi.Input[Sequence[pulumi.Input['DeviceConstraintArgs']]] constraints: These constraints must be satisfied by the set of devices that get allocated for the claim. + :param pulumi.Input[Sequence[pulumi.Input['DeviceRequestArgs']]] requests: Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if constraints is not None: + pulumi.set(__self__, "constraints", constraints) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def config(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationArgs']]]]: + """ + This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + """ + return pulumi.get(self, "config") + + @config.setter + def config(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClaimConfigurationArgs']]]]): + pulumi.set(self, "config", value) + + @property + @pulumi.getter + def constraints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceConstraintArgs']]]]: + """ + These constraints must be satisfied by the set of devices that get allocated for the claim. + """ + return pulumi.get(self, "constraints") + + @constraints.setter + def constraints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceConstraintArgs']]]]): + pulumi.set(self, "constraints", value) + + @property + @pulumi.getter + def requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestArgs']]]]: + """ + Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ + return pulumi.get(self, "requests") + + @requests.setter + def requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceRequestArgs']]]]): + pulumi.set(self, "requests", value) + + +if not MYPY: + class DeviceClassConfigurationPatchArgsDict(TypedDict): + """ + DeviceClassConfiguration is used in DeviceClass. + """ + opaque: NotRequired[pulumi.Input['OpaqueDeviceConfigurationPatchArgsDict']] + """ + Opaque provides driver-specific configuration parameters. + """ +elif False: + DeviceClassConfigurationPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClassConfigurationPatchArgs: + def __init__(__self__, *, + opaque: Optional[pulumi.Input['OpaqueDeviceConfigurationPatchArgs']] = None): + """ + DeviceClassConfiguration is used in DeviceClass. + :param pulumi.Input['OpaqueDeviceConfigurationPatchArgs'] opaque: Opaque provides driver-specific configuration parameters. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + + @property + @pulumi.getter + def opaque(self) -> Optional[pulumi.Input['OpaqueDeviceConfigurationPatchArgs']]: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @opaque.setter + def opaque(self, value: Optional[pulumi.Input['OpaqueDeviceConfigurationPatchArgs']]): + pulumi.set(self, "opaque", value) + + +if not MYPY: + class DeviceClassConfigurationArgsDict(TypedDict): + """ + DeviceClassConfiguration is used in DeviceClass. + """ + opaque: NotRequired[pulumi.Input['OpaqueDeviceConfigurationArgsDict']] + """ + Opaque provides driver-specific configuration parameters. + """ +elif False: + DeviceClassConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClassConfigurationArgs: + def __init__(__self__, *, + opaque: Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']] = None): + """ + DeviceClassConfiguration is used in DeviceClass. + :param pulumi.Input['OpaqueDeviceConfigurationArgs'] opaque: Opaque provides driver-specific configuration parameters. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + + @property + @pulumi.getter + def opaque(self) -> Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']]: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @opaque.setter + def opaque(self, value: Optional[pulumi.Input['OpaqueDeviceConfigurationArgs']]): + pulumi.set(self, "opaque", value) + + +if not MYPY: + class DeviceClassSpecPatchArgsDict(TypedDict): + """ + DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + """ + config: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationPatchArgsDict']]]] + """ + Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + """ + selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgsDict']]]] + """ + Each selector must be satisfied by a device which is claimed via this class. + """ +elif False: + DeviceClassSpecPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClassSpecPatchArgs: + def __init__(__self__, *, + config: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationPatchArgs']]]] = None, + selectors: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgs']]]] = None): + """ + DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + :param pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationPatchArgs']]] config: Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + :param pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgs']]] selectors: Each selector must be satisfied by a device which is claimed via this class. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if selectors is not None: + pulumi.set(__self__, "selectors", selectors) + + @property + @pulumi.getter + def config(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationPatchArgs']]]]: + """ + Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + """ + return pulumi.get(self, "config") + + @config.setter + def config(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationPatchArgs']]]]): + pulumi.set(self, "config", value) + + @property + @pulumi.getter + def selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgs']]]]: + """ + Each selector must be satisfied by a device which is claimed via this class. + """ + return pulumi.get(self, "selectors") + + @selectors.setter + def selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgs']]]]): + pulumi.set(self, "selectors", value) + + +if not MYPY: + class DeviceClassSpecArgsDict(TypedDict): + """ + DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + """ + config: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationArgsDict']]]] + """ + Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + """ + selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgsDict']]]] + """ + Each selector must be satisfied by a device which is claimed via this class. + """ +elif False: + DeviceClassSpecArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClassSpecArgs: + def __init__(__self__, *, + config: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationArgs']]]] = None, + selectors: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgs']]]] = None): + """ + DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + :param pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationArgs']]] config: Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + :param pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgs']]] selectors: Each selector must be satisfied by a device which is claimed via this class. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if selectors is not None: + pulumi.set(__self__, "selectors", selectors) + + @property + @pulumi.getter + def config(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationArgs']]]]: + """ + Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + """ + return pulumi.get(self, "config") + + @config.setter + def config(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceClassConfigurationArgs']]]]): + pulumi.set(self, "config", value) + + @property + @pulumi.getter + def selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgs']]]]: + """ + Each selector must be satisfied by a device which is claimed via this class. + """ + return pulumi.get(self, "selectors") + + @selectors.setter + def selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgs']]]]): + pulumi.set(self, "selectors", value) + + +if not MYPY: + class DeviceClassArgsDict(TypedDict): + """ + 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. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + spec: pulumi.Input['DeviceClassSpecArgsDict'] + """ + Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + api_version: NotRequired[pulumi.Input[str]] + """ + 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 + """ + kind: NotRequired[pulumi.Input[str]] + """ + 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 + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + Standard object metadata + """ +elif False: + DeviceClassArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceClassArgs: + def __init__(__self__, *, + spec: pulumi.Input['DeviceClassSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + 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. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param pulumi.Input['DeviceClassSpecArgs'] spec: Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'DeviceClass') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['DeviceClassSpecArgs']: + """ + Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['DeviceClassSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + +if not MYPY: + class DeviceConstraintPatchArgsDict(TypedDict): + """ + DeviceConstraint must have exactly one field set besides Requests. + """ + match_attribute: NotRequired[pulumi.Input[str]] + """ + MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + + 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. + + Must include the domain qualifier. + """ + requests: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + """ +elif False: + DeviceConstraintPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceConstraintPatchArgs: + def __init__(__self__, *, + match_attribute: Optional[pulumi.Input[str]] = None, + requests: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + DeviceConstraint must have exactly one field set besides Requests. + :param pulumi.Input[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. + + 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. + + Must include the domain qualifier. + :param pulumi.Input[Sequence[pulumi.Input[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. + """ + if match_attribute is not None: + pulumi.set(__self__, "match_attribute", match_attribute) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter(name="matchAttribute") + def match_attribute(self) -> Optional[pulumi.Input[str]]: + """ + MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + + 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. + + Must include the domain qualifier. + """ + return pulumi.get(self, "match_attribute") + + @match_attribute.setter + def match_attribute(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "match_attribute", value) + + @property + @pulumi.getter + def requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "requests") + + @requests.setter + def requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "requests", value) + + +if not MYPY: + class DeviceConstraintArgsDict(TypedDict): + """ + DeviceConstraint must have exactly one field set besides Requests. + """ + match_attribute: NotRequired[pulumi.Input[str]] + """ + MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + + 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. + + Must include the domain qualifier. + """ + requests: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + """ +elif False: + DeviceConstraintArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceConstraintArgs: + def __init__(__self__, *, + match_attribute: Optional[pulumi.Input[str]] = None, + requests: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + DeviceConstraint must have exactly one field set besides Requests. + :param pulumi.Input[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. + + 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. + + Must include the domain qualifier. + :param pulumi.Input[Sequence[pulumi.Input[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. + """ + if match_attribute is not None: + pulumi.set(__self__, "match_attribute", match_attribute) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter(name="matchAttribute") + def match_attribute(self) -> Optional[pulumi.Input[str]]: + """ + MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + + 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. + + Must include the domain qualifier. + """ + return pulumi.get(self, "match_attribute") + + @match_attribute.setter + def match_attribute(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "match_attribute", value) + + @property + @pulumi.getter + def requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "requests") + + @requests.setter + def requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "requests", value) + + +if not MYPY: + class DevicePatchArgsDict(TypedDict): + """ + Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + """ + basic: NotRequired[pulumi.Input['BasicDevicePatchArgsDict']] + """ + Basic defines one device instance. + """ + name: NotRequired[pulumi.Input[str]] + """ + Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + """ +elif False: + DevicePatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DevicePatchArgs: + def __init__(__self__, *, + basic: Optional[pulumi.Input['BasicDevicePatchArgs']] = None, + name: Optional[pulumi.Input[str]] = None): + """ + Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + :param pulumi.Input['BasicDevicePatchArgs'] basic: Basic defines one device instance. + :param pulumi.Input[str] name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + """ + if basic is not None: + pulumi.set(__self__, "basic", basic) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def basic(self) -> Optional[pulumi.Input['BasicDevicePatchArgs']]: + """ + Basic defines one device instance. + """ + return pulumi.get(self, "basic") + + @basic.setter + def basic(self, value: Optional[pulumi.Input['BasicDevicePatchArgs']]): + pulumi.set(self, "basic", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +if not MYPY: + class DeviceRequestAllocationResultArgsDict(TypedDict): + """ + DeviceRequestAllocationResult contains the allocation result for one request. + """ + device: pulumi.Input[str] + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + driver: pulumi.Input[str] + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + pool: pulumi.Input[str] + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + request: pulumi.Input[str] + """ + 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. + """ + admin_access: NotRequired[pulumi.Input[bool]] + """ + AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ +elif False: + DeviceRequestAllocationResultArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceRequestAllocationResultArgs: + def __init__(__self__, *, + device: pulumi.Input[str], + driver: pulumi.Input[str], + pool: pulumi.Input[str], + request: pulumi.Input[str], + admin_access: Optional[pulumi.Input[bool]] = None): + """ + DeviceRequestAllocationResult contains the allocation result for one request. + :param pulumi.Input[str] device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :param pulumi.Input[str] driver: Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param pulumi.Input[str] pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + :param pulumi.Input[str] request: Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request. + :param pulumi.Input[bool] admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ + pulumi.set(__self__, "device", device) + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "pool", pool) + pulumi.set(__self__, "request", request) + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) + + @property + @pulumi.getter + def device(self) -> pulumi.Input[str]: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @device.setter + def device(self, value: pulumi.Input[str]): + pulumi.set(self, "device", value) + + @property + @pulumi.getter + def driver(self) -> pulumi.Input[str]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @driver.setter + def driver(self, value: pulumi.Input[str]): + pulumi.set(self, "driver", value) + + @property + @pulumi.getter + def pool(self) -> pulumi.Input[str]: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: pulumi.Input[str]): + pulumi.set(self, "pool", value) + + @property + @pulumi.getter + def request(self) -> pulumi.Input[str]: + """ + 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. + """ + return pulumi.get(self, "request") + + @request.setter + def request(self, value: pulumi.Input[str]): + pulumi.set(self, "request", value) + + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[pulumi.Input[bool]]: + """ + AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ + return pulumi.get(self, "admin_access") + + @admin_access.setter + def admin_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "admin_access", value) + + +if not MYPY: + class DeviceRequestPatchArgsDict(TypedDict): + """ + 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. + + 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. + """ + admin_access: NotRequired[pulumi.Input[bool]] + """ + 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. + + 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. + """ + allocation_mode: NotRequired[pulumi.Input[str]] + """ + AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + """ + count: NotRequired[pulumi.Input[int]] + """ + 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. + """ + device_class_name: NotRequired[pulumi.Input[str]] + """ + DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + """ + name: NotRequired[pulumi.Input[str]] + """ + Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + + Must be a DNS label. + """ + selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgsDict']]]] + """ + 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. + """ +elif False: + DeviceRequestPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceRequestPatchArgs: + def __init__(__self__, *, + admin_access: Optional[pulumi.Input[bool]] = None, + allocation_mode: Optional[pulumi.Input[str]] = None, + count: Optional[pulumi.Input[int]] = None, + device_class_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + selectors: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgs']]]] = None): + """ + 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. + + 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. + :param pulumi.Input[bool] admin_access: AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations. + + 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. + :param pulumi.Input[str] allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + :param pulumi.Input[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. + :param pulumi.Input[str] device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + :param pulumi.Input[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. + + Must be a DNS label. + :param pulumi.Input[Sequence[pulumi.Input['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. + """ + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) + if allocation_mode is not None: + pulumi.set(__self__, "allocation_mode", allocation_mode) + if count is not None: + pulumi.set(__self__, "count", count) + if device_class_name is not None: + pulumi.set(__self__, "device_class_name", device_class_name) + if name is not None: + pulumi.set(__self__, "name", name) + if selectors is not None: + pulumi.set(__self__, "selectors", selectors) + + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[pulumi.Input[bool]]: + """ + 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. + + 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. + """ + return pulumi.get(self, "admin_access") + + @admin_access.setter + def admin_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "admin_access", value) + + @property + @pulumi.getter(name="allocationMode") + def allocation_mode(self) -> Optional[pulumi.Input[str]]: + """ + AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + """ + return pulumi.get(self, "allocation_mode") + + @allocation_mode.setter + def allocation_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "allocation_mode", value) + + @property + @pulumi.getter + def count(self) -> Optional[pulumi.Input[int]]: + """ + 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. + """ + return pulumi.get(self, "count") + + @count.setter + def count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "count", value) + + @property + @pulumi.getter(name="deviceClassName") + def device_class_name(self) -> Optional[pulumi.Input[str]]: + """ + DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + """ + return pulumi.get(self, "device_class_name") + + @device_class_name.setter + def device_class_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "device_class_name", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + + Must be a DNS label. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgs']]]]: + """ + 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. + """ + return pulumi.get(self, "selectors") + + @selectors.setter + def selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorPatchArgs']]]]): + pulumi.set(self, "selectors", value) + + +if not MYPY: + class DeviceRequestArgsDict(TypedDict): + """ + 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. + + 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. + """ + device_class_name: pulumi.Input[str] + """ + DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + """ + name: pulumi.Input[str] + """ + Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + + Must be a DNS label. + """ + admin_access: NotRequired[pulumi.Input[bool]] + """ + 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. + + 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. + """ + allocation_mode: NotRequired[pulumi.Input[str]] + """ + AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + """ + count: NotRequired[pulumi.Input[int]] + """ + 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. + """ + selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgsDict']]]] + """ + 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. + """ +elif False: + DeviceRequestArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceRequestArgs: + def __init__(__self__, *, + device_class_name: pulumi.Input[str], + name: pulumi.Input[str], + admin_access: Optional[pulumi.Input[bool]] = None, + allocation_mode: Optional[pulumi.Input[str]] = None, + count: Optional[pulumi.Input[int]] = None, + selectors: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgs']]]] = None): + """ + 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. + + 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. + :param pulumi.Input[str] device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + :param pulumi.Input[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. + + Must be a DNS label. + :param pulumi.Input[bool] admin_access: AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations. + + 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. + :param pulumi.Input[str] allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + :param pulumi.Input[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. + :param pulumi.Input[Sequence[pulumi.Input['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. + """ + pulumi.set(__self__, "device_class_name", device_class_name) + pulumi.set(__self__, "name", name) + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) + if allocation_mode is not None: + pulumi.set(__self__, "allocation_mode", allocation_mode) + if count is not None: + pulumi.set(__self__, "count", count) + if selectors is not None: + pulumi.set(__self__, "selectors", selectors) + + @property + @pulumi.getter(name="deviceClassName") + def device_class_name(self) -> pulumi.Input[str]: + """ + DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + """ + return pulumi.get(self, "device_class_name") + + @device_class_name.setter + def device_class_name(self, value: pulumi.Input[str]): + pulumi.set(self, "device_class_name", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + + Must be a DNS label. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[pulumi.Input[bool]]: + """ + 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. + + 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. + """ + return pulumi.get(self, "admin_access") + + @admin_access.setter + def admin_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "admin_access", value) + + @property + @pulumi.getter(name="allocationMode") + def allocation_mode(self) -> Optional[pulumi.Input[str]]: + """ + AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + """ + return pulumi.get(self, "allocation_mode") + + @allocation_mode.setter + def allocation_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "allocation_mode", value) + + @property + @pulumi.getter + def count(self) -> Optional[pulumi.Input[int]]: + """ + 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. + """ + return pulumi.get(self, "count") + + @count.setter + def count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "count", value) + + @property + @pulumi.getter + def selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgs']]]]: + """ + 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. + """ + return pulumi.get(self, "selectors") + + @selectors.setter + def selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceSelectorArgs']]]]): + pulumi.set(self, "selectors", value) + + +if not MYPY: + class DeviceSelectorPatchArgsDict(TypedDict): + """ + DeviceSelector must have exactly one field set. + """ + cel: NotRequired[pulumi.Input['CELDeviceSelectorPatchArgsDict']] + """ + CEL contains a CEL expression for selecting a device. + """ +elif False: + DeviceSelectorPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceSelectorPatchArgs: + def __init__(__self__, *, + cel: Optional[pulumi.Input['CELDeviceSelectorPatchArgs']] = None): + """ + DeviceSelector must have exactly one field set. + :param pulumi.Input['CELDeviceSelectorPatchArgs'] cel: CEL contains a CEL expression for selecting a device. + """ + if cel is not None: + pulumi.set(__self__, "cel", cel) + + @property + @pulumi.getter + def cel(self) -> Optional[pulumi.Input['CELDeviceSelectorPatchArgs']]: + """ + CEL contains a CEL expression for selecting a device. + """ + return pulumi.get(self, "cel") + + @cel.setter + def cel(self, value: Optional[pulumi.Input['CELDeviceSelectorPatchArgs']]): + pulumi.set(self, "cel", value) + + +if not MYPY: + class DeviceSelectorArgsDict(TypedDict): + """ + DeviceSelector must have exactly one field set. + """ + cel: NotRequired[pulumi.Input['CELDeviceSelectorArgsDict']] + """ + CEL contains a CEL expression for selecting a device. + """ +elif False: + DeviceSelectorArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceSelectorArgs: + def __init__(__self__, *, + cel: Optional[pulumi.Input['CELDeviceSelectorArgs']] = None): + """ + DeviceSelector must have exactly one field set. + :param pulumi.Input['CELDeviceSelectorArgs'] cel: CEL contains a CEL expression for selecting a device. + """ + if cel is not None: + pulumi.set(__self__, "cel", cel) + + @property + @pulumi.getter + def cel(self) -> Optional[pulumi.Input['CELDeviceSelectorArgs']]: + """ + CEL contains a CEL expression for selecting a device. + """ + return pulumi.get(self, "cel") + + @cel.setter + def cel(self, value: Optional[pulumi.Input['CELDeviceSelectorArgs']]): + pulumi.set(self, "cel", value) + + +if not MYPY: + class DeviceArgsDict(TypedDict): + """ + Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + """ + name: pulumi.Input[str] + """ + Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + """ + basic: NotRequired[pulumi.Input['BasicDeviceArgsDict']] + """ + Basic defines one device instance. + """ +elif False: + DeviceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeviceArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + basic: Optional[pulumi.Input['BasicDeviceArgs']] = None): + """ + Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + :param pulumi.Input[str] name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + :param pulumi.Input['BasicDeviceArgs'] basic: Basic defines one device instance. + """ + pulumi.set(__self__, "name", name) + if basic is not None: + pulumi.set(__self__, "basic", basic) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def basic(self) -> Optional[pulumi.Input['BasicDeviceArgs']]: + """ + Basic defines one device instance. + """ + return pulumi.get(self, "basic") + + @basic.setter + def basic(self, value: Optional[pulumi.Input['BasicDeviceArgs']]): + pulumi.set(self, "basic", value) + + +if not MYPY: + class NetworkDeviceDataArgsDict(TypedDict): + """ + 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. + """ + hardware_address: NotRequired[pulumi.Input[str]] + """ + HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + """ + interface_name: NotRequired[pulumi.Input[str]] + """ + 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. + + Must not be longer than 256 characters. + """ + ips: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + """ +elif False: + NetworkDeviceDataArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class NetworkDeviceDataArgs: + def __init__(__self__, *, + hardware_address: Optional[pulumi.Input[str]] = None, + interface_name: Optional[pulumi.Input[str]] = None, + ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + 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. + :param pulumi.Input[str] hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + :param pulumi.Input[str] interface_name: InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod. + + Must not be longer than 256 characters. + :param pulumi.Input[Sequence[pulumi.Input[str]]] ips: IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6. + """ + if hardware_address is not None: + pulumi.set(__self__, "hardware_address", hardware_address) + if interface_name is not None: + pulumi.set(__self__, "interface_name", interface_name) + if ips is not None: + pulumi.set(__self__, "ips", ips) + + @property + @pulumi.getter(name="hardwareAddress") + def hardware_address(self) -> Optional[pulumi.Input[str]]: + """ + HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + """ + return pulumi.get(self, "hardware_address") + + @hardware_address.setter + def hardware_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hardware_address", value) + + @property + @pulumi.getter(name="interfaceName") + def interface_name(self) -> Optional[pulumi.Input[str]]: + """ + 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. + + Must not be longer than 256 characters. + """ + return pulumi.get(self, "interface_name") + + @interface_name.setter + def interface_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "interface_name", value) + + @property + @pulumi.getter + def ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "ips") + + @ips.setter + def ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "ips", value) + + +if not MYPY: + class OpaqueDeviceConfigurationPatchArgsDict(TypedDict): + """ + OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + """ + driver: NotRequired[pulumi.Input[str]] + """ + Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + parameters: NotRequired[Any] + """ + Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ +elif False: + OpaqueDeviceConfigurationPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class OpaqueDeviceConfigurationPatchArgs: + def __init__(__self__, *, + driver: Optional[pulumi.Input[str]] = None, + parameters: Optional[Any] = None): + """ + OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + :param pulumi.Input[str] driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + if driver is not None: + pulumi.set(__self__, "driver", driver) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def driver(self) -> Optional[pulumi.Input[str]]: + """ + Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @driver.setter + def driver(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "driver", value) + + @property + @pulumi.getter + def parameters(self) -> Optional[Any]: + """ + Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Optional[Any]): + pulumi.set(self, "parameters", value) + + +if not MYPY: + class OpaqueDeviceConfigurationArgsDict(TypedDict): + """ + OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + """ + driver: pulumi.Input[str] + """ + Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + parameters: Any + """ + Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ +elif False: + OpaqueDeviceConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class OpaqueDeviceConfigurationArgs: + def __init__(__self__, *, + driver: pulumi.Input[str], + parameters: Any): + """ + OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + :param pulumi.Input[str] driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def driver(self) -> pulumi.Input[str]: + """ + Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @driver.setter + def driver(self, value: pulumi.Input[str]): + pulumi.set(self, "driver", value) + + @property + @pulumi.getter + def parameters(self) -> Any: + """ + Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Any): + pulumi.set(self, "parameters", value) + + +if not MYPY: + class ResourceClaimConsumerReferenceArgsDict(TypedDict): + """ + 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. + """ + name: pulumi.Input[str] + """ + Name is the name of resource being referenced. + """ + resource: pulumi.Input[str] + """ + Resource is the type of resource being referenced, for example "pods". + """ + uid: pulumi.Input[str] + """ + UID identifies exactly one incarnation of the resource. + """ + api_group: NotRequired[pulumi.Input[str]] + """ + 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. + """ +elif False: + ResourceClaimConsumerReferenceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceClaimConsumerReferenceArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + resource: pulumi.Input[str], + uid: pulumi.Input[str], + api_group: Optional[pulumi.Input[str]] = None): + """ + 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. + :param pulumi.Input[str] name: Name is the name of resource being referenced. + :param pulumi.Input[str] resource: Resource is the type of resource being referenced, for example "pods". + :param pulumi.Input[str] uid: UID identifies exactly one incarnation of the resource. + :param pulumi.Input[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. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "resource", resource) + pulumi.set(__self__, "uid", uid) + if api_group is not None: + pulumi.set(__self__, "api_group", api_group) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name is the name of resource being referenced. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def resource(self) -> pulumi.Input[str]: + """ + Resource is the type of resource being referenced, for example "pods". + """ + return pulumi.get(self, "resource") + + @resource.setter + def resource(self, value: pulumi.Input[str]): + pulumi.set(self, "resource", value) + + @property + @pulumi.getter + def uid(self) -> pulumi.Input[str]: + """ + UID identifies exactly one incarnation of the resource. + """ + return pulumi.get(self, "uid") + + @uid.setter + def uid(self, value: pulumi.Input[str]): + pulumi.set(self, "uid", value) + + @property + @pulumi.getter(name="apiGroup") + def api_group(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "api_group") + + @api_group.setter + def api_group(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_group", value) + + +if not MYPY: + class ResourceClaimSpecPatchArgsDict(TypedDict): + """ + ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + """ + devices: NotRequired[pulumi.Input['DeviceClaimPatchArgsDict']] + """ + Devices defines how to request devices. + """ +elif False: + ResourceClaimSpecPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceClaimSpecPatchArgs: + def __init__(__self__, *, + devices: Optional[pulumi.Input['DeviceClaimPatchArgs']] = None): + """ + ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + :param pulumi.Input['DeviceClaimPatchArgs'] devices: Devices defines how to request devices. + """ + if devices is not None: + pulumi.set(__self__, "devices", devices) + + @property + @pulumi.getter + def devices(self) -> Optional[pulumi.Input['DeviceClaimPatchArgs']]: + """ + Devices defines how to request devices. + """ + return pulumi.get(self, "devices") + + @devices.setter + def devices(self, value: Optional[pulumi.Input['DeviceClaimPatchArgs']]): + pulumi.set(self, "devices", value) + + +if not MYPY: + class ResourceClaimSpecArgsDict(TypedDict): + """ + ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + """ + devices: NotRequired[pulumi.Input['DeviceClaimArgsDict']] + """ + Devices defines how to request devices. + """ +elif False: + ResourceClaimSpecArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceClaimSpecArgs: + def __init__(__self__, *, + devices: Optional[pulumi.Input['DeviceClaimArgs']] = None): + """ + ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + :param pulumi.Input['DeviceClaimArgs'] devices: Devices defines how to request devices. + """ + if devices is not None: + pulumi.set(__self__, "devices", devices) + + @property + @pulumi.getter + def devices(self) -> Optional[pulumi.Input['DeviceClaimArgs']]: + """ + Devices defines how to request devices. + """ + return pulumi.get(self, "devices") + + @devices.setter + def devices(self, value: Optional[pulumi.Input['DeviceClaimArgs']]): + pulumi.set(self, "devices", value) + + +if not MYPY: + class ResourceClaimStatusArgsDict(TypedDict): + """ + ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + """ + allocation: NotRequired[pulumi.Input['AllocationResultArgsDict']] + """ + Allocation is set once the claim has been allocated successfully. + """ + devices: NotRequired[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgsDict']]]] + """ + Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + """ + reserved_for: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgsDict']]]] + """ + ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + + In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + + 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. + + There can be at most 32 such reservations. This may get increased in the future, but not reduced. + """ +elif False: + ResourceClaimStatusArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceClaimStatusArgs: + def __init__(__self__, *, + allocation: Optional[pulumi.Input['AllocationResultArgs']] = None, + devices: Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]] = None, + reserved_for: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]]] = None): + """ + ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + :param pulumi.Input['AllocationResultArgs'] allocation: Allocation is set once the claim has been allocated successfully. + :param pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + :param pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + + In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + + 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. + + There can be at most 32 such reservations. This may get increased in the future, but not reduced. + """ + if allocation is not None: + pulumi.set(__self__, "allocation", allocation) + if devices is not None: + pulumi.set(__self__, "devices", devices) + if reserved_for is not None: + pulumi.set(__self__, "reserved_for", reserved_for) + + @property + @pulumi.getter + def allocation(self) -> Optional[pulumi.Input['AllocationResultArgs']]: + """ + Allocation is set once the claim has been allocated successfully. + """ + return pulumi.get(self, "allocation") + + @allocation.setter + def allocation(self, value: Optional[pulumi.Input['AllocationResultArgs']]): + pulumi.set(self, "allocation", value) + + @property + @pulumi.getter + def devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]]: + """ + Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + """ + return pulumi.get(self, "devices") + + @devices.setter + def devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AllocatedDeviceStatusArgs']]]]): + pulumi.set(self, "devices", value) + + @property + @pulumi.getter(name="reservedFor") + def reserved_for(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]]]: + """ + ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + + In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + + 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. + + There can be at most 32 such reservations. This may get increased in the future, but not reduced. + """ + return pulumi.get(self, "reserved_for") + + @reserved_for.setter + def reserved_for(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceClaimConsumerReferenceArgs']]]]): + pulumi.set(self, "reserved_for", value) + + +if not MYPY: + class ResourceClaimTemplateSpecPatchArgsDict(TypedDict): + """ + ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaPatchArgsDict']] + """ + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + """ + spec: NotRequired[pulumi.Input['ResourceClaimSpecPatchArgsDict']] + """ + Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + """ +elif False: + ResourceClaimTemplateSpecPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceClaimTemplateSpecPatchArgs: + def __init__(__self__, *, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']] = None, + spec: Optional[pulumi.Input['ResourceClaimSpecPatchArgs']] = None): + """ + ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + :param pulumi.Input['_meta.v1.ObjectMetaPatchArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + :param pulumi.Input['ResourceClaimSpecPatchArgs'] spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + """ + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]: + """ + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaPatchArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def spec(self) -> Optional[pulumi.Input['ResourceClaimSpecPatchArgs']]: + """ + Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: Optional[pulumi.Input['ResourceClaimSpecPatchArgs']]): + pulumi.set(self, "spec", value) + + +if not MYPY: + class ResourceClaimTemplateSpecArgsDict(TypedDict): + """ + ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + """ + spec: pulumi.Input['ResourceClaimSpecArgsDict'] + """ + Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + """ +elif False: + ResourceClaimTemplateSpecArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceClaimTemplateSpecArgs: + def __init__(__self__, *, + spec: pulumi.Input['ResourceClaimSpecArgs'], + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + :param pulumi.Input['ResourceClaimSpecArgs'] spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + """ + pulumi.set(__self__, "spec", spec) + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['ResourceClaimSpecArgs']: + """ + Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['ResourceClaimSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + +if not MYPY: + class ResourceClaimTemplateArgsDict(TypedDict): + """ + ResourceClaimTemplate is used to produce ResourceClaim objects. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + spec: pulumi.Input['ResourceClaimTemplateSpecArgsDict'] + """ + Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + api_version: NotRequired[pulumi.Input[str]] + """ + 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 + """ + kind: NotRequired[pulumi.Input[str]] + """ + 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 + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + Standard object metadata + """ +elif False: + ResourceClaimTemplateArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceClaimTemplateArgs: + def __init__(__self__, *, + spec: pulumi.Input['ResourceClaimTemplateSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + ResourceClaimTemplate is used to produce ResourceClaim objects. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param pulumi.Input['ResourceClaimTemplateSpecArgs'] spec: Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaimTemplate') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['ResourceClaimTemplateSpecArgs']: + """ + Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['ResourceClaimTemplateSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + +if not MYPY: + class ResourceClaimArgsDict(TypedDict): + """ + ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + spec: pulumi.Input['ResourceClaimSpecArgsDict'] + """ + Spec describes what is being requested and how to configure it. The spec is immutable. + """ + api_version: NotRequired[pulumi.Input[str]] + """ + 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 + """ + kind: NotRequired[pulumi.Input[str]] + """ + 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 + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + Standard object metadata + """ + status: NotRequired[pulumi.Input['ResourceClaimStatusArgsDict']] + """ + Status describes whether the claim is ready to use and what has been allocated. + """ +elif False: + ResourceClaimArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceClaimArgs: + def __init__(__self__, *, + spec: pulumi.Input['ResourceClaimSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None, + status: Optional[pulumi.Input['ResourceClaimStatusArgs']] = None): + """ + ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param pulumi.Input['ResourceClaimSpecArgs'] spec: Spec describes what is being requested and how to configure it. The spec is immutable. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + :param pulumi.Input['ResourceClaimStatusArgs'] status: Status describes whether the claim is ready to use and what has been allocated. + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaim') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['ResourceClaimSpecArgs']: + """ + Spec describes what is being requested and how to configure it. The spec is immutable. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['ResourceClaimSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input['ResourceClaimStatusArgs']]: + """ + Status describes whether the claim is ready to use and what has been allocated. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input['ResourceClaimStatusArgs']]): + pulumi.set(self, "status", value) + + +if not MYPY: + class ResourcePoolPatchArgsDict(TypedDict): + """ + ResourcePool describes the pool that ResourceSlices belong to. + """ + generation: NotRequired[pulumi.Input[int]] + """ + 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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + """ + name: NotRequired[pulumi.Input[str]] + """ + Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + + 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. + """ + resource_slice_count: NotRequired[pulumi.Input[int]] + """ + ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ +elif False: + ResourcePoolPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePoolPatchArgs: + def __init__(__self__, *, + generation: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_slice_count: Optional[pulumi.Input[int]] = None): + """ + ResourcePool describes the pool that ResourceSlices belong to. + :param pulumi.Input[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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + :param pulumi.Input[str] name: Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + + 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. + :param pulumi.Input[int] resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ + if generation is not None: + pulumi.set(__self__, "generation", generation) + if name is not None: + pulumi.set(__self__, "name", name) + if resource_slice_count is not None: + pulumi.set(__self__, "resource_slice_count", resource_slice_count) + + @property + @pulumi.getter + def generation(self) -> Optional[pulumi.Input[int]]: + """ + 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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + """ + return pulumi.get(self, "generation") + + @generation.setter + def generation(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "generation", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + + 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. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="resourceSliceCount") + def resource_slice_count(self) -> Optional[pulumi.Input[int]]: + """ + ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ + return pulumi.get(self, "resource_slice_count") + + @resource_slice_count.setter + def resource_slice_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "resource_slice_count", value) + + +if not MYPY: + class ResourcePoolArgsDict(TypedDict): + """ + ResourcePool describes the pool that ResourceSlices belong to. + """ + generation: pulumi.Input[int] + """ + 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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + """ + name: pulumi.Input[str] + """ + Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + + 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. + """ + resource_slice_count: pulumi.Input[int] + """ + ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ +elif False: + ResourcePoolArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePoolArgs: + def __init__(__self__, *, + generation: pulumi.Input[int], + name: pulumi.Input[str], + resource_slice_count: pulumi.Input[int]): + """ + ResourcePool describes the pool that ResourceSlices belong to. + :param pulumi.Input[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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + :param pulumi.Input[str] name: Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + + 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. + :param pulumi.Input[int] resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ + pulumi.set(__self__, "generation", generation) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "resource_slice_count", resource_slice_count) + + @property + @pulumi.getter + def generation(self) -> pulumi.Input[int]: + """ + 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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + """ + return pulumi.get(self, "generation") + + @generation.setter + def generation(self, value: pulumi.Input[int]): + pulumi.set(self, "generation", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + + 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. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="resourceSliceCount") + def resource_slice_count(self) -> pulumi.Input[int]: + """ + ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ + return pulumi.get(self, "resource_slice_count") + + @resource_slice_count.setter + def resource_slice_count(self, value: pulumi.Input[int]): + pulumi.set(self, "resource_slice_count", value) + + +if not MYPY: + class ResourceSliceSpecPatchArgsDict(TypedDict): + """ + ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + """ + all_nodes: NotRequired[pulumi.Input[bool]] + """ + AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + devices: NotRequired[pulumi.Input[Sequence[pulumi.Input['DevicePatchArgsDict']]]] + """ + Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + """ + driver: NotRequired[pulumi.Input[str]] + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + """ + node_name: NotRequired[pulumi.Input[str]] + """ + 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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + """ + node_selector: NotRequired[pulumi.Input['_core.v1.NodeSelectorPatchArgsDict']] + """ + NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + pool: NotRequired[pulumi.Input['ResourcePoolPatchArgsDict']] + """ + Pool describes the pool that this ResourceSlice belongs to. + """ +elif False: + ResourceSliceSpecPatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceSliceSpecPatchArgs: + def __init__(__self__, *, + all_nodes: Optional[pulumi.Input[bool]] = None, + devices: Optional[pulumi.Input[Sequence[pulumi.Input['DevicePatchArgs']]]] = None, + driver: Optional[pulumi.Input[str]] = None, + node_name: Optional[pulumi.Input[str]] = None, + node_selector: Optional[pulumi.Input['_core.v1.NodeSelectorPatchArgs']] = None, + pool: Optional[pulumi.Input['ResourcePoolPatchArgs']] = None): + """ + ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + :param pulumi.Input[bool] all_nodes: AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + :param pulumi.Input[Sequence[pulumi.Input['DevicePatchArgs']]] devices: Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + :param pulumi.Input[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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + :param pulumi.Input[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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + :param pulumi.Input['_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. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + :param pulumi.Input['ResourcePoolPatchArgs'] pool: Pool describes the pool that this ResourceSlice belongs to. + """ + if all_nodes is not None: + pulumi.set(__self__, "all_nodes", all_nodes) + if devices is not None: + pulumi.set(__self__, "devices", devices) + if driver is not None: + pulumi.set(__self__, "driver", driver) + if node_name is not None: + pulumi.set(__self__, "node_name", node_name) + if node_selector is not None: + pulumi.set(__self__, "node_selector", node_selector) + if pool is not None: + pulumi.set(__self__, "pool", pool) + + @property + @pulumi.getter(name="allNodes") + def all_nodes(self) -> Optional[pulumi.Input[bool]]: + """ + AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + return pulumi.get(self, "all_nodes") + + @all_nodes.setter + def all_nodes(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "all_nodes", value) + + @property + @pulumi.getter + def devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DevicePatchArgs']]]]: + """ + Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + """ + return pulumi.get(self, "devices") + + @devices.setter + def devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DevicePatchArgs']]]]): + pulumi.set(self, "devices", value) + + @property + @pulumi.getter + def driver(self) -> Optional[pulumi.Input[str]]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + """ + return pulumi.get(self, "driver") + + @driver.setter + def driver(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "driver", value) + + @property + @pulumi.getter(name="nodeName") + def node_name(self) -> Optional[pulumi.Input[str]]: + """ + 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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + """ + return pulumi.get(self, "node_name") + + @node_name.setter + def node_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_name", value) + + @property + @pulumi.getter(name="nodeSelector") + def node_selector(self) -> Optional[pulumi.Input['_core.v1.NodeSelectorPatchArgs']]: + """ + NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + return pulumi.get(self, "node_selector") + + @node_selector.setter + def node_selector(self, value: Optional[pulumi.Input['_core.v1.NodeSelectorPatchArgs']]): + pulumi.set(self, "node_selector", value) + + @property + @pulumi.getter + def pool(self) -> Optional[pulumi.Input['ResourcePoolPatchArgs']]: + """ + Pool describes the pool that this ResourceSlice belongs to. + """ + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: Optional[pulumi.Input['ResourcePoolPatchArgs']]): + pulumi.set(self, "pool", value) + + +if not MYPY: + class ResourceSliceSpecArgsDict(TypedDict): + """ + ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + """ + driver: pulumi.Input[str] + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + """ + pool: pulumi.Input['ResourcePoolArgsDict'] + """ + Pool describes the pool that this ResourceSlice belongs to. + """ + all_nodes: NotRequired[pulumi.Input[bool]] + """ + AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + devices: NotRequired[pulumi.Input[Sequence[pulumi.Input['DeviceArgsDict']]]] + """ + Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + """ + node_name: NotRequired[pulumi.Input[str]] + """ + 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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + """ + node_selector: NotRequired[pulumi.Input['_core.v1.NodeSelectorArgsDict']] + """ + NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ +elif False: + ResourceSliceSpecArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceSliceSpecArgs: + def __init__(__self__, *, + driver: pulumi.Input[str], + pool: pulumi.Input['ResourcePoolArgs'], + all_nodes: Optional[pulumi.Input[bool]] = None, + devices: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceArgs']]]] = None, + node_name: Optional[pulumi.Input[str]] = None, + node_selector: Optional[pulumi.Input['_core.v1.NodeSelectorArgs']] = None): + """ + ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + :param pulumi.Input[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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + :param pulumi.Input['ResourcePoolArgs'] pool: Pool describes the pool that this ResourceSlice belongs to. + :param pulumi.Input[bool] all_nodes: AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + :param pulumi.Input[Sequence[pulumi.Input['DeviceArgs']]] devices: Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + :param pulumi.Input[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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + :param pulumi.Input['_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. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "pool", pool) + if all_nodes is not None: + pulumi.set(__self__, "all_nodes", all_nodes) + if devices is not None: + pulumi.set(__self__, "devices", devices) + if node_name is not None: + pulumi.set(__self__, "node_name", node_name) + if node_selector is not None: + pulumi.set(__self__, "node_selector", node_selector) + + @property + @pulumi.getter + def driver(self) -> pulumi.Input[str]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + """ + return pulumi.get(self, "driver") + + @driver.setter + def driver(self, value: pulumi.Input[str]): + pulumi.set(self, "driver", value) + + @property + @pulumi.getter + def pool(self) -> pulumi.Input['ResourcePoolArgs']: + """ + Pool describes the pool that this ResourceSlice belongs to. + """ + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: pulumi.Input['ResourcePoolArgs']): + pulumi.set(self, "pool", value) + + @property + @pulumi.getter(name="allNodes") + def all_nodes(self) -> Optional[pulumi.Input[bool]]: + """ + AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + return pulumi.get(self, "all_nodes") + + @all_nodes.setter + def all_nodes(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "all_nodes", value) + + @property + @pulumi.getter + def devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeviceArgs']]]]: + """ + Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + """ + return pulumi.get(self, "devices") + + @devices.setter + def devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeviceArgs']]]]): + pulumi.set(self, "devices", value) + + @property + @pulumi.getter(name="nodeName") + def node_name(self) -> Optional[pulumi.Input[str]]: + """ + 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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + """ + return pulumi.get(self, "node_name") + + @node_name.setter + def node_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_name", value) + + @property + @pulumi.getter(name="nodeSelector") + def node_selector(self) -> Optional[pulumi.Input['_core.v1.NodeSelectorArgs']]: + """ + NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + return pulumi.get(self, "node_selector") + + @node_selector.setter + def node_selector(self, value: Optional[pulumi.Input['_core.v1.NodeSelectorArgs']]): + pulumi.set(self, "node_selector", value) + + +if not MYPY: + class ResourceSliceArgsDict(TypedDict): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + spec: pulumi.Input['ResourceSliceSpecArgsDict'] + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + api_version: NotRequired[pulumi.Input[str]] + """ + 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 + """ + kind: NotRequired[pulumi.Input[str]] + """ + 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 + """ + metadata: NotRequired[pulumi.Input['_meta.v1.ObjectMetaArgsDict']] + """ + Standard object metadata + """ +elif False: + ResourceSliceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourceSliceArgs: + def __init__(__self__, *, + spec: pulumi.Input['ResourceSliceSpecArgs'], + api_version: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param pulumi.Input['ResourceSliceSpecArgs'] spec: Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + :param pulumi.Input[str] api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + :param pulumi.Input[str] kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceSlice') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> pulumi.Input['ResourceSliceSpecArgs']: + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @spec.setter + def spec(self, value: pulumi.Input['ResourceSliceSpecArgs']): + pulumi.set(self, "spec", value) + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @api_version.setter + def api_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "api_version", value) + + @property + @pulumi.getter + def kind(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @kind.setter + def kind(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kind", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]): + pulumi.set(self, "metadata", value) + + diff --git a/sdk/python/pulumi_kubernetes/resource/v1beta1/outputs.py b/sdk/python/pulumi_kubernetes/resource/v1beta1/outputs.py new file mode 100644 index 0000000000..c2df155f6d --- /dev/null +++ b/sdk/python/pulumi_kubernetes/resource/v1beta1/outputs.py @@ -0,0 +1,3334 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumigen. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from ... import _utilities +from . import outputs +from ... import core as _core +from ... import meta as _meta + +__all__ = [ + 'AllocatedDeviceStatus', + 'AllocatedDeviceStatusPatch', + 'AllocationResult', + 'AllocationResultPatch', + 'BasicDevice', + 'BasicDevicePatch', + 'CELDeviceSelector', + 'CELDeviceSelectorPatch', + 'Device', + 'DeviceAllocationConfiguration', + 'DeviceAllocationConfigurationPatch', + 'DeviceAllocationResult', + 'DeviceAllocationResultPatch', + 'DeviceAttribute', + 'DeviceCapacity', + 'DeviceClaim', + 'DeviceClaimConfiguration', + 'DeviceClaimConfigurationPatch', + 'DeviceClaimPatch', + 'DeviceClass', + 'DeviceClassConfiguration', + 'DeviceClassConfigurationPatch', + 'DeviceClassSpec', + 'DeviceClassSpecPatch', + 'DeviceConstraint', + 'DeviceConstraintPatch', + 'DevicePatch', + 'DeviceRequest', + 'DeviceRequestAllocationResult', + 'DeviceRequestAllocationResultPatch', + 'DeviceRequestPatch', + 'DeviceSelector', + 'DeviceSelectorPatch', + 'NetworkDeviceData', + 'NetworkDeviceDataPatch', + 'OpaqueDeviceConfiguration', + 'OpaqueDeviceConfigurationPatch', + 'ResourceClaim', + 'ResourceClaimConsumerReference', + 'ResourceClaimConsumerReferencePatch', + 'ResourceClaimSpec', + 'ResourceClaimSpecPatch', + 'ResourceClaimStatus', + 'ResourceClaimStatusPatch', + 'ResourceClaimTemplate', + 'ResourceClaimTemplateSpec', + 'ResourceClaimTemplateSpecPatch', + 'ResourcePool', + 'ResourcePoolPatch', + 'ResourceSlice', + 'ResourceSliceSpec', + 'ResourceSliceSpecPatch', +] + +@pulumi.output_type +class AllocatedDeviceStatus(dict): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "networkData": + suggest = "network_data" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AllocatedDeviceStatus. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AllocatedDeviceStatus.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AllocatedDeviceStatus.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + device: str, + driver: str, + pool: str, + conditions: Optional[Sequence['_meta.v1.outputs.Condition']] = None, + data: Optional[Any] = None, + network_data: Optional['outputs.NetworkDeviceData'] = None): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param str pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + :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. + :param Any data: Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + :param 'NetworkDeviceDataArgs' network_data: NetworkData contains network-related information specific to the device. + """ + pulumi.set(__self__, "device", device) + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "pool", pool) + if conditions is not None: + pulumi.set(__self__, "conditions", conditions) + if data is not None: + pulumi.set(__self__, "data", data) + if network_data is not None: + pulumi.set(__self__, "network_data", network_data) + + @property + @pulumi.getter + def device(self) -> str: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @property + @pulumi.getter + def driver(self) -> str: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter + def pool(self) -> str: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + @property + @pulumi.getter + def conditions(self) -> Optional[Sequence['_meta.v1.outputs.Condition']]: + """ + 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. + """ + return pulumi.get(self, "conditions") + + @property + @pulumi.getter + def data(self) -> Optional[Any]: + """ + Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "data") + + @property + @pulumi.getter(name="networkData") + def network_data(self) -> Optional['outputs.NetworkDeviceData']: + """ + NetworkData contains network-related information specific to the device. + """ + return pulumi.get(self, "network_data") + + +@pulumi.output_type +class AllocatedDeviceStatusPatch(dict): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "networkData": + suggest = "network_data" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AllocatedDeviceStatusPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AllocatedDeviceStatusPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AllocatedDeviceStatusPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + conditions: Optional[Sequence['_meta.v1.outputs.ConditionPatch']] = None, + data: Optional[Any] = None, + device: Optional[str] = None, + driver: Optional[str] = None, + network_data: Optional['outputs.NetworkDeviceDataPatch'] = None, + pool: Optional[str] = None): + """ + AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. + :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. + :param Any data: Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param 'NetworkDeviceDataPatchArgs' network_data: NetworkData contains network-related information specific to the device. + :param str pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + if conditions is not None: + pulumi.set(__self__, "conditions", conditions) + if data is not None: + pulumi.set(__self__, "data", data) + if device is not None: + pulumi.set(__self__, "device", device) + if driver is not None: + pulumi.set(__self__, "driver", driver) + if network_data is not None: + pulumi.set(__self__, "network_data", network_data) + if pool is not None: + pulumi.set(__self__, "pool", pool) + + @property + @pulumi.getter + def conditions(self) -> Optional[Sequence['_meta.v1.outputs.ConditionPatch']]: + """ + 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. + """ + return pulumi.get(self, "conditions") + + @property + @pulumi.getter + def data(self) -> Optional[Any]: + """ + Data contains arbitrary driver-specific data. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "data") + + @property + @pulumi.getter + def device(self) -> Optional[str]: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @property + @pulumi.getter + def driver(self) -> Optional[str]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter(name="networkData") + def network_data(self) -> Optional['outputs.NetworkDeviceDataPatch']: + """ + NetworkData contains network-related information specific to the device. + """ + return pulumi.get(self, "network_data") + + @property + @pulumi.getter + def pool(self) -> Optional[str]: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + +@pulumi.output_type +class AllocationResult(dict): + """ + AllocationResult contains attributes of an allocated resource. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "nodeSelector": + suggest = "node_selector" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AllocationResult. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AllocationResult.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AllocationResult.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + devices: Optional['outputs.DeviceAllocationResult'] = None, + node_selector: Optional['_core.v1.outputs.NodeSelector'] = None): + """ + AllocationResult contains attributes of an allocated resource. + :param 'DeviceAllocationResultArgs' devices: Devices is the result of allocating devices. + :param '_core.v1.NodeSelectorArgs' node_selector: NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + """ + if devices is not None: + pulumi.set(__self__, "devices", devices) + if node_selector is not None: + pulumi.set(__self__, "node_selector", node_selector) + + @property + @pulumi.getter + def devices(self) -> Optional['outputs.DeviceAllocationResult']: + """ + Devices is the result of allocating devices. + """ + return pulumi.get(self, "devices") + + @property + @pulumi.getter(name="nodeSelector") + def node_selector(self) -> Optional['_core.v1.outputs.NodeSelector']: + """ + NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + """ + return pulumi.get(self, "node_selector") + + +@pulumi.output_type +class AllocationResultPatch(dict): + """ + AllocationResult contains attributes of an allocated resource. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "nodeSelector": + suggest = "node_selector" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AllocationResultPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AllocationResultPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AllocationResultPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + devices: Optional['outputs.DeviceAllocationResultPatch'] = None, + node_selector: Optional['_core.v1.outputs.NodeSelectorPatch'] = None): + """ + AllocationResult contains attributes of an allocated resource. + :param 'DeviceAllocationResultPatchArgs' devices: Devices is the result of allocating devices. + :param '_core.v1.NodeSelectorPatchArgs' node_selector: NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + """ + if devices is not None: + pulumi.set(__self__, "devices", devices) + if node_selector is not None: + pulumi.set(__self__, "node_selector", node_selector) + + @property + @pulumi.getter + def devices(self) -> Optional['outputs.DeviceAllocationResultPatch']: + """ + Devices is the result of allocating devices. + """ + return pulumi.get(self, "devices") + + @property + @pulumi.getter(name="nodeSelector") + def node_selector(self) -> Optional['_core.v1.outputs.NodeSelectorPatch']: + """ + NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + """ + return pulumi.get(self, "node_selector") + + +@pulumi.output_type +class BasicDevice(dict): + """ + BasicDevice defines one device instance. + """ + def __init__(__self__, *, + attributes: Optional[Mapping[str, 'outputs.DeviceAttribute']] = None, + capacity: Optional[Mapping[str, 'outputs.DeviceCapacity']] = None): + """ + BasicDevice defines one device instance. + :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. + + The maximum number of attributes and capacities combined is 32. + :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. + + The maximum number of attributes and capacities combined is 32. + """ + if attributes is not None: + pulumi.set(__self__, "attributes", attributes) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + + @property + @pulumi.getter + def attributes(self) -> Optional[Mapping[str, 'outputs.DeviceAttribute']]: + """ + Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + return pulumi.get(self, "attributes") + + @property + @pulumi.getter + def capacity(self) -> Optional[Mapping[str, 'outputs.DeviceCapacity']]: + """ + Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + return pulumi.get(self, "capacity") + + +@pulumi.output_type +class BasicDevicePatch(dict): + """ + BasicDevice defines one device instance. + """ + def __init__(__self__, *, + attributes: Optional[Mapping[str, 'outputs.DeviceAttribute']] = None, + capacity: Optional[Mapping[str, 'outputs.DeviceCapacity']] = None): + """ + BasicDevice defines one device instance. + :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. + + The maximum number of attributes and capacities combined is 32. + :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. + + The maximum number of attributes and capacities combined is 32. + """ + if attributes is not None: + pulumi.set(__self__, "attributes", attributes) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + + @property + @pulumi.getter + def attributes(self) -> Optional[Mapping[str, 'outputs.DeviceAttribute']]: + """ + Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + return pulumi.get(self, "attributes") + + @property + @pulumi.getter + def capacity(self) -> Optional[Mapping[str, 'outputs.DeviceCapacity']]: + """ + Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + + The maximum number of attributes and capacities combined is 32. + """ + return pulumi.get(self, "capacity") + + +@pulumi.output_type +class CELDeviceSelector(dict): + """ + CELDeviceSelector contains a CEL expression for selecting a device. + """ + def __init__(__self__, *, + expression: str): + """ + CELDeviceSelector contains a CEL expression for selecting a device. + :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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> str: + """ + 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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ + return pulumi.get(self, "expression") + + +@pulumi.output_type +class CELDeviceSelectorPatch(dict): + """ + CELDeviceSelector contains a CEL expression for selecting a device. + """ + def __init__(__self__, *, + expression: Optional[str] = None): + """ + CELDeviceSelector contains a CEL expression for selecting a device. + :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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> Optional[str]: + """ + 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. + + The expression's input is an object named "device", which carries the following properties: + - driver (string): the name of the driver which defines this device. + - attributes (map[string]object): the device's attributes, grouped by prefix + (e.g. device.attributes["dra.example.com"] evaluates to an object with all + of the attributes which were prefixed by "dra.example.com". + - capacity (map[string]object): the device's capacities, grouped by prefix. + + Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + + device.driver + device.attributes["dra.example.com"].model + device.attributes["ext.example.com"].family + device.capacity["dra.example.com"].modules + + The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + + The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + + If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + + A robust expression should check for the existence of attributes before referencing them. + + For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + + cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + + The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + """ + return pulumi.get(self, "expression") + + +@pulumi.output_type +class Device(dict): + """ + Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + """ + def __init__(__self__, *, + name: str, + basic: Optional['outputs.BasicDevice'] = None): + """ + Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + :param str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + :param 'BasicDeviceArgs' basic: Basic defines one device instance. + """ + pulumi.set(__self__, "name", name) + if basic is not None: + pulumi.set(__self__, "basic", basic) + + @property + @pulumi.getter + def name(self) -> str: + """ + Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def basic(self) -> Optional['outputs.BasicDevice']: + """ + Basic defines one device instance. + """ + return pulumi.get(self, "basic") + + +@pulumi.output_type +class DeviceAllocationConfiguration(dict): + """ + DeviceAllocationConfiguration gets embedded in an AllocationResult. + """ + def __init__(__self__, *, + source: str, + opaque: Optional['outputs.OpaqueDeviceConfiguration'] = None, + requests: Optional[Sequence[str]] = None): + """ + DeviceAllocationConfiguration gets embedded in an AllocationResult. + :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. + :param 'OpaqueDeviceConfigurationArgs' opaque: Opaque provides driver-specific configuration parameters. + :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + """ + pulumi.set(__self__, "source", source) + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def source(self) -> str: + """ + 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. + """ + return pulumi.get(self, "source") + + @property + @pulumi.getter + def opaque(self) -> Optional['outputs.OpaqueDeviceConfiguration']: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @property + @pulumi.getter + def requests(self) -> Optional[Sequence[str]]: + """ + Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + """ + return pulumi.get(self, "requests") + + +@pulumi.output_type +class DeviceAllocationConfigurationPatch(dict): + """ + DeviceAllocationConfiguration gets embedded in an AllocationResult. + """ + def __init__(__self__, *, + opaque: Optional['outputs.OpaqueDeviceConfigurationPatch'] = None, + requests: Optional[Sequence[str]] = None, + source: Optional[str] = None): + """ + DeviceAllocationConfiguration gets embedded in an AllocationResult. + :param 'OpaqueDeviceConfigurationPatchArgs' opaque: Opaque provides driver-specific configuration parameters. + :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + :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. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + if requests is not None: + pulumi.set(__self__, "requests", requests) + if source is not None: + pulumi.set(__self__, "source", source) + + @property + @pulumi.getter + def opaque(self) -> Optional['outputs.OpaqueDeviceConfigurationPatch']: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @property + @pulumi.getter + def requests(self) -> Optional[Sequence[str]]: + """ + Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + """ + return pulumi.get(self, "requests") + + @property + @pulumi.getter + def source(self) -> Optional[str]: + """ + 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. + """ + return pulumi.get(self, "source") + + +@pulumi.output_type +class DeviceAllocationResult(dict): + """ + DeviceAllocationResult is the result of allocating devices. + """ + def __init__(__self__, *, + config: Optional[Sequence['outputs.DeviceAllocationConfiguration']] = None, + results: Optional[Sequence['outputs.DeviceRequestAllocationResult']] = None): + """ + DeviceAllocationResult is the result of allocating devices. + :param Sequence['DeviceAllocationConfigurationArgs'] config: This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + + This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + :param Sequence['DeviceRequestAllocationResultArgs'] results: Results lists all allocated devices. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if results is not None: + pulumi.set(__self__, "results", results) + + @property + @pulumi.getter + def config(self) -> Optional[Sequence['outputs.DeviceAllocationConfiguration']]: + """ + This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + + This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + """ + return pulumi.get(self, "config") + + @property + @pulumi.getter + def results(self) -> Optional[Sequence['outputs.DeviceRequestAllocationResult']]: + """ + Results lists all allocated devices. + """ + return pulumi.get(self, "results") + + +@pulumi.output_type +class DeviceAllocationResultPatch(dict): + """ + DeviceAllocationResult is the result of allocating devices. + """ + def __init__(__self__, *, + config: Optional[Sequence['outputs.DeviceAllocationConfigurationPatch']] = None, + results: Optional[Sequence['outputs.DeviceRequestAllocationResultPatch']] = None): + """ + DeviceAllocationResult is the result of allocating devices. + :param Sequence['DeviceAllocationConfigurationPatchArgs'] config: This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + + This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + :param Sequence['DeviceRequestAllocationResultPatchArgs'] results: Results lists all allocated devices. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if results is not None: + pulumi.set(__self__, "results", results) + + @property + @pulumi.getter + def config(self) -> Optional[Sequence['outputs.DeviceAllocationConfigurationPatch']]: + """ + This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + + This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + """ + return pulumi.get(self, "config") + + @property + @pulumi.getter + def results(self) -> Optional[Sequence['outputs.DeviceRequestAllocationResultPatch']]: + """ + Results lists all allocated devices. + """ + return pulumi.get(self, "results") + + +@pulumi.output_type +class DeviceAttribute(dict): + """ + DeviceAttribute must have exactly one field set. + """ + def __init__(__self__, *, + bool: Optional[bool] = None, + int: Optional[int] = None, + string: Optional[str] = None, + version: Optional[str] = None): + """ + DeviceAttribute must have exactly one field set. + :param bool bool: BoolValue is a true/false value. + :param int int: IntValue is a number. + :param str string: StringValue is a string. Must not be longer than 64 characters. + :param str version: VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + """ + if bool is not None: + pulumi.set(__self__, "bool", bool) + if int is not None: + pulumi.set(__self__, "int", int) + if string is not None: + pulumi.set(__self__, "string", string) + if version is not None: + pulumi.set(__self__, "version", version) + + @property + @pulumi.getter + def bool(self) -> Optional[bool]: + """ + BoolValue is a true/false value. + """ + return pulumi.get(self, "bool") + + @property + @pulumi.getter + def int(self) -> Optional[int]: + """ + IntValue is a number. + """ + return pulumi.get(self, "int") + + @property + @pulumi.getter + def string(self) -> Optional[str]: + """ + StringValue is a string. Must not be longer than 64 characters. + """ + return pulumi.get(self, "string") + + @property + @pulumi.getter + def version(self) -> Optional[str]: + """ + VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + """ + return pulumi.get(self, "version") + + +@pulumi.output_type +class DeviceCapacity(dict): + """ + DeviceCapacity describes a quantity associated with a device. + """ + def __init__(__self__, *, + value: str): + """ + DeviceCapacity describes a quantity associated with a device. + :param str value: Value defines how much of a certain device capacity is available. + """ + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def value(self) -> str: + """ + Value defines how much of a certain device capacity is available. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class DeviceClaim(dict): + """ + DeviceClaim defines how to request devices with a ResourceClaim. + """ + def __init__(__self__, *, + config: Optional[Sequence['outputs.DeviceClaimConfiguration']] = None, + constraints: Optional[Sequence['outputs.DeviceConstraint']] = None, + requests: Optional[Sequence['outputs.DeviceRequest']] = None): + """ + DeviceClaim defines how to request devices with a ResourceClaim. + :param Sequence['DeviceClaimConfigurationArgs'] config: This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + :param Sequence['DeviceConstraintArgs'] constraints: These constraints must be satisfied by the set of devices that get allocated for the claim. + :param Sequence['DeviceRequestArgs'] requests: Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if constraints is not None: + pulumi.set(__self__, "constraints", constraints) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def config(self) -> Optional[Sequence['outputs.DeviceClaimConfiguration']]: + """ + This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + """ + return pulumi.get(self, "config") + + @property + @pulumi.getter + def constraints(self) -> Optional[Sequence['outputs.DeviceConstraint']]: + """ + These constraints must be satisfied by the set of devices that get allocated for the claim. + """ + return pulumi.get(self, "constraints") + + @property + @pulumi.getter + def requests(self) -> Optional[Sequence['outputs.DeviceRequest']]: + """ + Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ + return pulumi.get(self, "requests") + + +@pulumi.output_type +class DeviceClaimConfiguration(dict): + """ + DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + """ + def __init__(__self__, *, + opaque: Optional['outputs.OpaqueDeviceConfiguration'] = None, + requests: Optional[Sequence[str]] = None): + """ + DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + :param 'OpaqueDeviceConfigurationArgs' opaque: Opaque provides driver-specific configuration parameters. + :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def opaque(self) -> Optional['outputs.OpaqueDeviceConfiguration']: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @property + @pulumi.getter + def requests(self) -> Optional[Sequence[str]]: + """ + Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ + return pulumi.get(self, "requests") + + +@pulumi.output_type +class DeviceClaimConfigurationPatch(dict): + """ + DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + """ + def __init__(__self__, *, + opaque: Optional['outputs.OpaqueDeviceConfigurationPatch'] = None, + requests: Optional[Sequence[str]] = None): + """ + DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. + :param 'OpaqueDeviceConfigurationPatchArgs' opaque: Opaque provides driver-specific configuration parameters. + :param Sequence[str] requests: Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def opaque(self) -> Optional['outputs.OpaqueDeviceConfigurationPatch']: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + @property + @pulumi.getter + def requests(self) -> Optional[Sequence[str]]: + """ + Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + """ + return pulumi.get(self, "requests") + + +@pulumi.output_type +class DeviceClaimPatch(dict): + """ + DeviceClaim defines how to request devices with a ResourceClaim. + """ + def __init__(__self__, *, + config: Optional[Sequence['outputs.DeviceClaimConfigurationPatch']] = None, + constraints: Optional[Sequence['outputs.DeviceConstraintPatch']] = None, + requests: Optional[Sequence['outputs.DeviceRequestPatch']] = None): + """ + DeviceClaim defines how to request devices with a ResourceClaim. + :param Sequence['DeviceClaimConfigurationPatchArgs'] config: This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + :param Sequence['DeviceConstraintPatchArgs'] constraints: These constraints must be satisfied by the set of devices that get allocated for the claim. + :param Sequence['DeviceRequestPatchArgs'] requests: Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if constraints is not None: + pulumi.set(__self__, "constraints", constraints) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter + def config(self) -> Optional[Sequence['outputs.DeviceClaimConfigurationPatch']]: + """ + This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + """ + return pulumi.get(self, "config") + + @property + @pulumi.getter + def constraints(self) -> Optional[Sequence['outputs.DeviceConstraintPatch']]: + """ + These constraints must be satisfied by the set of devices that get allocated for the claim. + """ + return pulumi.get(self, "constraints") + + @property + @pulumi.getter + def requests(self) -> Optional[Sequence['outputs.DeviceRequestPatch']]: + """ + Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + """ + return pulumi.get(self, "requests") + + +@pulumi.output_type +class DeviceClass(dict): + """ + 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. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiVersion": + suggest = "api_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceClass. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceClass.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceClass.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + spec: 'outputs.DeviceClassSpec', + api_version: Optional[str] = None, + kind: Optional[str] = None, + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None): + """ + 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. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param 'DeviceClassSpecArgs' spec: Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + :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 + :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 + :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'DeviceClass') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> 'outputs.DeviceClassSpec': + """ + Spec defines what can be allocated and how to configure it. + + 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. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + +@pulumi.output_type +class DeviceClassConfiguration(dict): + """ + DeviceClassConfiguration is used in DeviceClass. + """ + def __init__(__self__, *, + opaque: Optional['outputs.OpaqueDeviceConfiguration'] = None): + """ + DeviceClassConfiguration is used in DeviceClass. + :param 'OpaqueDeviceConfigurationArgs' opaque: Opaque provides driver-specific configuration parameters. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + + @property + @pulumi.getter + def opaque(self) -> Optional['outputs.OpaqueDeviceConfiguration']: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + +@pulumi.output_type +class DeviceClassConfigurationPatch(dict): + """ + DeviceClassConfiguration is used in DeviceClass. + """ + def __init__(__self__, *, + opaque: Optional['outputs.OpaqueDeviceConfigurationPatch'] = None): + """ + DeviceClassConfiguration is used in DeviceClass. + :param 'OpaqueDeviceConfigurationPatchArgs' opaque: Opaque provides driver-specific configuration parameters. + """ + if opaque is not None: + pulumi.set(__self__, "opaque", opaque) + + @property + @pulumi.getter + def opaque(self) -> Optional['outputs.OpaqueDeviceConfigurationPatch']: + """ + Opaque provides driver-specific configuration parameters. + """ + return pulumi.get(self, "opaque") + + +@pulumi.output_type +class DeviceClassSpec(dict): + """ + DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + """ + def __init__(__self__, *, + config: Optional[Sequence['outputs.DeviceClassConfiguration']] = None, + selectors: Optional[Sequence['outputs.DeviceSelector']] = None): + """ + DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + :param Sequence['DeviceClassConfigurationArgs'] config: Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + :param Sequence['DeviceSelectorArgs'] selectors: Each selector must be satisfied by a device which is claimed via this class. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if selectors is not None: + pulumi.set(__self__, "selectors", selectors) + + @property + @pulumi.getter + def config(self) -> Optional[Sequence['outputs.DeviceClassConfiguration']]: + """ + Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + """ + return pulumi.get(self, "config") + + @property + @pulumi.getter + def selectors(self) -> Optional[Sequence['outputs.DeviceSelector']]: + """ + Each selector must be satisfied by a device which is claimed via this class. + """ + return pulumi.get(self, "selectors") + + +@pulumi.output_type +class DeviceClassSpecPatch(dict): + """ + DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + """ + def __init__(__self__, *, + config: Optional[Sequence['outputs.DeviceClassConfigurationPatch']] = None, + selectors: Optional[Sequence['outputs.DeviceSelectorPatch']] = None): + """ + DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. + :param Sequence['DeviceClassConfigurationPatchArgs'] config: Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + :param Sequence['DeviceSelectorPatchArgs'] selectors: Each selector must be satisfied by a device which is claimed via this class. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if selectors is not None: + pulumi.set(__self__, "selectors", selectors) + + @property + @pulumi.getter + def config(self) -> Optional[Sequence['outputs.DeviceClassConfigurationPatch']]: + """ + Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + + They are passed to the driver, but are not considered while allocating the claim. + """ + return pulumi.get(self, "config") + + @property + @pulumi.getter + def selectors(self) -> Optional[Sequence['outputs.DeviceSelectorPatch']]: + """ + Each selector must be satisfied by a device which is claimed via this class. + """ + return pulumi.get(self, "selectors") + + +@pulumi.output_type +class DeviceConstraint(dict): + """ + DeviceConstraint must have exactly one field set besides Requests. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "matchAttribute": + suggest = "match_attribute" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceConstraint. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceConstraint.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceConstraint.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + match_attribute: Optional[str] = None, + requests: Optional[Sequence[str]] = None): + """ + DeviceConstraint must have exactly one field set besides Requests. + :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. + + 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. + + Must include the domain qualifier. + :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. + """ + if match_attribute is not None: + pulumi.set(__self__, "match_attribute", match_attribute) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter(name="matchAttribute") + def match_attribute(self) -> Optional[str]: + """ + MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + + 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. + + Must include the domain qualifier. + """ + return pulumi.get(self, "match_attribute") + + @property + @pulumi.getter + def requests(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "requests") + + +@pulumi.output_type +class DeviceConstraintPatch(dict): + """ + DeviceConstraint must have exactly one field set besides Requests. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "matchAttribute": + suggest = "match_attribute" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceConstraintPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceConstraintPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceConstraintPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + match_attribute: Optional[str] = None, + requests: Optional[Sequence[str]] = None): + """ + DeviceConstraint must have exactly one field set besides Requests. + :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. + + 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. + + Must include the domain qualifier. + :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. + """ + if match_attribute is not None: + pulumi.set(__self__, "match_attribute", match_attribute) + if requests is not None: + pulumi.set(__self__, "requests", requests) + + @property + @pulumi.getter(name="matchAttribute") + def match_attribute(self) -> Optional[str]: + """ + MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + + 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. + + Must include the domain qualifier. + """ + return pulumi.get(self, "match_attribute") + + @property + @pulumi.getter + def requests(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "requests") + + +@pulumi.output_type +class DevicePatch(dict): + """ + Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + """ + def __init__(__self__, *, + basic: Optional['outputs.BasicDevicePatch'] = None, + name: Optional[str] = None): + """ + Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. + :param 'BasicDevicePatchArgs' basic: Basic defines one device instance. + :param str name: Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + """ + if basic is not None: + pulumi.set(__self__, "basic", basic) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def basic(self) -> Optional['outputs.BasicDevicePatch']: + """ + Basic defines one device instance. + """ + return pulumi.get(self, "basic") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + """ + return pulumi.get(self, "name") + + +@pulumi.output_type +class DeviceRequest(dict): + """ + 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. + + 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. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "deviceClassName": + suggest = "device_class_name" + elif key == "adminAccess": + suggest = "admin_access" + elif key == "allocationMode": + suggest = "allocation_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceRequest. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceRequest.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceRequest.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + device_class_name: str, + name: str, + admin_access: Optional[bool] = None, + allocation_mode: Optional[str] = None, + count: Optional[int] = None, + selectors: Optional[Sequence['outputs.DeviceSelector']] = None): + """ + 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. + + 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. + :param str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + :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. + + Must be a DNS label. + :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. + + 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. + :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + :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. + :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. + """ + pulumi.set(__self__, "device_class_name", device_class_name) + pulumi.set(__self__, "name", name) + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) + if allocation_mode is not None: + pulumi.set(__self__, "allocation_mode", allocation_mode) + if count is not None: + pulumi.set(__self__, "count", count) + if selectors is not None: + pulumi.set(__self__, "selectors", selectors) + + @property + @pulumi.getter(name="deviceClassName") + def device_class_name(self) -> str: + """ + DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + """ + return pulumi.get(self, "device_class_name") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + + Must be a DNS label. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[bool]: + """ + 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. + + 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. + """ + return pulumi.get(self, "admin_access") + + @property + @pulumi.getter(name="allocationMode") + def allocation_mode(self) -> Optional[str]: + """ + AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + """ + return pulumi.get(self, "allocation_mode") + + @property + @pulumi.getter + def count(self) -> Optional[int]: + """ + 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. + """ + return pulumi.get(self, "count") + + @property + @pulumi.getter + def selectors(self) -> Optional[Sequence['outputs.DeviceSelector']]: + """ + 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. + """ + return pulumi.get(self, "selectors") + + +@pulumi.output_type +class DeviceRequestAllocationResult(dict): + """ + DeviceRequestAllocationResult contains the allocation result for one request. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "adminAccess": + suggest = "admin_access" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResult. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceRequestAllocationResult.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceRequestAllocationResult.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + device: str, + driver: str, + pool: str, + request: str, + admin_access: Optional[bool] = None): + """ + DeviceRequestAllocationResult contains the allocation result for one request. + :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param str pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + :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. + :param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ + pulumi.set(__self__, "device", device) + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "pool", pool) + pulumi.set(__self__, "request", request) + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) + + @property + @pulumi.getter + def device(self) -> str: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @property + @pulumi.getter + def driver(self) -> str: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter + def pool(self) -> str: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + @property + @pulumi.getter + def request(self) -> str: + """ + 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. + """ + return pulumi.get(self, "request") + + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[bool]: + """ + AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ + return pulumi.get(self, "admin_access") + + +@pulumi.output_type +class DeviceRequestAllocationResultPatch(dict): + """ + DeviceRequestAllocationResult contains the allocation result for one request. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "adminAccess": + suggest = "admin_access" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResultPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceRequestAllocationResultPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceRequestAllocationResultPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + admin_access: Optional[bool] = None, + device: Optional[str] = None, + driver: Optional[str] = None, + pool: Optional[str] = None, + request: Optional[str] = None): + """ + DeviceRequestAllocationResult contains the allocation result for one request. + :param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + :param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + :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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param str pool: This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + :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. + """ + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) + if device is not None: + pulumi.set(__self__, "device", device) + if driver is not None: + pulumi.set(__self__, "driver", driver) + if pool is not None: + pulumi.set(__self__, "pool", pool) + if request is not None: + pulumi.set(__self__, "request", request) + + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[bool]: + """ + AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + + 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. + """ + return pulumi.get(self, "admin_access") + + @property + @pulumi.getter + def device(self) -> Optional[str]: + """ + Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + """ + return pulumi.get(self, "device") + + @property + @pulumi.getter + def driver(self) -> Optional[str]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter + def pool(self) -> Optional[str]: + """ + This name together with the driver name and the device name field identify which device was allocated (`//`). + + Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + """ + return pulumi.get(self, "pool") + + @property + @pulumi.getter + def request(self) -> Optional[str]: + """ + 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. + """ + return pulumi.get(self, "request") + + +@pulumi.output_type +class DeviceRequestPatch(dict): + """ + 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. + + 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. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "adminAccess": + suggest = "admin_access" + elif key == "allocationMode": + suggest = "allocation_mode" + elif key == "deviceClassName": + suggest = "device_class_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeviceRequestPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeviceRequestPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeviceRequestPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + admin_access: Optional[bool] = None, + allocation_mode: Optional[str] = None, + count: Optional[int] = None, + device_class_name: Optional[str] = None, + name: Optional[str] = None, + selectors: Optional[Sequence['outputs.DeviceSelectorPatch']] = None): + """ + 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. + + 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. + :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. + + 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. + :param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + :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. + :param str device_class_name: DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + :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. + + Must be a DNS label. + :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. + """ + if admin_access is not None: + pulumi.set(__self__, "admin_access", admin_access) + if allocation_mode is not None: + pulumi.set(__self__, "allocation_mode", allocation_mode) + if count is not None: + pulumi.set(__self__, "count", count) + if device_class_name is not None: + pulumi.set(__self__, "device_class_name", device_class_name) + if name is not None: + pulumi.set(__self__, "name", name) + if selectors is not None: + pulumi.set(__self__, "selectors", selectors) + + @property + @pulumi.getter(name="adminAccess") + def admin_access(self) -> Optional[bool]: + """ + 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. + + 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. + """ + return pulumi.get(self, "admin_access") + + @property + @pulumi.getter(name="allocationMode") + def allocation_mode(self) -> Optional[str]: + """ + AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: + + - ExactCount: This request is for a specific number of devices. + This is the default. The exact number is provided in the + count field. + + - All: This request is for all of the matching devices in a pool. + Allocation will fail if some devices are already allocated, + unless adminAccess is requested. + + 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. + + More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + """ + return pulumi.get(self, "allocation_mode") + + @property + @pulumi.getter + def count(self) -> Optional[int]: + """ + 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. + """ + return pulumi.get(self, "count") + + @property + @pulumi.getter(name="deviceClassName") + def device_class_name(self) -> Optional[str]: + """ + DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. + + A class is required. Which classes are available depends on the cluster. + + 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. + """ + return pulumi.get(self, "device_class_name") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + + Must be a DNS label. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def selectors(self) -> Optional[Sequence['outputs.DeviceSelectorPatch']]: + """ + 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. + """ + return pulumi.get(self, "selectors") + + +@pulumi.output_type +class DeviceSelector(dict): + """ + DeviceSelector must have exactly one field set. + """ + def __init__(__self__, *, + cel: Optional['outputs.CELDeviceSelector'] = None): + """ + DeviceSelector must have exactly one field set. + :param 'CELDeviceSelectorArgs' cel: CEL contains a CEL expression for selecting a device. + """ + if cel is not None: + pulumi.set(__self__, "cel", cel) + + @property + @pulumi.getter + def cel(self) -> Optional['outputs.CELDeviceSelector']: + """ + CEL contains a CEL expression for selecting a device. + """ + return pulumi.get(self, "cel") + + +@pulumi.output_type +class DeviceSelectorPatch(dict): + """ + DeviceSelector must have exactly one field set. + """ + def __init__(__self__, *, + cel: Optional['outputs.CELDeviceSelectorPatch'] = None): + """ + DeviceSelector must have exactly one field set. + :param 'CELDeviceSelectorPatchArgs' cel: CEL contains a CEL expression for selecting a device. + """ + if cel is not None: + pulumi.set(__self__, "cel", cel) + + @property + @pulumi.getter + def cel(self) -> Optional['outputs.CELDeviceSelectorPatch']: + """ + CEL contains a CEL expression for selecting a device. + """ + return pulumi.get(self, "cel") + + +@pulumi.output_type +class NetworkDeviceData(dict): + """ + 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. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "hardwareAddress": + suggest = "hardware_address" + elif key == "interfaceName": + suggest = "interface_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NetworkDeviceData. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NetworkDeviceData.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NetworkDeviceData.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + hardware_address: Optional[str] = None, + interface_name: Optional[str] = None, + ips: Optional[Sequence[str]] = None): + """ + 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. + :param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + :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. + + Must not be longer than 256 characters. + :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. + """ + if hardware_address is not None: + pulumi.set(__self__, "hardware_address", hardware_address) + if interface_name is not None: + pulumi.set(__self__, "interface_name", interface_name) + if ips is not None: + pulumi.set(__self__, "ips", ips) + + @property + @pulumi.getter(name="hardwareAddress") + def hardware_address(self) -> Optional[str]: + """ + HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + """ + return pulumi.get(self, "hardware_address") + + @property + @pulumi.getter(name="interfaceName") + def interface_name(self) -> Optional[str]: + """ + 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. + + Must not be longer than 256 characters. + """ + return pulumi.get(self, "interface_name") + + @property + @pulumi.getter + def ips(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "ips") + + +@pulumi.output_type +class NetworkDeviceDataPatch(dict): + """ + 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. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "hardwareAddress": + suggest = "hardware_address" + elif key == "interfaceName": + suggest = "interface_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NetworkDeviceDataPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NetworkDeviceDataPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NetworkDeviceDataPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + hardware_address: Optional[str] = None, + interface_name: Optional[str] = None, + ips: Optional[Sequence[str]] = None): + """ + 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. + :param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + :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. + + Must not be longer than 256 characters. + :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. + """ + if hardware_address is not None: + pulumi.set(__self__, "hardware_address", hardware_address) + if interface_name is not None: + pulumi.set(__self__, "interface_name", interface_name) + if ips is not None: + pulumi.set(__self__, "ips", ips) + + @property + @pulumi.getter(name="hardwareAddress") + def hardware_address(self) -> Optional[str]: + """ + HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. + + Must not be longer than 128 characters. + """ + return pulumi.get(self, "hardware_address") + + @property + @pulumi.getter(name="interfaceName") + def interface_name(self) -> Optional[str]: + """ + 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. + + Must not be longer than 256 characters. + """ + return pulumi.get(self, "interface_name") + + @property + @pulumi.getter + def ips(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "ips") + + +@pulumi.output_type +class OpaqueDeviceConfiguration(dict): + """ + OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + """ + def __init__(__self__, *, + driver: str, + parameters: Any): + """ + OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + :param str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def driver(self) -> str: + """ + Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter + def parameters(self) -> Any: + """ + Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "parameters") + + +@pulumi.output_type +class OpaqueDeviceConfigurationPatch(dict): + """ + OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + """ + def __init__(__self__, *, + driver: Optional[str] = None, + parameters: Optional[Any] = None): + """ + OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. + :param str driver: Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + :param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + if driver is not None: + pulumi.set(__self__, "driver", driver) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def driver(self) -> Optional[str]: + """ + Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. + + An admission policy provided by the driver developer could use this to decide whether it needs to validate them. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter + def parameters(self) -> Optional[Any]: + """ + Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. + + The length of the raw data must be smaller or equal to 10 Ki. + """ + return pulumi.get(self, "parameters") + + +@pulumi.output_type +class ResourceClaim(dict): + """ + ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiVersion": + suggest = "api_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceClaim. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceClaim.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceClaim.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + spec: 'outputs.ResourceClaimSpec', + api_version: Optional[str] = None, + kind: Optional[str] = None, + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None, + status: Optional['outputs.ResourceClaimStatus'] = None): + """ + ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param 'ResourceClaimSpecArgs' spec: Spec describes what is being requested and how to configure it. The spec is immutable. + :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 + :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 + :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata + :param 'ResourceClaimStatusArgs' status: Status describes whether the claim is ready to use and what has been allocated. + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaim') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter + def spec(self) -> 'outputs.ResourceClaimSpec': + """ + Spec describes what is being requested and how to configure it. The spec is immutable. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def status(self) -> Optional['outputs.ResourceClaimStatus']: + """ + Status describes whether the claim is ready to use and what has been allocated. + """ + return pulumi.get(self, "status") + + +@pulumi.output_type +class ResourceClaimConsumerReference(dict): + """ + 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. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiGroup": + suggest = "api_group" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceClaimConsumerReference. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceClaimConsumerReference.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceClaimConsumerReference.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + name: str, + resource: str, + uid: str, + api_group: Optional[str] = None): + """ + 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. + :param str name: Name is the name of resource being referenced. + :param str resource: Resource is the type of resource being referenced, for example "pods". + :param str uid: UID identifies exactly one incarnation of the resource. + :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. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "resource", resource) + pulumi.set(__self__, "uid", uid) + if api_group is not None: + pulumi.set(__self__, "api_group", api_group) + + @property + @pulumi.getter + def name(self) -> str: + """ + Name is the name of resource being referenced. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def resource(self) -> str: + """ + Resource is the type of resource being referenced, for example "pods". + """ + return pulumi.get(self, "resource") + + @property + @pulumi.getter + def uid(self) -> str: + """ + UID identifies exactly one incarnation of the resource. + """ + return pulumi.get(self, "uid") + + @property + @pulumi.getter(name="apiGroup") + def api_group(self) -> Optional[str]: + """ + 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. + """ + return pulumi.get(self, "api_group") + + +@pulumi.output_type +class ResourceClaimConsumerReferencePatch(dict): + """ + 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. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiGroup": + suggest = "api_group" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceClaimConsumerReferencePatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceClaimConsumerReferencePatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceClaimConsumerReferencePatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + api_group: Optional[str] = None, + name: Optional[str] = None, + resource: Optional[str] = None, + uid: Optional[str] = None): + """ + 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. + :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. + :param str name: Name is the name of resource being referenced. + :param str resource: Resource is the type of resource being referenced, for example "pods". + :param str uid: UID identifies exactly one incarnation of the resource. + """ + if api_group is not None: + pulumi.set(__self__, "api_group", api_group) + if name is not None: + pulumi.set(__self__, "name", name) + if resource is not None: + pulumi.set(__self__, "resource", resource) + if uid is not None: + pulumi.set(__self__, "uid", uid) + + @property + @pulumi.getter(name="apiGroup") + def api_group(self) -> Optional[str]: + """ + 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. + """ + return pulumi.get(self, "api_group") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name is the name of resource being referenced. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def resource(self) -> Optional[str]: + """ + Resource is the type of resource being referenced, for example "pods". + """ + return pulumi.get(self, "resource") + + @property + @pulumi.getter + def uid(self) -> Optional[str]: + """ + UID identifies exactly one incarnation of the resource. + """ + return pulumi.get(self, "uid") + + +@pulumi.output_type +class ResourceClaimSpec(dict): + """ + ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + """ + def __init__(__self__, *, + devices: Optional['outputs.DeviceClaim'] = None): + """ + ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + :param 'DeviceClaimArgs' devices: Devices defines how to request devices. + """ + if devices is not None: + pulumi.set(__self__, "devices", devices) + + @property + @pulumi.getter + def devices(self) -> Optional['outputs.DeviceClaim']: + """ + Devices defines how to request devices. + """ + return pulumi.get(self, "devices") + + +@pulumi.output_type +class ResourceClaimSpecPatch(dict): + """ + ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + """ + def __init__(__self__, *, + devices: Optional['outputs.DeviceClaimPatch'] = None): + """ + ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. + :param 'DeviceClaimPatchArgs' devices: Devices defines how to request devices. + """ + if devices is not None: + pulumi.set(__self__, "devices", devices) + + @property + @pulumi.getter + def devices(self) -> Optional['outputs.DeviceClaimPatch']: + """ + Devices defines how to request devices. + """ + return pulumi.get(self, "devices") + + +@pulumi.output_type +class ResourceClaimStatus(dict): + """ + ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "reservedFor": + suggest = "reserved_for" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceClaimStatus. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceClaimStatus.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceClaimStatus.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + allocation: Optional['outputs.AllocationResult'] = None, + devices: Optional[Sequence['outputs.AllocatedDeviceStatus']] = None, + reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReference']] = None): + """ + ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + :param 'AllocationResultArgs' allocation: Allocation is set once the claim has been allocated successfully. + :param Sequence['AllocatedDeviceStatusArgs'] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + :param Sequence['ResourceClaimConsumerReferenceArgs'] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + + In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + + 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. + + There can be at most 32 such reservations. This may get increased in the future, but not reduced. + """ + if allocation is not None: + pulumi.set(__self__, "allocation", allocation) + if devices is not None: + pulumi.set(__self__, "devices", devices) + if reserved_for is not None: + pulumi.set(__self__, "reserved_for", reserved_for) + + @property + @pulumi.getter + def allocation(self) -> Optional['outputs.AllocationResult']: + """ + Allocation is set once the claim has been allocated successfully. + """ + return pulumi.get(self, "allocation") + + @property + @pulumi.getter + def devices(self) -> Optional[Sequence['outputs.AllocatedDeviceStatus']]: + """ + Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + """ + return pulumi.get(self, "devices") + + @property + @pulumi.getter(name="reservedFor") + def reserved_for(self) -> Optional[Sequence['outputs.ResourceClaimConsumerReference']]: + """ + ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + + In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + + 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. + + There can be at most 32 such reservations. This may get increased in the future, but not reduced. + """ + return pulumi.get(self, "reserved_for") + + +@pulumi.output_type +class ResourceClaimStatusPatch(dict): + """ + ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "reservedFor": + suggest = "reserved_for" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceClaimStatusPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceClaimStatusPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceClaimStatusPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + allocation: Optional['outputs.AllocationResultPatch'] = None, + devices: Optional[Sequence['outputs.AllocatedDeviceStatusPatch']] = None, + reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']] = None): + """ + ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. + :param 'AllocationResultPatchArgs' allocation: Allocation is set once the claim has been allocated successfully. + :param Sequence['AllocatedDeviceStatusPatchArgs'] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + :param Sequence['ResourceClaimConsumerReferencePatchArgs'] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + + In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + + 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. + + There can be at most 32 such reservations. This may get increased in the future, but not reduced. + """ + if allocation is not None: + pulumi.set(__self__, "allocation", allocation) + if devices is not None: + pulumi.set(__self__, "devices", devices) + if reserved_for is not None: + pulumi.set(__self__, "reserved_for", reserved_for) + + @property + @pulumi.getter + def allocation(self) -> Optional['outputs.AllocationResultPatch']: + """ + Allocation is set once the claim has been allocated successfully. + """ + return pulumi.get(self, "allocation") + + @property + @pulumi.getter + def devices(self) -> Optional[Sequence['outputs.AllocatedDeviceStatusPatch']]: + """ + Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers. + """ + return pulumi.get(self, "devices") + + @property + @pulumi.getter(name="reservedFor") + def reserved_for(self) -> Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']]: + """ + ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. + + In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. + + 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. + + There can be at most 32 such reservations. This may get increased in the future, but not reduced. + """ + return pulumi.get(self, "reserved_for") + + +@pulumi.output_type +class ResourceClaimTemplate(dict): + """ + ResourceClaimTemplate is used to produce ResourceClaim objects. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiVersion": + suggest = "api_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceClaimTemplate. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceClaimTemplate.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceClaimTemplate.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + spec: 'outputs.ResourceClaimTemplateSpec', + api_version: Optional[str] = None, + kind: Optional[str] = None, + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None): + """ + ResourceClaimTemplate is used to produce ResourceClaim objects. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param 'ResourceClaimTemplateSpecArgs' spec: Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + :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 + :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 + :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceClaimTemplate') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> 'outputs.ResourceClaimTemplateSpec': + """ + Describes the ResourceClaim that is to be generated. + + This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + +@pulumi.output_type +class ResourceClaimTemplateSpec(dict): + """ + ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + """ + def __init__(__self__, *, + spec: 'outputs.ResourceClaimSpec', + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None): + """ + ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + :param 'ResourceClaimSpecArgs' spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + :param '_meta.v1.ObjectMetaArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + """ + pulumi.set(__self__, "spec", spec) + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> 'outputs.ResourceClaimSpec': + """ + Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + """ + return pulumi.get(self, "metadata") + + +@pulumi.output_type +class ResourceClaimTemplateSpecPatch(dict): + """ + ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + """ + def __init__(__self__, *, + metadata: Optional['_meta.v1.outputs.ObjectMetaPatch'] = None, + spec: Optional['outputs.ResourceClaimSpecPatch'] = None): + """ + ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. + :param '_meta.v1.ObjectMetaPatchArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + :param 'ResourceClaimSpecPatchArgs' spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + """ + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if spec is not None: + pulumi.set(__self__, "spec", spec) + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMetaPatch']: + """ + ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation. + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter + def spec(self) -> Optional['outputs.ResourceClaimSpecPatch']: + """ + Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. + """ + return pulumi.get(self, "spec") + + +@pulumi.output_type +class ResourcePool(dict): + """ + ResourcePool describes the pool that ResourceSlices belong to. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "resourceSliceCount": + suggest = "resource_slice_count" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourcePool. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourcePool.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourcePool.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + generation: int, + name: str, + resource_slice_count: int): + """ + ResourcePool describes the pool that ResourceSlices belong to. + :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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + :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. + + 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. + :param int resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ + pulumi.set(__self__, "generation", generation) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "resource_slice_count", resource_slice_count) + + @property + @pulumi.getter + def generation(self) -> int: + """ + 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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + """ + return pulumi.get(self, "generation") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + + 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. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="resourceSliceCount") + def resource_slice_count(self) -> int: + """ + ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ + return pulumi.get(self, "resource_slice_count") + + +@pulumi.output_type +class ResourcePoolPatch(dict): + """ + ResourcePool describes the pool that ResourceSlices belong to. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "resourceSliceCount": + suggest = "resource_slice_count" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourcePoolPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourcePoolPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourcePoolPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + generation: Optional[int] = None, + name: Optional[str] = None, + resource_slice_count: Optional[int] = None): + """ + ResourcePool describes the pool that ResourceSlices belong to. + :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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + :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. + + 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. + :param int resource_slice_count: ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ + if generation is not None: + pulumi.set(__self__, "generation", generation) + if name is not None: + pulumi.set(__self__, "name", name) + if resource_slice_count is not None: + pulumi.set(__self__, "resource_slice_count", resource_slice_count) + + @property + @pulumi.getter + def generation(self) -> Optional[int]: + """ + 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. + + Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. + """ + return pulumi.get(self, "generation") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. + + 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. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="resourceSliceCount") + def resource_slice_count(self) -> Optional[int]: + """ + ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. + + Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. + """ + return pulumi.get(self, "resource_slice_count") + + +@pulumi.output_type +class ResourceSlice(dict): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiVersion": + suggest = "api_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceSlice. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceSlice.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceSlice.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + spec: 'outputs.ResourceSliceSpec', + api_version: Optional[str] = None, + kind: Optional[str] = None, + metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None): + """ + 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. + + At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . + + Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. + + When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. + + For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. + + This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. + :param 'ResourceSliceSpecArgs' spec: Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + :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 + :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 + :param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata + """ + pulumi.set(__self__, "spec", spec) + if api_version is not None: + pulumi.set(__self__, "api_version", 'resource.k8s.io/v1beta1') + if kind is not None: + pulumi.set(__self__, "kind", 'ResourceSlice') + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + + @property + @pulumi.getter + def spec(self) -> 'outputs.ResourceSliceSpec': + """ + Contains the information published by the driver. + + Changing the spec automatically increments the metadata.generation number. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter(name="apiVersion") + def api_version(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "api_version") + + @property + @pulumi.getter + def kind(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "kind") + + @property + @pulumi.getter + def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']: + """ + Standard object metadata + """ + return pulumi.get(self, "metadata") + + +@pulumi.output_type +class ResourceSliceSpec(dict): + """ + ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "allNodes": + suggest = "all_nodes" + elif key == "nodeName": + suggest = "node_name" + elif key == "nodeSelector": + suggest = "node_selector" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceSliceSpec. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceSliceSpec.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceSliceSpec.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + driver: str, + pool: 'outputs.ResourcePool', + all_nodes: Optional[bool] = None, + devices: Optional[Sequence['outputs.Device']] = None, + node_name: Optional[str] = None, + node_selector: Optional['_core.v1.outputs.NodeSelector'] = None): + """ + ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + :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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + :param 'ResourcePoolArgs' pool: Pool describes the pool that this ResourceSlice belongs to. + :param bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + :param Sequence['DeviceArgs'] devices: Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + :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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + :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. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + pulumi.set(__self__, "driver", driver) + pulumi.set(__self__, "pool", pool) + if all_nodes is not None: + pulumi.set(__self__, "all_nodes", all_nodes) + if devices is not None: + pulumi.set(__self__, "devices", devices) + if node_name is not None: + pulumi.set(__self__, "node_name", node_name) + if node_selector is not None: + pulumi.set(__self__, "node_selector", node_selector) + + @property + @pulumi.getter + def driver(self) -> str: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter + def pool(self) -> 'outputs.ResourcePool': + """ + Pool describes the pool that this ResourceSlice belongs to. + """ + return pulumi.get(self, "pool") + + @property + @pulumi.getter(name="allNodes") + def all_nodes(self) -> Optional[bool]: + """ + AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + return pulumi.get(self, "all_nodes") + + @property + @pulumi.getter + def devices(self) -> Optional[Sequence['outputs.Device']]: + """ + Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + """ + return pulumi.get(self, "devices") + + @property + @pulumi.getter(name="nodeName") + def node_name(self) -> Optional[str]: + """ + 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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + """ + return pulumi.get(self, "node_name") + + @property + @pulumi.getter(name="nodeSelector") + def node_selector(self) -> Optional['_core.v1.outputs.NodeSelector']: + """ + NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + return pulumi.get(self, "node_selector") + + +@pulumi.output_type +class ResourceSliceSpecPatch(dict): + """ + ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "allNodes": + suggest = "all_nodes" + elif key == "nodeName": + suggest = "node_name" + elif key == "nodeSelector": + suggest = "node_selector" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceSliceSpecPatch. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceSliceSpecPatch.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceSliceSpecPatch.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + all_nodes: Optional[bool] = None, + devices: Optional[Sequence['outputs.DevicePatch']] = None, + driver: Optional[str] = None, + node_name: Optional[str] = None, + node_selector: Optional['_core.v1.outputs.NodeSelectorPatch'] = None, + pool: Optional['outputs.ResourcePoolPatch'] = None): + """ + ResourceSliceSpec contains the information published by the driver in one ResourceSlice. + :param bool all_nodes: AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + :param Sequence['DevicePatchArgs'] devices: Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + :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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + :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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + :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. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + :param 'ResourcePoolPatchArgs' pool: Pool describes the pool that this ResourceSlice belongs to. + """ + if all_nodes is not None: + pulumi.set(__self__, "all_nodes", all_nodes) + if devices is not None: + pulumi.set(__self__, "devices", devices) + if driver is not None: + pulumi.set(__self__, "driver", driver) + if node_name is not None: + pulumi.set(__self__, "node_name", node_name) + if node_selector is not None: + pulumi.set(__self__, "node_selector", node_selector) + if pool is not None: + pulumi.set(__self__, "pool", pool) + + @property + @pulumi.getter(name="allNodes") + def all_nodes(self) -> Optional[bool]: + """ + AllNodes indicates that all nodes have access to the resources in the pool. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + return pulumi.get(self, "all_nodes") + + @property + @pulumi.getter + def devices(self) -> Optional[Sequence['outputs.DevicePatch']]: + """ + Devices lists some or all of the devices in this pool. + + Must not have more than 128 entries. + """ + return pulumi.get(self, "devices") + + @property + @pulumi.getter + def driver(self) -> Optional[str]: + """ + 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. + + Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. + """ + return pulumi.get(self, "driver") + + @property + @pulumi.getter(name="nodeName") + def node_name(self) -> Optional[str]: + """ + 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. + + 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. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. + """ + return pulumi.get(self, "node_name") + + @property + @pulumi.getter(name="nodeSelector") + def node_selector(self) -> Optional['_core.v1.outputs.NodeSelectorPatch']: + """ + NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. + + Must use exactly one term. + + Exactly one of NodeName, NodeSelector and AllNodes must be set. + """ + return pulumi.get(self, "node_selector") + + @property + @pulumi.getter + def pool(self) -> Optional['outputs.ResourcePoolPatch']: + """ + Pool describes the pool that this ResourceSlice belongs to. + """ + return pulumi.get(self, "pool") + + diff --git a/sdk/python/pulumi_kubernetes/storage/v1/_inputs.py b/sdk/python/pulumi_kubernetes/storage/v1/_inputs.py index 447a0c96e4..1e8d0f8189 100644 --- a/sdk/python/pulumi_kubernetes/storage/v1/_inputs.py +++ b/sdk/python/pulumi_kubernetes/storage/v1/_inputs.py @@ -1652,7 +1652,7 @@ def expiration_seconds(self, value: Optional[pulumi.Input[int]]): if not MYPY: class VolumeAttachmentSourcePatchArgsDict(TypedDict): """ - VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. """ inline_volume_spec: NotRequired[pulumi.Input['_core.v1.PersistentVolumeSpecPatchArgsDict']] """ @@ -1671,7 +1671,7 @@ def __init__(__self__, *, inline_volume_spec: Optional[pulumi.Input['_core.v1.PersistentVolumeSpecPatchArgs']] = None, persistent_volume_name: Optional[pulumi.Input[str]] = None): """ - VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. :param pulumi.Input['_core.v1.PersistentVolumeSpecPatchArgs'] inline_volume_spec: inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. :param pulumi.Input[str] persistent_volume_name: persistentVolumeName represents the name of the persistent volume to attach. """ @@ -1708,7 +1708,7 @@ def persistent_volume_name(self, value: Optional[pulumi.Input[str]]): if not MYPY: class VolumeAttachmentSourceArgsDict(TypedDict): """ - VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. """ inline_volume_spec: NotRequired[pulumi.Input['_core.v1.PersistentVolumeSpecArgsDict']] """ @@ -1727,7 +1727,7 @@ def __init__(__self__, *, inline_volume_spec: Optional[pulumi.Input['_core.v1.PersistentVolumeSpecArgs']] = None, persistent_volume_name: Optional[pulumi.Input[str]] = None): """ - VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. :param pulumi.Input['_core.v1.PersistentVolumeSpecArgs'] inline_volume_spec: inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. :param pulumi.Input[str] persistent_volume_name: persistentVolumeName represents the name of the persistent volume to attach. """ diff --git a/sdk/python/pulumi_kubernetes/storage/v1/outputs.py b/sdk/python/pulumi_kubernetes/storage/v1/outputs.py index 7881c24205..55298421ff 100644 --- a/sdk/python/pulumi_kubernetes/storage/v1/outputs.py +++ b/sdk/python/pulumi_kubernetes/storage/v1/outputs.py @@ -1347,7 +1347,7 @@ def status(self) -> Optional['outputs.VolumeAttachmentStatus']: @pulumi.output_type class VolumeAttachmentSource(dict): """ - VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. """ @staticmethod def __key_warning(key: str): @@ -1372,7 +1372,7 @@ def __init__(__self__, *, inline_volume_spec: Optional['_core.v1.outputs.PersistentVolumeSpec'] = None, persistent_volume_name: Optional[str] = None): """ - VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. :param '_core.v1.PersistentVolumeSpecArgs' inline_volume_spec: inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. :param str persistent_volume_name: persistentVolumeName represents the name of the persistent volume to attach. """ @@ -1401,7 +1401,7 @@ def persistent_volume_name(self) -> Optional[str]: @pulumi.output_type class VolumeAttachmentSourcePatch(dict): """ - VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. """ @staticmethod def __key_warning(key: str): @@ -1426,7 +1426,7 @@ def __init__(__self__, *, inline_volume_spec: Optional['_core.v1.outputs.PersistentVolumeSpecPatch'] = None, persistent_volume_name: Optional[str] = None): """ - VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. + VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set. :param '_core.v1.PersistentVolumeSpecPatchArgs' inline_volume_spec: inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. :param str persistent_volume_name: persistentVolumeName represents the name of the persistent volume to attach. """ diff --git a/sdk/python/pulumi_kubernetes/yaml/yaml.py b/sdk/python/pulumi_kubernetes/yaml/yaml.py index d7d29ea0ca..24f74a1161 100644 --- a/sdk/python/pulumi_kubernetes/yaml/yaml.py +++ b/sdk/python/pulumi_kubernetes/yaml/yaml.py @@ -548,6 +548,30 @@ def _parse_yaml_object( return [identifier.apply( lambda x: (f"admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList:{x}", ValidatingWebhookConfigurationList(f"{x}", opts, **obj)))] + if gvk == "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy": + # Import locally to avoid name collisions. + from pulumi_kubernetes.admissionregistration.v1alpha1 import MutatingAdmissionPolicy + return [identifier.apply( + lambda x: (f"admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicy:{x}", + MutatingAdmissionPolicy(f"{x}", opts, **obj)))] + if gvk == "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding": + # Import locally to avoid name collisions. + from pulumi_kubernetes.admissionregistration.v1alpha1 import MutatingAdmissionPolicyBinding + return [identifier.apply( + lambda x: (f"admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBinding:{x}", + MutatingAdmissionPolicyBinding(f"{x}", opts, **obj)))] + if gvk == "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.admissionregistration.v1alpha1 import MutatingAdmissionPolicyBindingList + return [identifier.apply( + lambda x: (f"admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyBindingList:{x}", + MutatingAdmissionPolicyBindingList(f"{x}", opts, **obj)))] + if gvk == "admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.admissionregistration.v1alpha1 import MutatingAdmissionPolicyList + return [identifier.apply( + lambda x: (f"admissionregistration.k8s.io/v1alpha1/MutatingAdmissionPolicyList:{x}", + MutatingAdmissionPolicyList(f"{x}", opts, **obj)))] if gvk == "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy": # Import locally to avoid name collisions. from pulumi_kubernetes.admissionregistration.v1alpha1 import ValidatingAdmissionPolicy @@ -980,6 +1004,18 @@ def _parse_yaml_object( return [identifier.apply( lambda x: (f"coordination.k8s.io/v1alpha1/LeaseCandidateList:{x}", LeaseCandidateList(f"{x}", opts, **obj)))] + if gvk == "coordination.k8s.io/v1alpha2/LeaseCandidate": + # Import locally to avoid name collisions. + from pulumi_kubernetes.coordination.v1alpha2 import LeaseCandidate + return [identifier.apply( + lambda x: (f"coordination.k8s.io/v1alpha2/LeaseCandidate:{x}", + LeaseCandidate(f"{x}", opts, **obj)))] + if gvk == "coordination.k8s.io/v1alpha2/LeaseCandidateList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.coordination.v1alpha2 import LeaseCandidateList + return [identifier.apply( + lambda x: (f"coordination.k8s.io/v1alpha2/LeaseCandidateList:{x}", + LeaseCandidateList(f"{x}", opts, **obj)))] if gvk == "coordination.k8s.io/v1beta1/Lease": # Import locally to avoid name collisions. from pulumi_kubernetes.coordination.v1beta1 import Lease @@ -1946,6 +1982,60 @@ def _parse_yaml_object( return [identifier.apply( lambda x: (f"resource.k8s.io/v1alpha3/ResourceSlice:{x}", ResourceSlice(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1alpha3/ResourceSliceList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1alpha3 import ResourceSliceList + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1alpha3/ResourceSliceList:{x}", + ResourceSliceList(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1beta1/DeviceClass": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1beta1 import DeviceClass + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1beta1/DeviceClass:{x}", + DeviceClass(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1beta1/DeviceClassList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1beta1 import DeviceClassList + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1beta1/DeviceClassList:{x}", + DeviceClassList(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1beta1/ResourceClaim": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1beta1 import ResourceClaim + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1beta1/ResourceClaim:{x}", + ResourceClaim(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1beta1/ResourceClaimList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1beta1 import ResourceClaimList + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1beta1/ResourceClaimList:{x}", + ResourceClaimList(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1beta1/ResourceClaimTemplate": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1beta1 import ResourceClaimTemplate + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1beta1/ResourceClaimTemplate:{x}", + ResourceClaimTemplate(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1beta1/ResourceClaimTemplateList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1beta1 import ResourceClaimTemplateList + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1beta1/ResourceClaimTemplateList:{x}", + ResourceClaimTemplateList(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1beta1/ResourceSlice": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1beta1 import ResourceSlice + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1beta1/ResourceSlice:{x}", + ResourceSlice(f"{x}", opts, **obj)))] + if gvk == "resource.k8s.io/v1beta1/ResourceSliceList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.resource.v1beta1 import ResourceSliceList + return [identifier.apply( + lambda x: (f"resource.k8s.io/v1beta1/ResourceSliceList:{x}", + ResourceSliceList(f"{x}", opts, **obj)))] if gvk == "scheduling.k8s.io/v1/PriorityClass": # Import locally to avoid name collisions. from pulumi_kubernetes.scheduling.v1 import PriorityClass